Var
mn,mx,h:real;
f:Text;
Procedure Calc_Ln(lb,hb,step:real);
Var
n,M,i:integer;
a,S,x:real;
begin
M:=Trunc((hb-lb)/Step)+2;
x:=lb-step;
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;
Readln
end;
Begin
Assign(f,'Ln.txt');
Rewrite(f);
Repeat
Write('Low border: ');
Readln(mn);
Write('High border: ');
Readln(mx);
Write('Step: ');
Readln(h);
if not ((mn>-1) and (mx<1)) then
writeln('Incorrect values!');
Until (mn>-1) and (mx<1);
Calc_Ln(mn,mx,h);
Close(f);
End.