8.17. Оператор цикла с предусловием while.
Оператор цикла с послеусловием
repeat
Выше были рассмотрены алгоритмы с конструкцией циклической
структуры типа:
for <УПЦ:=1> to <пороговое значение N> do <оператор>,
которая работает с заранее известным количеством повторений цикла N.
Вместе с тем, существуют такие случаи, когда количество повторений тела
цикла вообще неизвестна, но заданы некоторые условия его завершения или
продолжения. Для програмной реализации таких вычислительных процессов в
языке ТП существуют два сложных оператора:
оператор цикла с предусловием (
while ... do);
оператор цикла с послеусловием (
repeat ... until).
Оператор цикла с предусловием имеет следующую общую форму записи:
while <УСЛОВИЕ> do <ОПЕРАТОР>;
Здесь:
слова while (пока) и do (выполнять) являются служебными;
УСЛОВИЕ – логическое выражение любой степени сложности;
ОПЕРАТОР – любой оператор языка ТП и в том числе составной
оператор. Обратите внимание на то, что в этом цикле может использоваться
только один(!) оператор (присваивания, условный, выбора, и т.д.), либо же
совокупность операторов, взятая в операторные скобки
begin … end.
Важно иметь в виду, что цикл с предусловием выполняется тогда и только
тогда, когда значение логического выражения <
УСЛОВИЕ> равно логическому
значению
TRUE. Как только оно принимает значение FALSE – цикл завершается
и управление передаётся оператору, который следует за этим циклом.
Если <
УСЛОВИЕ> имеет значение FALSE до начала выполнения цикла, то
нам не удастся войти в его тело и, следовательно, не выполнится ни один из
операторов тела цикла.
Допустим, что Вам необходимо вычислить с помощью оператора цикла с
предусловием ряд значений функции Х
2
с шагом 1 для трёх разных случаев,
указанных в таблице 8.39. Сложность конструирования цикла в этом случае
состоит в необходимости учёта трёх логических условий:
переменная Х должна принадлежать отрезку [-200, 200];
значения функции Х
2
не должны превышать значения 10
3
;
в двух последних вариантах задания необходимо учесть вычисление
чётных и нечётных значени функции Х
2
.
Сложность решения этих задач заключается у том, что Вы должны учесть
начальное значение аргумента Х, его участие в трёх вышеприведенных
логических условиях и участие логического выражения в операторе цикла
while ... do. Напоминаем, что для объединения нескольких простых