Вычислить частичную сумму ряда S=1/2^2+1/3^2+1/4^2+.... Вычисление прекратить, когда...

0 голосов
58 просмотров

Вычислить частичную сумму ряда S=1/2^2+1/3^2+1/4^2+.... Вычисление прекратить, когда модуль очередного слагаемого станет меньше 0,001. Проверьте, насколько сумма приблизилась к значению pi^2/6. 2 способа


Информатика (17 баллов) | 58 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Program Markovsp1;
uses crt;
const
  eps=0.001;
var
  t,s:real;
  i:integer;
begin
  writeln('*** alphaues is thinking... ***');
  writeln('***          OK             ***');
  writeln();
  writeln('Программа вычисляет частичную сумму ряда ');
  writeln('  S=1+1/(2^2)+1/(3^2)+1/(4^2)+... ');
  writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001');
  writeln('Способ 1 - используется цикл repeat');
  writeln();
  s:=0;
  i:=1;
  repeat
    t:=1/((i)*(i));
    s:=s+t;
    //writeln('i=',i,'  T=',t:0:6,'  S=',s:0:6);
    i:=i+1;
  until abs(t)  writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6);
  writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6);
end.

Program Markovsp2;
uses crt;
const
  eps=0.001;
var
  t,s:real;
  i:integer;
begin
  writeln('*** alphaues is thinking... ***');
  writeln('***          OK             ***');
  writeln();
  writeln('Программа вычисляет частичную сумму ряда ');
  writeln('  S=1+1/(2^2)+1/(3^2)+1/(4^2)+... ');
  writeln('Вычисление прекратится, когда модуль очередного слагаемого станет меньше 0,001');
  writeln('Способ 2 - используется цикл while');
  writeln();
  s:=0;
  i:=1;
  t:=1;
  while t>eps do
    begin
      t:=1/(i*i);
      s:=s+t;
      //writeln('i=',i,'  T=',t:0:6,'  S=',s:0:6);
      i:=i+1;
     end;
  writeln('s=',s:0:6,' (pi^2)/6=',(pi*pi)/6:0:6);
  writeln('Приближение к (pi^2)/6 равно ',s-(pi*pi)/6:0:6);
end.

(52.6k баллов)