Программа
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.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию