Условие задачи
Создание модулей. Процедурный тип параметров.
Разработать модуль, содержащий указанную процедуру. Написать тестирующую программу.
Составить подпрограмму-процедуру ROOT отыскания минимального положительного корня уравнения f(x)=0 c точностью методом деления пополам отрезка, содержащего корень.
В основной программе использовать процедуру для решения уравнений x2+sin(x/2)=0 и arctg(x)+x=1. Точность вычисления вводить с клавиатуры.
Ответ
unit Unit1;
interface
Type
Func1=Function(x:extended):extended;
Procedure Root(f:func1; xn,xk,e:real; var x:extended);
implementation
Procedure root(f:func1; xn,xk,e:real; var x:extended);
Var
a,b,c:real;
Begin
a:=xn;
b:=xk;
Repeat
c:=(a+b)/2; //разбиваем отрезок пополам
If F(a)*F(c)=0 Then b:=c //если в начале и середине знаки функции разные,
//то конец отрезка перемещаем в середину
Else a:=c; //если в середине и в конце знаки функции разные,
//то начало отрезка перемещаем...