function f(x: real): real;
begin
f := 3 * sin(sqrt(x)) + 0.35 * x - 3.8
end;
var
n: integer;
a, b, c, fc, eps: real;
writeln('Введите границы интервала (a,b) и точность решения: ');
readln(a, b, eps);
n := 0;
repeat
c := (a + b) / 2;
fc := f(c);
if sign(fc) = sign(f(b)) then b := c
else a := c;
n := n + 1;
until abs(a - b) <= eps;
writeln('Найден корень уравнения х=', c, ' за ', n, ' итераций')
end.
Объяснение:
function f(x: real): real;
begin
f := 3 * sin(sqrt(x)) + 0.35 * x - 3.8
end;
var
n: integer;
a, b, c, fc, eps: real;
begin
writeln('Введите границы интервала (a,b) и точность решения: ');
readln(a, b, eps);
n := 0;
repeat
c := (a + b) / 2;
fc := f(c);
if sign(fc) = sign(f(b)) then b := c
else a := c;
n := n + 1;
until abs(a - b) <= eps;
writeln('Найден корень уравнения х=', c, ' за ', n, ' итераций')
end.
Объяснение: