Цитата:
Сообщение от vitaref
Даны действительные числа x, ε (x не равно 0, ε>0). Вычислить с точностью ε (ε=10-3,10-4,10-5,10-6) сумму ряда и указать количество учтенных слагаемых. Результаты оформить в виде таблицы: (подробнее во вложении)
|
Пожалуйста:
Код:
CONST
Eps:Array[1..4] of Real=(0.001,0.0001,0.00001,0.000001);
VAR
Sum,x:Real;
N:Word;
i:Integer;
PROCEDURE SUMS(Es:Real; Var S:Real; Var Ns:Word);
VAR
a:Real;
Begin
S:=0;
Ns:=0;
Repeat
Inc(Ns);
a:=x/Ns/(Sqr(Ns)+Sqrt(Abs(x)+1));
S:=S+a;
Until (Abs(a)<Es) or (Ns=10);
End;
BEGIN
Write('x= ');
ReadLn(x);
WriteLn;
WriteLn(' Results of calculation:');
WriteLn(' X Eps SUM N');
WriteLn;
For i:=1 to 4 do
begin
SUMS(Eps[i],Sum,N);
WriteLn(x:8:5,' ',Eps[i]:8:6,' ',SUM:7:5,' ',N:3);
end;
ReadLn;
END.
А вот интересно - тот идиот, который составлял методичку, не пробовал в изображенную им формулу подставить наименьшее значение индекса суммирования, т.е. 0? Вряд ли этот дебил в курсе, но при такой подстановке получается в знаменателе ноль, что недопустимо.
Естественно, в программе счет начинается с единицы.