СРОЧНО!!!20Б!!!решить уравнение паскаль методом деления отрезка пополам!!!...

0 голосов
36 просмотров

СРОЧНО!!!20Б!!!решить уравнение паскаль методом деления отрезка пополам!!!
6X^3+5X^2+4X+3=0
ПРОМЕЖУТОК -1;0
E=0.000001


Информатика (125 баллов) | 36 просмотров
0

И снова то же вранье про 20 баллов...

Дан 1 ответ
0 голосов
Правильный ответ

// PascalABC.NET 3.1, сборка 1214 от 09.04.2016
function f(x:real):=3+x*(4+x*(5+x*6));

begin
  var a:=-1.0;
  var b:=0.0;
  var eps:=1e-6;
  var fa:=f(a);
  var x,fx:real;
  if abs(fa)<=eps then Writeln('x=',a,',y=',fa)<br>  else begin
    var fb:=f(b);
    if abs(fb)<=eps then Writeln('x=',b,',y=',fb)<br>    else
      if fa*fb>0 then Writeln('На указанном интервале корней нет')
      else
        repeat
          x:=(a + b)/2;
          fx:=f(x);
          if abs(fx)<=eps then Writeln('x=', x, ', y=', fx)<br>          else
            if fa*fx>0 then a:=x else b:=x;
        until abs(fx)<=eps<br>  end
end.

Результат выполнения программы:
x=-0.790308952331543, y=-6.74849237825015E-07

(142k баллов)