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

Получите:
Код:
Var
 i,N,k:Integer;
 x_nach,x_kon,Delta_x,S,x,A,Eps:Real;

Begin
 Repeat
  Write('x_nach = ');
  Readln(x_nach);
  Write('x_kon = ');
  Readln(x_kon);
  if ((x_nach>0) and (x_nach<=1)) or
     ((x_nach<0) and (x_nach>=-1)) or
     ((x_kon>0) and (x_kon<=1)) or
     ((x_kon<0) and (x_kon>=-1)) or
     (x_nach>x_kon) then writeln('Error!!!');
 Until ((x_kon<-1) or (x_nach>1)) and (x_nach<x_kon);
 Write('Delta_x = ');
 Readln(Delta_x);
 Write('Eps (e.g. 0.0001)= ');
 Readln(Eps);

 N:=Trunc((x_kon-x_nach)/Delta_x);

 writeln('   x                 Result          Accurate value');

 for i:=0 to N do
  begin
   x:=x_nach+Delta_x*i;
   A:=1/x;
   S:=A;
   k:=1;
   Repeat
    A:=A/Sqr(x);
    Inc(k);
    S:=S+A/(2*k-1);
   Until Abs(A*2/(2*k-1))<Eps;
   writeln(x:7:3,S*2:20:5,ln((x+1)/(x-1)):20:5);
  end;
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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