- •1. Краткие теоретические сведения
- •1.1. Понятие циклического вычислительного процесса
- •1.2. Типовая блок-схема организация цвп
- •1.3. Классификация цвп
- •Повторений и специальной переменной - счетчиком циклов
- •1.4. Общие сведения об операторах цикла
- •1. Оператор while:
- •2. Оператор do…while:
- •3. Оператор for:
- •1.5. Оператор цикла типа "прогрессия" for
- •1.6. Основные правила и порядок выполнения оператора цикла for:
- •Оператор цикла со спецификацией, заданной скалярным выражением
- •1.7. Оператор цикла while
- •1.5.4.1. Оператор цикла while
- •1.5.4.3. Оператор цикла while
- •1.5.5.4. Оператор цикла while
- •1. Цикл с предусловием:
- •1.5.5.5. Основные правила использования и порядок выполнения оператора цикла while:
- •1.5.5.6. Пример № 1
- •1.8. Оператор цикла do...While
- •1.5.5.1. Оператор цикла do while
- •1.5.5.2. Оператор цикла с постусловием do
- •1.5.5.3. Оператор цикла do while
- •1.5.5.4. Оператор цикла do-while
- •2. Цикл с постусловием:
- •1.9. Табулирование функций
- •1.10. Вычисление конечных сумм и произведений
- •1.11. Правила организации циклических алгоритмов
- •1.12. Операторы перехода и их использование в циклах
- •1.12.1. Оператор прерывания циклов break
- •1.Break – оператор прерывания цикла.
- •1.12.2. Оператор перехода к следующей итерации цикла continue
- •Оператор продолжения continue для циклов do, while, for
- •1.12.3. Оператор перехода goto
- •1.12.4. Оператор возврата из функции return
- •Замечание:
- •2. Задание
- •2.1. Изучить теоретические сведения
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Табуляция неразветвляющейся функции
- •2.4.1.1. Условие задания
- •Варианты заданий
- •2.4.2. Задание 2. Табулирование разветвляющейся функции
- •2.4.2.1. Условие задания
- •2.4.3. Задание 3. Табулирование разветвляющейся функции
- •2.4.3.1. Условие задания
- •2.5. Задания для дома
- •2.5.1. Задание 1. Табулирование неразветвляющейся функции в равноотстоящих точках
- •2.5.1.1. Условие задания
- •2.5.2. Задание 2. Табулирование разветвляющейся функции в равноотстоящих точках
- •2.5.2.1. Условие задания
- •2.5.2.2.Пример программы табулирования функции
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие циклического вычислительного процесса 2
2. Задание
2.1. Изучить теоретические сведения
2.1.1. Изучить операции сравнения.
2.1.2. Изучить логические операции.
2.1.3. Изучить приоритет операций.
2.1.4.Изучить понятие оператора перехода.
2.1.5. Изучить понятие составного оператора.
2.1.6. Изучить понятие пустого оператора.
2.1.7. Изучить понятие разветвляющегося вычислительного процесса.
2.1.8. Изучить средства языка С++ для реализации разветвляющегося вычислительного процесса.
2.1.9. формы условного оператора if/
2.1.10. Изучить оператор выбора switch.
2.2. Разобрать и выполнить примеры к данной лабораторной работе.
2.3. Написать и отладить семь программ на языке С++.
2.4. Задания для выполнения на занятиях
2.4.1. Задание 1. Табуляция неразветвляющейся функции
2.4.1.1. Условие задания
Составить программу для вычисления таблицы значений функции y = f(x) (табл. 7.1) для аргумента x изменяющегося в интервале x [хнач, хкон ] с шагом х.
Результаты и исходные данные вывести на экран дисплея.
Реализовать циклический процесс табуляции функции y = f(x) четырьмя способами; 1) с помощью оператора for; 2) с помощью оператора while; 2) с помощью оператора do … while; 2) с помощью операторов if и goto;
Таблица 7.1
Варианты заданий
№ |
Функция |
Интервал [хнач, хкон ] |
Шаг х |
1 |
|
x [0, 3] |
0,1 |
2 |
|
x [1, 2] |
0,1 |
3 |
|
x [1, 5] |
0,2 |
4 |
|
x [1, 5] |
0,2 |
5 |
|
x [-5, -1] |
0,4 |
6 |
|
x [=5, -1]
|
0,4 |
7 |
|
x [1, 4] |
0,2 |
8 |
|
x [1, 4] |
0,2 |
9 |
|
x [1, 3] |
0,1 |
10 |
|
x [1, 3] |
0,1 |
11 |
|
x [0, 2] |
0,1 |
12 |
|
x [1, 3] |
0,1 |
13 |
|
x [0, 5] |
0,1 |
14 |
|
x [0, 5]
|
0,2 |
15 |
|
x [0, 1] |
0,05 |
16 |
|
x [0, 1] |
0,05 |
17 |
|
x [1, 5]
|
0,2 |
18 |
|
x [1, 5] |
0,2 |
19 |
|
x [1, 3] |
0,1 |
20 |
|
x [2, 3] |
0,1 |
21 |
|
x [1, 2] |
0,05 |
22 |
|
x [1, 2] |
0,05 |
23 |
|
x [0, 5] |
0,5 |
24 |
|
x [0, 5] |
0,5 |
25 |
|
x [-3, 0] |
0,1 |
26 |
|
x [-3, 0] |
0,1 |
27 |
|
x [1, 3] |
0,2 |
28 |
|
x [1, 3] |
0,2 |
29 |
|
x [0, 3] |
0,1 |
30 |
|
x [0, 1] |
0,1 |
2.4.1.2. Цикл типа арифметической прогрессии for для варианта 30
Ниже представлена программа табулирования функции с использованием цикла for:
Программа
// программа табулирования функции y=f(х)
// на интервале от хn до xk с шагом dx
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <math.h> // подключение библиотеки математических функций
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int main ()
{
// Объявление переменных
float a, x, xn, xk, dx,fx;
// Ввод значений для переменных а, хn, xk, dx
cout << "Bвeдите параметр а: "; cin >> a;
cout << "Bвeдите хn: " , cin >> xn;
cout << "Введите xk: ", cin >> xk;
cout << "Bвeдите шаг dx: ", cin >> dx;
// вывод заголовка и шапки таблицы
cout << " Та6лица значений функции у = f (х) " << endl
<< " |-------------------------- -----------|" << endl
<< " | х | у = f (х) |" << endl
<< " |-----------------|--------------------|" << endl;
// Табуляция функции у = f (x)
for(x=xn;x<=xk;x+=dx)
{
// Вычисление значения функции fx
fx=log(1+2*exp(-x*x))*3*a/(x*x+4);
// Вывод очередной строки таблицы
// Вывод аргумента x
cout << " I " << "x= "<< setw(9) << x << " I ";
// Вывод значения функции fx
cout << " " << setw(5) << "fx= " << setw(10)<<fx << " I " << endl;
}
cout << " |-----------------|--------------------|" << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
Результаты тестирования
2.4.1.3. Цикл типа с предусловием while для варианта 30
Ниже представлена программа табулирования функции с использованием цикла while:
Программа
// программа табулирования функции y=f(х)
// на интервале от хn до xk с шагом dx
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <math.h> // подключение библиотеки математических функций
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int main ()
{
// Объявление переменных
float a, x, xn, xk, dx,fx;
// Ввод значений для переменных а, хn, xk, dx
cout << "Bвeдите параметр а: "; cin >> a;
cout << "Bвeдите хn: " , cin >> xn;
cout << "Введите xk: ", cin >> xk;
cout << "Bвeдите шаг dx: ", cin >> dx;
// вывод заголовка и шапки таблицы
cout << " Та6лица значений функции у = f (х) " << endl
<< " |-------------------------- -----------|" << endl
<< " | х | у = f (х) |" << endl
<< " |-----------------|--------------------|" << endl;
// Табуляция функции у = f (x)
x=xn;
while (x<=xk)
{
// Вычисление значения функции fx
fx=log(1+2*exp(-x*x))*3*a/(x*x+4);
// Вывод очередной строки таблицы
// Вывод аргумента x
cout << " I " << "x= "<< setw(9) << x << " I ";
// Вывод значения функции fx
cout << " " << setw(5) << "fx= " << setw(10)<<fx << " I " << endl;
x+=dx;
}
cout << " |-----------------|--------------------|" << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
Результаты тестирования
2.4.1.4. Цикл типа с постусловием do …while для варианта 30
Ниже представлена программа табулирования функции с использованием цикла do …while:
Программа
// программа табулирования функции y=f(х)
// на интервале от хn до xk с шагом dx
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <math.h> // подключение библиотеки математических функций
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int main ()
{
// Объявление переменных
float a, x, xn, xk, dx,fx;
// Ввод значений для переменных а, хn, xk, dx
cout << "Bвeдите параметр а: "; cin >> a;
cout << "Bвeдите хn: " , cin >> xn;
cout << "Введите xk: ", cin >> xk;
cout << "Bвeдите шаг dx: ", cin >> dx;
// вывод заголовка и шапки таблицы
cout << " Та6лица значений функции у = f (х) " << endl
<< " |-------------------------- -----------|" << endl
<< " | х | у = f (х) |" << endl
<< " |-----------------|--------------------|" << endl;
// Табуляция функции у = f (x)
x=xn;
do
{
// Вычисление значения функции fx
fx=log(1+2*exp(-x*x))*3*a/(x*x+4);
// Вывод очередной строки таблицы
// Вывод аргумента x
cout << " I " << "x= "<< setw(9) << x << " I ";
// Вывод значения функции fx
cout << " " << setw(5) << "fx= " << setw(10)<<fx << " I " << endl;
x+=dx;
}
while (x<=xk);
cout << " |-----------------|--------------------|" << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
Результаты тестирования
2.4.1.5. Цикл с помощью условного оператора if и оператора перехода
goto для варианта 30
Ниже представлена программа табулирования функции с использованием операторов if и goto:
Программа
// программа табулирования функции y=f(х)
// на интервале от хn до xk с шагом dx
#include <conio.h> // подключение библиотеки функций ввода-вывода
#include <iostream.h> // подключение библиотеки потокового ввода-вывода
#include <math.h> // подключение библиотеки математических функций
#include <iomanip.h> // подключение библиотеки средств манипулирования потоками
int main ()
{
// Объявление переменных
float a, x, xn, xk, dx,fx;
// Ввод значений для переменных а, хn, xk, dx
cout << "Bвeдите параметр а: "; cin >> a;
cout << "Bвeдите хn: " , cin >> xn;
cout << "Введите xk: ", cin >> xk;
cout << "Bвeдите шаг dx: ", cin >> dx;
// вывод заголовка и шапки таблицы
cout << " Та6лица значений функции у = f (х) " << endl
<< " |-------------------------- -----------|" << endl
<< " | х | у = f (х) |" << endl
<< " |-----------------|--------------------|" << endl;
// Табуляция функции у = f (x)
x=xn;
START:
// Вычисление значения функции fx
fx=log(1+2*exp(-x*x))*3*a/(x*x+4);
// Вывод очередной строки таблицы
// Вывод аргумента x
cout << " I " << "x= "<< setw(9) << x << " I ";
// Вывод значения функции fx
cout << " " << setw(5) << "fx= " << setw(10)<<fx << " I " << endl;
x+=dx;
if (x<=xk) goto START;
FINISH:
cout << " |-----------------|--------------------|" << endl;
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
Результаты тестирования