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