ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ имеет структуру:
WHILE условие DO оп-р;
где условие – это выражение, принимающее значение false или true.
оп-р – простой или составной оператор, выполняющийся в цикле до тех пор, пока условие = true, иначе программа переходит к выполнению оператора, следующего за оператором цикла.
Пример 3. Вычислить сумму ряда элементов убывающей последовательности S=1+1/22+1/32 +1/42+…+1/k2+… . Вычисление производить до тех пор, пока очередной элемент ряда не станет меньше некоторой заданной величины Е.
Program sum_r;
Label 1;{метка}
Var k:integer;
Sum,a,E:real;{a – очередной элемент ряда}
Begin
1: write(‘Задайте значение Е>0: ’);readln(E);
{Очевидно, что при Е>=1 задача теряет смысл, поэтому
проверяется условие корректности задания значения Е:}
if E>=1 then
begin writeln(‘Значение Е задано не корректно. Надо Е<1’);
goto 1
end;
a:=1;{первый элемент ряда равен 1}
Sum:=0;k;=0;
While a > E do
Begin k:=k+1;a:=1/sqr(k);sum:=sum+a;
writeln(‘На шаге’, k:3, ‘ сумма ряда S=’,sum);
End;
Writeln(‘Решение закончено. Нажмите Enter’);readln
End.
Особенность оператора while состоит в том, что если условие первоначально равно false, то никакие действия внутри оператора цикла ни разу не выполняются и программа сразу переходит к выполнению оператора, следующего за оператором цикла.