Людииии, подскажите пожалуйста почему при вычислении процедури it(процедура метода итераций) комп зацикливается, при этом max u out считает верно.
Code
Program metod_prostyh_iteraciy;
const w=1E-10;
var Lb,Rb,Eps,koren,maks:real;
kol,out :integer;
function f(arg:real):real;
begin
f:=8*cos(arg)-arg-6;
end;
function fi(arg:real):real;
begin
fi:=8*(-sin(arg))-1;
end;
procedure maximum(a,b:real; var max:real);
var i,n:integer; x:real;
begin
n:=round((b-a)/0.01)+1;
x:=a;
max:=abs(fi(x));
for i:=2 to n do
begin
x:=x+0.01;
if abs(fi(x))>max then max:=abs(fi(x));
end;
end;
procedure it(a,E,max:real; var x0:real; var k:integer);
var x1,x2,M:real;
begin
k:=1; x1:=a;
repeat x2:=fi(x1);
k:=k+1;
M:=abs(x2-x1);
x1:=x2;
until (M+w)<=E*(1-max)/max;
x0:=x1;
end;
BEGIN
write('a=');readln(Lb);
write('b=');readln(Rb);
writeln('Eps=');readln(eps);
out:=round(ln(1/eps)/ln(10));
writeln('out=',out);
maximum(Lb,Rb,maks); writeln('maks=',maks:0:5);
it(Lb,Eps,maks,koren,kol);
writeln('x0=',koren:0:out,'f(x0)=',f(koren):0:out,'kol=',kol);
readln;
end.