Показать сообщение отдельно
Старый 16.02.2012, 11:45   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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? Вряд ли этот дебил в курсе, но при такой подстановке получается в знаменателе ноль, что недопустимо.
Естественно, в программе счет начинается с единицы.
Vladimir_S вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070