Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика программирование, учебник.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
22.08 Mб
Скачать

3.2 Итерационный цикл

Итерационным называется циклический процесс, в котором количество повторений (итераций) неизвестно в момент входа в цикл. В результате работы блоков алгоритма, входящих в тело цикла, формируется условие завершения цикла. Если этого не происходит, то программа входит в так называемый бесконечный цикл. Чаще говорят, что программа зацикливается. Для выхода из бесконечного цикла следует использовать комбинации клавиш:  Ctr  +  C  ,  Alt  +  C  ,  Ctr  +  Break  ,  Alt  +  Break  . В языке Паскаль для программирования этого вида циклов рекомендуются операторы REPEAT … UNTIL или WHILE … DO. Для работы в теле цикла и досрочного выхода из него можно использовать операторы BREAK и CONTINUE.

Итерационный цикл служит основой для алгоритмизации процесса, в котором число повторений заранее не известно, выход из него осуществляется по выполнению некоторого условия. Обычно такие процессы используются для организации вычислений некоторой величины с заданной погрешностью, и в качестве условия выхода из цикла принимается достижение заданной степени точности при последовательном приближении к искомому значению.

Алгоритм итерационного цикла может строиться как на основе цикла с постусловиями (ЦИКЛ-ПОСЛЕ), так и на основе цикла с предусловиями (ЦИКЛ-ДО). В итерационном цикле использование счетчика цикла необязательно, необходимость его использования определяется условиями задачи. Если же все-таки счетчик цикла используется, то перед выполнением тела цикла он должен получить начальное значение и внутри тела цикла он должен изменять свое значение.

Итерационные циклы используются, как правило, для решения следующих задач:

  • вычисление предела последовательности с заданной точностью;

  • вычисление суммы бесконечного ряда с заданной точностью.

Рассмотрим подробнее примеры решения таких задач.

Вычисление предела последовательности с заданной точностью.

Пусть задача заключается в том, чтобы с точностью до заданного найти . Число является пределом последовательности с точностью до , если , и это неравенство выполняется для любых по определению предела последовательности. По принципу Больцано-Коши сходящаяся к некоторому пределу последовательность сходится в себе, т.е. для любых должно выполняться .

Таким образом, задача нахождения предела последовательности может быть сведена к определению члена последовательности , для которого и этот член может быть принят за предел с точностью до : .

При этом задача отыскания предела последовательности может быть алгоритмизирована на основе итерационного цикла, в котором тело цикла содержит в себе вычисление последующего члена последовательности, а условием повторения цикла является условие, что разность по модулю двух соседних членов последовательности больше .

Исходными данными алгоритма являются точность вычисления и значения параметров последовательности, если они присутствуют, а результатом алгоритма является значение предела .

Найти с точностью до значение предела последовательности

.

Обозначим за .

Исходными данными алгоритма являются значения точности и параметра , а результатом значение предела .

Организуем цикл перебора элементов последовательности, в котором за текущее значение предела А будем принимать значение текущего элемента последовательности; кроме того, для проверки условия повторения необходимо сохранять значение предыдущего члена последовательности и при продвижении по последовательности производить переприсваивание.

Заполним таблицу имен объектов:

Имя объекта в задаче

Имя объекта в блок-схеме

Тип объекта

Примечание

N

Целая переменная

счетчик цикла, номер текущего элемента последовательности

X

Вещественная переменная

Параметр последовательности

EPS

Вещественная переменная

Точность вычислений

А

Вещественная переменная

Текущий элемент последовательности

AP

Вещественная переменная

Предыдущий элемент последовательности

Схема алгоритма по шагам запишется следующим образом:

Ш1. Ввод X, EPS.

Ш2. AP присвоить 1.

Ш3. N присвоить 1.

Ш4. A присвоить .

Ш5. Если !A-AP!>=EPS, то перейти на Ш8.

Ш6. Вывод A.

Ш7. Конец.

Ш8. N присвоить N+1.

Ш9. AP присвоить А.

Ш10. A присвоить .

Ш11. Перейти на Ш5.

Блок-схема этого алгоритма приведена на рис. 2.9.

Рис. 2.9 Блок-схема алгоритма итерационного цикла

Поясним работу этого алгоритма для .

№ действия

№ блока

Результат действия

1

1

Ввод

2

2

3

3

4

4

5

5

Да

6

8

7

9

8

10

9

11

Переход на 5

10

5

Да

11

8

12

9

13

10

14

11

Переход на 5

15

5

Да

16

8

17

9

18

10

19

11

Переход на 5

20

5

|0.4-0.33|  0.1, Нет

21

6

Вывод

22

7

Конец