
- •Технология программирования итерационных циклов
- •Итерационные циклы с точным решением
- •Физические задачи
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Итерационные циклы с приближенным решением
- •Задача вычисления произведений Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Задача о последовательном делении Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Заключение
- •Вопросы для контроля
- •Технология программирования смешанных процессов
- •Вычисление накоплений
- •Вычисление сумм в цикле
- •Суммы элементов одномерных массивов
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Суммы в вычислении полиномов
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Суммы в вычислении степенных рядов
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Вычисление произведений в цикле
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Вычисление разностей в цикле
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Вычисление частных в цикле
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Поиск экстремальных значений
- •Поиск наибольшего (глобального) значения
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Поиск наименьшего значения
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Заключение
- •Вопросы для контроля
-
Итерационные циклы с приближенным решением
Количество задач, реализуемых итерационными циклами с точным решением невелико. Значительно больше задач, в которых решение стремится к точному значению функции, но достигнуть его не может, т.е. обуславливающих итерационные циклы с приближенным решением.
Типичные представители этой группы – вычисления тригонометрических функций (реализуемых стандартными подпрограммами), вычисления степенных рядов и т. д. Характерная особенность таких задач – соединение простого итерационного цикла с накоплением. Поэтому типовые методики предмашинной подготовки этих задач изложены в соответствующей – следующей главе. Ниже рассматриваются «чистые» итерационные задачи с приближенным решением. Первая из них – задача (7.3) о вычислении произведений.
-
Задача вычисления произведений Постановка задачи
Даны два одномерных массива одинакового размера, численные значения которых увеличиваются по мере увеличения индексов. Рассчитать произведения попарных элементов. Расчёт производить до тех пор, пока частное от деления заданной переменной х на полученное текущее значение не станет меньше некоторой минимальной величины ().
Формирование математической модели
Исходные данные
|a1 a2 . . . ai . . . an| – модель первого исходного массива;
|b1 b2 . . . bi . . . bn| – модель второго исходного массива;
x = _ _ _ , _ _ _ – переменная (делимое);
= _ , _ _ _ _ – предел (граница) вычислений.
Расчётные зависимости
–
основная зависимость;
–
вспомогательная зависимость;
–
условие прекращения вычислений;
–
возможный диапазон изменения индекса;
i = i + 1 – закон изменения индекса.
Выбор метода решения
Анализ математической модели задачи
показывает, что её решение требует
многократного расчёта значений попарных
произведений соответствующих элементов
массивов. Вычисления необходимо
производить до тех пор, пока частное от
деления заданной переменной x
на текущее значение произведения
превышает заданное граничное значение
(
= 0,005). Решение можно осуществить двумя
вариантами:
-
арифметическим циклом с искусственным выходом;
-
итерационным циклом.
Первый из них в качестве основного
параметра цикла использует индекс i,
изменяющийся по стандартному закону i
= i + 1. При этом желаемый
выход из цикла определяется дополнительным
условием (),
проверяемым в теле цикла.
Второй вариант требует вычислений основной и вспомогательной расчётных зависимостей с использованием дополнительной (i = i + 1), формирующей текущие значения индексов для вызова элементов массива, т. е. определяет выбор метода расчёта с аналитическим изменением аргумента – дополнительной переменной (индекса i).
Таким образом, для первого варианта
параметром цикла является переменная
i с указанным в математической
формулировке законом изменения i
= i + 1. При этом возможны
два варианта прекращения цикла –
естественный, после перебора всех
элементов массива
(если условие выхода не выполняется) и
основной – искусственный
.
Для второго варианта параметром цикла
является переменная di
с законом изменения
.
При этом процесс счёта необходимо
осуществлять до тех пор, пока выполняется
условие
,
обратное заданному в постановке задачи
(
)
для прекращения вычислений.
Следовательно, в качестве численного метода решения требуется циклический вычислительный процесс с неизвестным числом повторений (итерационный) выполняемый до получения результата со значением, меньшим граничного.