Программа


Program Cut;
{ Поиск корня уравнения
  методом секущих }
Type Func=function(x:real):real; { Тип функция }
Var Result:real;  { Корень }
    a,b:real;  { Левая и правая границы интервала локализации корня }
Function F(x:real):real; far; { Вычисление функции }
  Begin
    F:=x
  End;
Function Root(a,b:real;F:Func):real; { Функция нахождения корня }
  const Eps=0; { Точность вычислений }
  var c:real;  { Точка пересечения хорды с осью X }
  Begin
    while abs(b-a)>Eps do { Сужение интервала до заданной точности }
      begin
        if F(a)<>0  { Блокирование деления на 0 }
          then c:=a+(b-a)/(1-F(b)/F(a))
               { Определение точки пересечения секущей с осью X }
          else c:=a;  { Случайное нахождение корня }
        if (c=a)or(c=b)  { Если секущая пересекает ось X на границе интервала }
          then { то }
            begin { переопределение параметров для выхода из цикла }
              a:=c; b:=c
            end
          else  { иначе }
            if F(a)*F(c)>0 { Если функция не меняет знак на левом участке }
              then a:=c { то переопределение левого участка }
              else b:=c; { иначе - переопределение правого участка }
      end;
    Root:=(a+b)/2 { Определение значения функции }
  End;
BEGIN
  WriteLn;  { Пропуск строки }
  { Ввод интервала локализации корня: }
  Write('Введите левую границу интервала локализации корня ');
  ReadLn(a);
  Write('Введите правую границу интервала локализации корня ');
  ReadLn(b);

  Result:=Root(a,b,F);                              { Вычисление корня }
  writeln('x=',Result,'  F(x)=',F(Result))          { Вывод корня и проверки }
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию