Программирование циклов

Программные шаблоны всех разновидностей базовой структуры ЦИКЛ легко составляются с использованием оператора F языка Бейсик — по аналогии с тем, как это делалось средствами построчной алгоритмической нотации, Базовая структура ЦИКЛ-ПОКА:

Замена в записи оператора F условия Р его отрицанием обусловлена выбором наиболее целесообразного способа программного представления структуры. Рассмотрим теперь примеры составления циклических программ.

Пример. Составить программу нахождения наибольшего общего делителя (НОД) двух целых положительных чисел.

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

Программа может иметь вид:

10 ПРОГРАММА НОД (А, В)

20 NPUT А, В

30 Х = А:У = В

40 F X = Y THEN 80

50 F X>Y THEN 70

60 Y = Y —X:GOTO 40

70 X = X —Y: GOTO 40

80 PRNT НОД (; A; , ; B; )=; X

90 GOTO 20

Печать результата имеет форму НОД (А, В) = Х, где А и В — исходные числовые значения, а X — найденный числовой результат. Так, например, если программе задать значения А = 12 и В =18, то ответ будет выдан в виде

НОД (12, 18) =6

Для того чтобы сохранить для печати исходные значения данных А и В, в начале программы (строка 30) эти значения передаются рабочим переменным X и Y.

Пример 4.4.2. Составить программу вычисления (генерирования) 100 членов последовательности, заданной формулой

2, 100).

В основу программы положим алгоритм, построенный по схеме ЦИКЛ-ДО.

10 СУММА ПОСЛЕДОВАТЕЛЬНОСТИ

20 к=1

30 А=КЛ2/(КЛ3+1) 40 PRNT А(; К; ) = ; А 50 К = К+1

60 F К< = 100 THEN 30 70 END

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

По поводу полученной программы можно заметить, что использование для ее составления структуры ЦИКЛ-ДО оказалось бы ошибочным, так как при определенном сочетании задаваемых программе значений Е и X значение результата S может оказаться равным 0, в то время как программа ЦИКЛ-ДО и в этом случае выдаст в качестве результата значение первого члена 1/Х.

Рассмотрим сейчас особо случай, когда условием Р в структуре ЦИКЛ-ДО (см. рис. 44, б, с. 140) является неравенство вида а>р, где параметр цикла имеет своим начальным значением ао, а в каждом обращении цикла преобразуется по закону арифметической прогрессии а:=а+ ft (h — заданный шаг). Соответствующий циклический алгоритм описывается схемой, изображенной на рисунке. Для программирования циклических алгоритмов такого вида в Бейсике имеются два специальных оператора: оператор начала цикла (или, коротко, оператор FOR) и оператор конца цикла (оператор NEXT). Операторы FOR и NEXT всегда используются совместно.

Метки: , ,

Записи по теме

Комментировать

Введите код