Цикл с предусловием WHILE используется тогда, когда число повторений оператора цикла заранее не известно, а задается некоторое условие продолжение цикла.
Форма записи:
WHILE <лог выр-ние / условие> DO BEGIN операторы
циклической части
программы
END
WHILE (пока) DO (выполнять)
Сначала выполняется значения условия. Пока оно истинно выполняются операторы циклической части. Когда только оно становится ложным, происходит выход из цикла. Если условие ложно то цикл не выполняется ни разу. Возможен случай, когда в циклической части стоит оператор перехода (EXIT, GOTO) передающий управление за пределы цикла. В такой ситуации цикл может завершиться до его естественного окончания.
Данная конструкция может работать, как конструкция цикла со счетчиком, но при этом необходимо изменять переменную, являющуюся счетчиком, с помощью оператора присваивания. В конструкции WHILE вы можете выбирать любой необходимый вам шаг.
Пример: a:=1;
n:=1;
WHILE 2-a<=3-n+1 DO
BEGIN
a:=a+2;
n:=n+1
END;
Блок-схема цикла «Пока»
нет Условие да Тело цикла |
Задача 1. Найти количество чисел, сумма которых превысит 100.
PROGRAM N;
var k:integer;
s:integer;
begin
s:=0; k:=0;
while s<=100 do
begin
k:=k+1;
s:=s+k
end;
writeln(‘количество слагаемых=’,k);
end.
Задача 2. Вычислить сумму четных чисел на отрезке от 10 до 30.
PROGRAM N;
var k:integer; {очередное слагаемое}
s:integer; {сумма}
begin
s:=0; k:=10;
while k<=30 do
begin
s:=s+k;
k:=k+2
end;
writeln(‘сумма четных чисел от 10 до 30=’,s);
end.
Задача 3. Напечатать в виде таблицы значения функции y=4x2 - 2x + 3, для значений x, изменяющегося от -4 до 2 с шагом 0.5
PROGRAM N;
var x:integer;
y:real;
begin
x:=-4;
while x<=2 do
begin
y=4*x*x-2*x+3;
x:=x+0.5
end;
writeln(‘при x=’,x,’ y=’,y:8:3);
end.