Программа


program Chord;
{ Поиск корня уравнения
  методом хорд }
Uses Crt;
Const dBegin=0.5;dEnd=1.5;  { Начальное и конечное значения параметра }
      dStep=0.1;  { Шаг параметра }
      a0=0.1;b0=1.3; { Локализация корня }
Var Res,d:real;  { Корень и параметр }
    i:integer; { Счетчик }
Function F(x:real):real; { Вычисление функции }
  Begin
    F:=Ln(x)-d/(2*x+6)
  End;
Function Result(a0,b0:real):real; { Нахождение корня }
  const Eps=0; { Точность вычислений }
  var a,b:real;{ Текущие границы интервала }
      c:real;  { Точка пересечения хорды с осью X }
  Begin
    a:=a0; { Начальное определение интервала }
    b:=b0;
    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;
    Result:=c { Определение значения функции }
  End;
BEGIN
  ClrScr; { Очистка экрана }
  for i:=0 to Trunc((dEnd-dBegin)/dStep) do
  { Работа по счетчику смаштабированному под параметр d }
    Begin
      d:=dBegin+i*dStep; { Определение параметра d }
      Res:=Result(a0,b0); { Вычисление корня }
      writeln('d=',d:3:1,'  x=',Res,'  F(x)=',F(Res))
      { Вывод текущего параметра, корня и проверки }
    End
END.


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