Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Ефименко.doc
Скачиваний:
15
Добавлен:
06.11.2018
Размер:
1.4 Mб
Скачать

4.3. Циклы с неизвестным числом повторений

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

В циклах с неизвестным числом повторений вычислительный процесс завершается при выполнении некоторого дополнительного условия. Значения параметра цикла уже не задаётся в виде диапазона, а только указывается его начальное значение и шаг изменения. Тем не менее, организация цикла выполняется по стандартной методике, указанной в п. 4.1. Отличие заключается в том, что не любой тип циклического вычислительного процесса можно использовать. Тип цикла определяется в соответствии с заданным дополнительным условием завершения вычислений. Это однозначно исключает возможность использование цикла «Для» на основе блока модификации. Для определения количества шагов повторения цикла необходимо организовать счетчик.

Пример 4.3. Составить блок-схему алгоритма, вычисляющего значения функции у = ln(1 + 0.2x), при различных значениях параметра х, изменяющегося от xn ≤ 3 с шагом hx = -2. При этом вычислять у до тех пор, пока выражение под знаком логарифма остается больше 0. Определить количество (k) вычисленных значений y.

Перед решением задачи необходимо определить тип цикла, который будет использоваться. Вычисляемое выражение содержит «аномалию» (значение под знаком логарифма должно быть больше 0), которая в тоже время является условием завершения вычислений. Другими словами, необходимо вначале проверить возможность вычисления значения у, а только затем вычислять его. Поэтому в данном случае для организации вычислительного процесса можно использовать только цикл с предусловием (рис. 4.3).

В качестве исходных данных вводятся значения переменных хn, hx (блок 2). В блоке 3 задаются начальные значения для параметра цикла x и счетчика количества повторений цикла k. После этого, в блоке 4 одновременно проверяются условие продолжения цикла и возможная «аномалия» (выражение под знаком логарифма должно быть больше 0). В теле цикла для текущего значения х вычисляется и выводится соответствующее значение у (блоки 5-6), а также увеличивается значение счетчика вычисленных у (блок 7). В конце тела цикла выполняется переход к следующему значению параметра цикла х (блок 8). Цикл работает до тех пор, пока под знаком логарифма не появится выражение ≤ 0. После выхода из цикла в блоке 9 выводится переменная k – количество вычисленных значений у.

Результаты пошагового выполнения цикла в алгоритме, приведенном на рис. 4.3, представлены в таблице 4.3.

Таблица 4.3. Пошаговое выполнение цикла

шага

Текущее

значение х

начале цикла)

Результат проверки

условия продолжения

цикла (1+0.2x>0)

Вычисл.

значение у

Текущие

значения k

Новое

значение х

конце цикла)

1

3 (xn)

Истина (1+0.23=1.6 >0)

0.47

k=1

1

2

1

Истина (1+0.21=1.2 >0)

0.18

k=2

-1

3

-1

Истина (1+0.2-1=0.8 >0)

-0.22

k=3

-3

4

-3

Истина (1+0.2-3=0.4 >0)

-0.92

k=4

-5

5

-5

Ложь (1+0.2-5=0 >0)