Операторы цикла с условием
Различают два вида операторов с условием:
1) оператор цикла WHILE (пока);
2) оператор цикла REPEAT (повторять до тех пор пока).
Оператор цикла WHILE
Общий вид
записи:
WHILE < логическое выражение > DO < тело цикла>;
Тело цикла – единичный оператор, выполняемый в цикле.
Работа оператора
Тело цикла выполняется, пока логическое выражение, определяющее условие выхода из цикла, имеет значение TRUE. В противном случае оператор цикла WHILE завершает свою работу. В состав логического выражения входит управляющая переменная, которая должна обязательно изменяться в теле цикла.
Графическая интерпретация оператора
В блок-схемах оператору цикла WHILE соответствует структура ЦИКЛ-ПОКА.
Пример 1. Алгоритм табулирования функции с одной переменной.
Вычислить таблицу значений функции:

при


В данной задаче переменная

Блок-схема
Программа
Program TAB_1;
Var
a, b, x, y: real;
Begin
writeln(‘Введите исходные данные’);
read(a, b);
writeln (‘ x y(x)’);
x := -0.5;
while x <= 2.5 do
begin
y := ln(abs(x))/(a*a - b*b);
writeln(x:8:1, y:8:1)
x := x + 0.1;
end;
End.
Оператор цикла REPEAT
Общий вид
записи:
REPEAT
<тело цикла>;
UNTIL <логическое выражение>;
Работа оператора
Выполняется тело цикла, после чего вычисляется логическое выражение, определяющее условие выхода из цикла. Если логическое выражение имеет значение FALSE, то повторяется выполнение тела цикла. В противном случае оператор цикла REPEAT завершает свою работу.
Управляющая переменная, как и в случае оператора цикла WHILE, должна включаться в состав логического выражения и изменяться в теле цикла.
Графическая интерпретация оператора
В блок-схемах оператору цикла REPEAT соответствует структура ЦИКЛ-ДО.
Выход из цикла |
Пример 2. Решить предыдущую задачу табулирования функции с использованием оператора цикла REPEAT.
Программа
Program TAB_2;
Var
a, b, x, y: real;
Begin
writeln(‘Введите исходные данные’);
read(a, b);
writeln(‘ x y(x)’);
x := -0.5;
repeat
y := ln(abs(x))/(a*a - b*b);
writeln(x:8:1, y:8:1)
x := x + 0.1;
until x > 2.5;
End.
Блок-схема |
Основные отличия оператора цикла WHILE
от оператора цикла REPEAT.
1. В теле цикла оператора WHILE может стоять только один оператор. Для выполнения в цикле нескольких операторов тело цикла должно заключаться в операторные скобки BEGIN … END.
В операторе REPEAT операторные скобки не ставятся, так как их целиком заменяют служебные слова REPEAT … UNTIL.
2. В операторе WHILE тело цикла может не выполняться ни разу, если логическое выражение сразу окажется ложным.
В операторе REPEAT логическое выражение записывается после тела цикла. Поэтому тело цикла обязательно выполнится хотя бы один раз.