С помощью подпрограммы с параметром процедурного типа вывести границы отрезка,на котором функции имеют корень,перебирая отрезки с шагом 0,1 для ln(x)-x+1.8=0 на интервале [2,3] и x^2-1=0 на интервале [1,2]- — Pascal(Паскаль)

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.

Leave a Comment

53 − = 47