Вычислить 1/е=1-1/1!+1/2!-1/3!+… с погрешностью 0.001 — Pascal(Паскаль)

Var
  f_new, f_old: real;
  i, j, n: integer;
Begin
  f_new:=1;
  i:=1;
  repeat
      f_old:=f_new;
      n:=1;
      for j := 1 to i do n:=n*j;
      if (i mod 2) = 0
        then f_new:=f_old+1/n
        else f_new:=f_old-1/n;
      i:=i+1;
  until (abs(f_old-f_new))<=0.001;
  Writeln('Результат: ',f_new:6:3);
  Readln;
End.

Вариант 2

function fact(N: integer): longint;
begin
   if N= 0 then
   fact := 1
   else fact := fact(N-1) * N
end; 
 
function epscalc(n: integer) : extended;
var sum, exact: extended;
begin
sum:=0;
exact:=1/e;
 repeat  
  for i:=1 to n do sum := sum + 1/fact(i);    
  until abs(exact-sum)<=0.001
end;

Leave a Comment

3 + 5 =