Оператор цикла WHILE
Операторы WHILEи REPEAT используются для программирования итерационных циклов, т. е. если необходимо произвести некоторые повторяющиеся вычисления, но число повторов заранее неизвестно, а также для программирования детерминированных циклов, если шаг изменения параметра цикла отличен от 1 и –1.
Общий вид оператора WHILE:
WHILE <логическое выражение> DO <оператор цикла>;
или
WHILE <логическое выражение> DO BEGIN
<блок операторов цикла>;
END;.
Схема, реализующая оператор WHILE , является схемой итерационного цикла с предусловием и имеет следующий вид (рисунок 3):
Рисунок 3 – Схема оператора цикла WHILE
Оператор цикла WHILE действует следующим образом: проверяется логическое выражение, и пока оно истинно (ветвь “Да”), выполняются все операторы цикла, записанные после слова DO. Как только логическое выражение становится ложным (ветвь “Нет”) происходит выход из цикла. Если с самого начала логическое условие ложно, то цикл не выполняется.
Пример 2 Вычислить и вывести на печать все значения аргумента xи функции y = x2+ 1/x, при изменении x от 5 до 20 с шагом 0,25. Найти количество полученных значений y.
Рисунок 4 – Схема алгоритма решения примера 2 | PROGRAM PRIMER2; VAR K: INTEGER; X,Y: REAL; BEGIN K:=0; X:=5; WHILE X<=20 DO BEGIN Y:=X*X+1/X; WRITELN (X:6:2,Y:12:6); K:=K+1; X:=X+0.25; END; WRITELN (‘КОЛИЧЕСТВО=’, K:3); END. |
Оператор цикла REPEAT
Общий вид оператора REPEAT:
REPEAT
<блок операторов цикла>;
UNTIL <логическое выражение>;.
Рисунок 5 – Схема оператора REPEAT
Схема, реализующая оператор цикла REPEAT, является схемой итерационного цикла с постусловием и имеет вид, представленный на рисунке 5.
Оператор REPEAT действует следующим образом: выполняются все операторы циклической части, записанные между операторами REPEAT и UNTIL. Затем проверяется логическое выражение и если оно ложно (ветвь “Нет”), то вновь выполняются все операторы цикла до тех пор, когда логическое выражение станет истинным (ветвь “Да”). Если логическое выражение истинно с самого начала, то операторы циклической части выполняются один раз.
Используем оператор цикла REPEAT для решения примера 2. Тогда схема алгоритма и программа будут иметь следующий вид:
Рисунок 6 – Схема алгоритма решения примера 2 | PROGRAM PRIMER2; VAR K: INTEGER; X,Y: REAL; BEGIN K:=0; X:=5.; REPEAT Y:=X*X+1/X; WRITELN (X:6:2, Y:12:6); K:=K+1; X:=X+0.25; UNTIL X>20 WRITELN(‘КОЛИЧЕСТВО=’,K:3); END. |
Лекция 2
Дата добавления: 2022-02-05; просмотров: 289;