Цитата:
Сообщение от EVO_X
Сначала убрал x:=0.1*i; и вместо -9 и 9 поставил переменные, которые ранее задаются. Переменные вводил в виде десятичных дробей
|
Лихо! А то, что индекс цикла может быть только целым числом - это Вам как? Мимо?
Цитата:
Сообщение от EVO_X
формула для суммирования действует на полуинтервале (-1;1]
|
На самом деле - в интервале (-1;1). Т.е. формально плюс единица допускается, но, поскольку ряд сходится очень медленно, при той дикой (одна десятимиллионная) точности при х=1 получается такое число слагаемых, которое выходит за разрядную сетку и возникает ошибка. Поэтому лучше до +1 не доходить.
Вот вариант:
Код:
Var
n,i,M:integer;
a,x,S,Step:real;
f:Text;
Begin
Assign(f,'D:\Ln.txt');
Rewrite(f);
Write('Step = ');
Readln(Step);
M:=Trunc(2.0/Step);
x:=-1;
for i:=1 to M do
begin
x:=x+Step;
a:=x;
S:=a;
n:=1;
repeat
n:=n+1;
a:=-a*(n-1)/n*x;
S:=S+a;
until Abs(a)<1E-7;
Writeln(x:6:3,S:15:5,Ln(1+x):15:5);
Writeln(f,x:6:3,S:15:5);
end;
Close(f);
Readln
End.