Оператор repeat позволяет организовать цикл, тело которого расположено перед заголовком.
Синтаксис оператора Repeat:
Операторы, заключенные между ключевыми словами repeat и until, выполняются последовательно до тех пор, пока результат логического_выражения не примет значение Тrue.
Рисунок 4 – Блок-схема цикла с постусловием
В качестве примера использования цикла с постусловием repeatприведем программу, которая по заданному пользователем значению х выводит на экран результат вычисления формулы:
.
Цикл repeatв данном случае используется для контроля вводимого пользователем значения. Условие окончания цикла ((x>-5)and(x<>0)) составлено таким образом, что если пользователь введёт значение, равное 0 или меньшее -5, то цикл выполнится снова, и пользователь будет вынужден повторно ввести значение х.
x,y:real;
writex('x->');
until (x>-5)and(x<>0);
y:=sqrt(x+5)/x+1;
writeln('x=',x);
writeln('y=',y);
Оператор while позволяет организовать цикл, тело которого расположено после заголовка.
Синтаксис оператора While:
Рисунок 5 – Блок-схема цикла с предусловием
Единственный оператор, составляющий тело цикла, выполняется повторно до тех пор, пока логическое_выражениепринимает значение Тruе.
В качестве примера использования цикла с предусловием whileприведем программу, которая выполняет те же функции, что и программа, приведённая в предыдущем пункте (Пример использования оператора repeat).
Цикл while продолжает работать, пока логическое выражение будет иметь значение true, в отличие от цикла repeat, который продолжает работать, пока логическое выражение будет иметь значение false. Поэтому потребовалось изменить логическое выражение (условие окончания цикла): (x<-5) or (x=0).
Также следует обратить внимание на оператор x:=-10, который используется для того, чтобы цикл выполнился в первый раз. Вместо значения 10 можно использовать любое другое значение, позволяющее получить значение true при вычислении выражения (x<-5) or (x=0)(например: 11, 100, -3 и т. д.).
x,y:real;
while (x<-5) or (x=0) do
write('x->');
y:=sqrt(x+5)/x+1;
writeln('x=',x);
writeln('y=',y);
Оператор цикла For позволяет выполнить тело цикла определённое количество раз.
Синтаксис оператора For:
For Ид_переменной := выражение1 to|downto выражение2 do