Ничего не понимаю: вопрос по учебнику MQL4(цикл while).

 

Всем привет!

  В общем,  в учебнике рассматривается пример с программой fibonacсi.mq4. При выполнении программы выводится сообщение: "С=317811 Число Фибоначчи=1.618 i=25". 

 Я не понимаю почему С= 317811 и почему  i=25? Объясните.

  Насчет  i=25,  i не может равняться 25, т.к. при исполнении while всегда будет происходить итерция,                                                                                Delta в любом случае будет больше D, следовательно цикл while зациклится и никакого сообщения ни должно выводиться. В чем я ошибаюсь?                         

   Пробовал убрать MathAbs. В Результате: С=3, i=1, Число Фибоначчи=1.5. Про Фибоначчи тут все понятно функция MathAbs, а на счет C и i я хз. КАК ТАК-то! Здесь тоже объясните.                  

Заранее спасибо!    





 

317811 это 28-е число Фибоначчи найденное на 25-ой итерации. Может i равняться 25, потому-что while начинается с i=0, а i увеличивается на каждой итерации на 1.

Число 1,618 это число золотого сечения, оно равно отношению двух соседних чисел Фибоначчи (для числя стремящегося к бесконечности). Чем больше число Фибоначчи, чем точнее вычисляется fi. На каждой итерации вычисляется число fi и сравнивается с предыдущим значением fi, если разница небольшая - 0.0000000001, значит хватит вычислять новые числа Фибоначчи, считается что число fi найдено с достаточной точностью. Дальше компьютер не сможет обеспечить большей точности, потому-что 0.0000000001 это минимально возможное изменение значения переменной типа double.