Предмет: Информатика,
автор: pavel214221
Нужно применить функцию, упростить код в Паскале
program p1;
var
a, b, c, eps: real;
fa, fc: real;
begin
a:=0.0; b:=10.0;
eps:=0.001;
c:=(a+b)/2.0;
fc:=c*c-4.0;
while (abs(fc)>eps) do
begin
fa:=a*a-4.0;
if ((fa>0.0) and (fc>0.0)) or ((fa<=0.0) and (fc<=p.
0.0)) then
a:=c
else
b:=c;
c:=(a+b)/2;
fc:=c*c-4.0;
end;
writeln(c);
end.
Ответы
Автор ответа:
1
function f(x: real): real;
begin
f := x * x - 4.0;
end;
var
a, b, c, eps: real;
begin
a := 0.0;
b := 10.0;
eps := 0.001;
repeat
c := (a + b) / 2.0;
if f(a) * f(c) >= 0 then a := c else b := c
until abs(f(c)) < eps;
writeln(c);
end.
Похожие вопросы
Предмет: Українська мова,
автор: fgertys
Предмет: Математика,
автор: emilana0810
Предмет: География,
автор: rtereshenko
Предмет: Алгебра,
автор: Аноним
Предмет: Математика,
автор: vmanukiana