|
ВОПРОС №13
В языке Паскаль
существует три
различных оператора
с помощью
которых можно
запрограммировать
повторяющиеся фрагменты
программы (три оператора
цикла):
- счетный цикл
FOR;
- цикл
WHILE
с предусловием;
- цикл
REPEAT...UNTIL
c постусловием.
Цикл ПЕРЕСЧЕТ (прямой).
Формат
оператора:
FOR
переменная :=
выражение 1 ТО
выражение 2
DO оператор;
Переменная
должна быть порядкового типа. Порядковыми называются все простые типы,
значения которых можно расположить в возрастающем порядке. Из известных нам
это:
INTEGER, WORD, LONGINT,
BYTE, CHAR. Выражение 1 и Выражение 2 должны быть того же типа, что и
переменная. Чтобы цикл выполнился хотя бы раз выражение1 должно быть не
больше выражения2. Выполнение начинается с вычисления значений выражения1 и
выражения2, затем переменная получает значение выражения1 и делается
проверка, не превышает ли значение переменной выражения2. Если не превышает,
выполняется оператор стоящий после служебного слова
DO. После завершения
оператора переменная получает следующее по порядку значение,
и все повторяется, начиная с проверки.
Когда значение переменной становится равным выражению2, оператор выполняется
последний раз.
Оператор цикла
WHILE (цикл ПОКА).
Формат оператора:
WHILE логическое
выражение
DO;
Оператор будет повторятся пока истинно логическое
выражение. Перед каждым повторением оператора значение логического выражения
вычисляется заново. Если необходимо повторить несколько операторов, их
следует объединить в составной оператор,
т.е. заключить в операторные скобки
begin …
end. Этот цикл
может не выполниться ни разу, если условие при входе в него оказалось
ложным. Таким образом, цикл ПОКА содержит условие повторения цикла.
Оператор цикла
REPEAT (цикл ДО).
Формат оператора:
REPEAT оператор; оператор;…оператор
UNTIL
логическое условие;
Часть программы, заключенная между служебными словами
REPEAT и
UNTIL, повторяется
до тех пор, пока не станет истинным логическое выражение, стоящее после
слова UNTIL. Между
словами REPEAT
(повторить) и UNTIL(до
тех пор пока) можно записать любое количество операторов без использования
операторных скобок. В отличие от
оператора WHILE
вычисление логического выражения происходит не до, а после очередного
повторения цикла. Из-за этого цикл
REPEAT обязательно
выполнится хотя бы раз, а цикл
WHILE может не
выполнится ни разу. Если условие
в цикле ПОКА является условием продолжения повторений, то условие в цикле ДО
– условием выхода из цикла, его завершения. Поэтому для одной и той же
задачи эти условия
противоположны.
|