Вычислить сумму ряда - Turbo Pascal (34033)

Формулировка задачи:

Написал исходник скорее всего с ошибками не выводит сумму s.В чем может быть проблема?Программу надо сделать используя цикл while.
Program summa;
var
s,sl,x:real;
m,i:integer;
function fact (i:integer):integer;
begin
if 1<=i then fact:=1
else fact:= i*fact(i-1);
end;
begin
writeln('введите m: ');
readln(m);
s:=0;
i:=1;
x:=-0.8;
sl:=ln((x*x+1)/fact(i))/ln(10);
while i<m do 
s:=s+sl;
i:=i+1;
x:=-1+0.2*i;
sl:=ln((x*x+1)/fact(i))/ln(10);
writeln('сумма: ',s);
end.

Код к задаче: «Вычислить сумму ряда - Turbo Pascal (34033)»

textual
program summa;
 
var
  s, sl, x: real;
  m, i: integer;
 
function fact(i: integer): integer;
begin
  if i <= 1 then fact := 1
  else fact := i * fact(i - 1);
end;
 
begin
  writeln('ââåäèòå m: ');
  readln(m);
  s := 0;
  i := 1;
  x := -0.8;
  sl := ln((x * x + 1) / fact(i)) / ln(10);
  while i < m do
  begin
    s := s + sl;
    i := i + 1;
    x := -1 + 0.2 * i;
    sl := ln((x * x + 1) / fact(i)) / ln(10);
  end;
  writeln('ñóììГ*: ', s);
end.

14   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ