• Предмет: Информатика
  • Автор: pavel214221
  • Вопрос задан 3 месяца назад

Нужно применить функцию, упростить код в Паскале
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.​

Ответы

Ответ дал: archery
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.

Вас заинтересует