Показать сообщение отдельно
  #7  
Старый 02.02.2012, 15:57
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Объяснения:
Код:
function root(f,a,b,eps): real;
var fa,fb,fc,c: real;
begin
  fa:=f(a);
  fb:=f(b);
  c:=a/2+b/2;   // это середина отрезка
  fc:=f(c);
  if abs(fc)<eps then root:=c else  // значение около 0, можно закончить
  if fa<fb     // если нет, то проверим на вдвое узком отрезке
    then
      if fc>0 then root:=root(f,a,c,eps) else root:=root(f,c,b,eps)
    else
      if fc>0 then root:=root(f,c,b,eps) else root:=root(f,a,c,eps)
Ответить с цитированием