Вычисление суммы бесконечного ряда с заданной точностью
Пример. Даны действительные числа x и E (E>0). Вычислить сумму ряда с заданной точностью e и указать количество учтенных слагаемых.
Вычисление суммы ряда с заданной точностью E означает, что суммирование следует продолжать до тех пор, пока модуль очередного слагаемого не будет меньше E.
Введем обозначение
PROGRAM Example2;
VAR
X, Eps : real;
A, S: real; {текущее слагаемое, сумма}
К: word; {номер слагаемого}
R : real; {коэффициент в рекуррентной формуле}
BEGIN
Writeln ('Введите х и точность');
Readln (X, Eps);
К: = 0; А : = X; {слагаемое при К = 0}
S: = 0;
while Abs (A) > = Eps do
begin
S := S + A;
inc (K);
R := Sqr(X)* ( 2 * K -1) / (K* (2 * К + 1));
A:=A*R;
end;
Writeln ('Сумма-‘ , S);
Writeln ('Количество учтенных слагаемых-‘ , K);
Readln
End.
Оператор цикла по убывающим значениям параметра имеет вид:
for I := N2 downto Nl do S; (обозначения прежние).
Его действия можно представить как:
T1 := N1; Т2: =N2; {вычисление границ параметра цикла}
if T2 >=T1 then
begin
I:=T2; {S};
I:= Pred(I); {S}...
I:=Tl; {S}: end:
Если N2 < N1, то цикл не выполнится ни разу.
Пример. Вычислить:
S:=0;
For i:= n downto 1 do s:= sqrt(3*i+s) ;
Организация циклов с шагом
Цикл с параметром I=1,n c шагом 2
I:=1;
While I<= n do
begin
S;
Inc(I,2);
end;
При использовании оператора цикла for (обе формы) нельзя изменять параметры N1, N2, I внутри цикла.
Выход из цикла можно осуществить и до завершения цикла с помощью операторов if, goto, case. Такой выход называется специальным. При специальном выходе значение параметра цикла сохраняется.