uses crt;
type func=function(x:real):real;
{$F+}
function F1(x:real):real;
begin
F1:=ln(x)-x+1.8;
end;
function F2(x:real):real;
begin
F2:=x*x-1;
end;
{$F-}
procedure Interval(FF:func;xn,xk,dx:real);
var x,n,k:real;
i:byte;
begin
i:=0;
x:=xn+dx;
while x<=xk+dx do
begin
if FF(x-dx)=0 then
begin
writeln('Корень=',x-dx:0:1);
write('Press Enter...');
readln;
exit;
end;
if FF(x)=0 then
begin
writeln('Корень=',x:0:1);
write('Press Enter...');
readln;
exit;
end;
if FF(x)*FF(x-dx)<0 then
begin
n:=x-dx;
k:=x;
end;
x:=x+dx;
end;
writeln('Корень в интервале ',n:0:1,' - ',k:0:1);
write('Press Enter...');
readln;
end;
begin
clrscr;
writeln('Функция lnx+x+1.8 инт. [2,3]');
Interval(F1,2,3,0.1);
writeln;
writeln('Функция x^2-1 инт. [1,2]');
Interval(F2,1,2,0.1);
end.