- •1. Краткие теоретические сведения
- •1.1. Понятие ицвп
- •1.2. Алгоритмы вычисления сумм и произведений в цикле
- •А) суммы; б) произведения
- •1.3. Выбор типа общего члена суммы (произведения) при вычислении сумм и произведений в цикле
- •1.4. Вывод рекуррентных формул
- •А) вариант 1; б) вариант 2
- •1.4. Оператор цикла со спецификацией итерационного типа (типа условия)
- •А) выполнения оператора while ; б) функции примера 8.6
- •1.5. Уточнение корней уравнений
- •1.6. Использование оператора цикла do … while в ицвп
- •1.7. Использование операторов break и continue в ицвп
- •2. Задание
- •2.4.1.2. Пример
- •2.4.1.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Использование рекуррентных формул в цикле
- •2.4.3.1. Условие задания
- •Варианты заданий
- •Варианты заданий
- •2.4.3.2. Пример
- •2.4.3.3. Программа
- •Варианты заданий
- •2.4.4.2. Пример
- •2.4.4.3. Программа
- •2.5.1.2. Пример программы
- •2.5.1.3. Программа
- •2.5.1.4. Тестирование
- •2.5.1.5. Типичные ошибки при выполнении работы
- •2.5.2. Задание 2. Накопление произведений в цикле
- •2.5.2.2. Пример 8.4
- •2.5.2.3. Программа
- •2.5.3.2. Пример для варианта 30
- •2.5.3.3. Программа
- •2.5.3.4. Тестирование
- •2.5.4. Задание 4. Вычисление значения функции с помощью разложения в ряд
- •2.5.4.1. Условие задания
- •Варианты заданий
- •2.5.4.2. Пример для варианта 30
- •2.5.4.3. Программа
- •2.5.4.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие ицвп 2
А) выполнения оператора while ; б) функции примера 8.6
Значение функции с точностью до 10-3 будет получено в y. Перед оператором while переменная y принимает начальное приближение кубического корня из 21, равное 2. В процессе выполнения оператора это значение последовательно приближается к истинному значению функции.
Пример 8.10
Составить программу для вычисления квадратного корня 13 числа х по формуле (8.1) с погрешностью (8.2). В качестве начального приближения принять У0 = (1 + х/2). Блок-схема решения примера приведена на рис. 8.1.
Таблица 8.6
Идентификаторы примера 8.10
В исходном выражении |
x |
Yk |
Yk-1 |
|
|
|
В программе на С++ |
x |
y |
y0 |
eps |
|
|
Фрагмент программы, реализующей итерационные вычисления квадратного корня из числа, может иметь вид:
x = …;
eps = …;
y0 = 0;
y = 1 + x/2;
while(fabs(y – y0) > eps)
{
y0 = y;
y = 0.5*(x/y0 + y0);
}
cout <<"Значение квадратного корня = "; << y;
Пример 8.11
Необходимо вычислить квадраты и кубы положительных чисел в интервале 1 ≤ х ≤ 100.
Блок-схема алгоритма программы приведена на рис. 8.7,а. Эта часть программы может быть записана следующим образом:
x =1;
while(x <= 100)
{
quadrat = x*x;
kub = quadrat*x;
cout <<"x = " << x << " quadrat = " << quadrat << " kub = " << kub << endl;
x = x + 1;
}
Пример 8.12
Используя оператор цикла while составить программу для вычисления функции у = sin х примера 8.7. Значение х задать вводом.
Таблица 8.7
Таблица идентификаторов примера 8.12
8
В исходном выражении |
U |
x |
|
K |
| | |
|
В программе на С++ |
u |
x |
eps |
K |
fabs |
|
|
|
а) |
б) |
Рис. 8.7. Блок-схемы алгоритмов: а) примера 8.8; б) примера 8.5
Программа на С++, реализующая указанные вычисления, имеет вид:
int main()
float u, x, y, eps;
int k;
y = 0;
k = 0;
cout <<"Введите значение для x "; cin >> x;
u = x;
CUCLE: while(fabs(u)>eps)
{
u = - x*x/(2*k*(2*k + 1))*u;
y = y + u;
k = k + 1;
}
cout << "x = " << x << " y= " << y << " k = " << k;
1.5. Уточнение корней уравнений
Аналитическое решение для многих алгебраических и трансцендентных уравнений получить не удается. Для решения таких уравнений используют приближенные итерационные методы (методы последовательных приближений). Решение уравнения производится определением грубого значения корня (например, графическим путем) и последующим его уточнением.
Уточнение значения корня уравнения рассматривается на примере метода итераций. Сущность метода заключается в том, что исходное уравнение представляется в виде х = f (х).
Если в интервале между приближенным значением корня х0 и корнем уравнения х выполняется условие , то метод дает возможность вычислить значение корня с заданной точностью. Если это условие не выполняется, то надо перейти к обратной функции. Новое значение корня вычисляется через предыдущее по формуле . Повторяя этот процесс для x1, x2, x3, …, можно найти значение корня с заданной точностью, определяемой с помощью соотношения
Пример 8.13
Найти действительный корень уравнения
х - sin х = 0,25
с заданной абсолютной погрешностью 0,001.
Представим это уравнение в виде
х = 0,25 + sin х,
и будем вычислять его корень методом последовательных приближений
хk+1 = 0,25 + sin хk,
до соблюдения неравенства
|хk+1 - хk | ≤ 0,001.
В качестве исходного приближения примем x0 = 1,2.
Блок-схема алгоритма приведена на рис. 8.7,б. Фрагмент программы, реализующий указанные вычисления, может иметь вид:
x1 = 0;
х2 = 1,2;
while(fabs(x2 – x1)> 1e-03)
{
x1 = x2;
x2 = 0/25 + sin(x1);
}
cout << "Искомый корень = " << x2;