Repeat <операторы> Until <логическое выражение> ;
Здесь, тело циклавыполняется до тех пор, пока логическое выражение возвращает значение False.
Если в теле цикла операторов For и While более одного оператора, то необходимо использовать составной оператор.
Пример.
Напечатать таблицу значений функций sin x и cos xна отрезке [0,1] с шагом 0.1 в следующем виде:
x sin(x) cos(x)
---------------------------------
0.0000 0.0000 1.0000
0.1000 0.0998 0.9950
. . . . . . . . . . . . . . . . . . . . . . . . .
1.0000 0.8415 0.5403
Решение:
Program Table;
Const a=0; b=1; h=0.1; { границы и шаг табулирования}
Var x: Real;
Begin
x:=a;
Writeln(‘x sin(x) сos(x)‘); { заголовок таблицы}
Writeln(‘---------------------------------‘);
While x<=b Do
Begin
Writeln(x:7:4,sin(x):7:4,cos(x):7:4);
{вывод значений аргумента и функций}
x:=x+h {увеличение аргумента на шаг}
End; Writeln(‘---------------------------------‘)
End.
Пример.
Найти приближенное значение суммы ряда
, учитывающее все слагаемые, от начала ряда до первого, величина которого меньше e = 0,0001 .
Решение:
Program SumRow;
Сonst e=1E-4; {точность вычислений}
Var U,S,F:Real; {очередное слагаемое и сумма ряда}
n:Integer;
Begin
n:=1; S:=1; F:=1;
Repeat
n:=n+1;
F:=F*n;{вычисление факториала}
U:=1/F; {вычисление очередного слагаемого}
S:=S+U; {вычисление суммы ряда}
Until Abs(S)<e;
Writeln(‘Сумма ряда S=‘, S:7:4);
End.