В программе нужно уточнить корень методом касательных. В строке 46 после kol чего-то не хватает, не пойму чего.вот эта строка отдельно
kasat(Lb,Rb,Eps,Maks,Koren,kol); - 5-я снизу
подскажите пожалуйста. Заранее спасибо.
Code
program kasatilnie;
var kol,Lb,Rb,Eps,Koren,Maks:real;
out:integer;
function f(Arg:real):real;
begin
f:=8*cos(Arg)-Arg-6;
end;
function f1(Arg:real):real;
begin
f1:=8*(-sin(Arg))-1;
end;
function f2(Arg:real):real;
begin
f2:=8*(-cos(Arg));
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(f1(x));
for i:=2 to n do begin
x:=x+0.01;
if abs(f1(x))>max then max:=abs(f1(x)); end;
end;
procedure kasat(a,b,Max,E:real; var x,x0,x1:real; var k:integer);
begin
Kol:=0;
if f(a)*f2(a)<0 then
x1:=b-f(b)/f1(b)
else
x1:=a-f(a)/f1(a);
x0:=x1; kol:=kol+1;
if abs(f(x))>=E*max then
begin
x0:=x1-f(x1)/f1(x1);
kol:=kol+1; x1:=x0
end; 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);
kasat(Lb,Rb,Eps,Maks,Koren,kol);
writeln('метод касательных');
writeln('x0=', Koren:0 : out, 'f(x0)=',f(koren):0 : out, 'k=',kol);
readln;
end.