Показать сообщение отдельно
  #8  
Старый 04.05.2008, 06:26
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Беда в этом же выражении.
"n" всегда равен 10, реальных значений в массиве XPol тоже 10.
Поэтому значение XPol[n+1] равно 0 (n+1 выходит за диапазон реальных значений). Отсюда выражение (Xpol[n+1] - Xpol[n-(J-1)]) на первой итерации принимает значение -40 и опять же отрицательное значение аргумента Ln(-40 / 4) дает ошибку.

Научился бы смотреть значения выражений в отладке. Мне не трудно для тебя ошибки отыскивать, но это не самый эффективный путь, а время то идет - успеешь ли?.
Это не трудно. Устанавливаешь точку прерывания на строке, где происходит ошибка (ctrl+F8).
После остановки на этой точке подводишь мышиный курсор к закрывающей скобке справа, допустим, XPol[n+1], подсказка покаызвает текущее значение. Если надо посмотреть часть выражения, то выделяешь его из всего выражения, например, (Xpol[n+1] - Xpol[n-(J-1)]) и наводишь курсор на выделенный кусок. Опять же подсказка показывает значение выделенной части выражения. Если увидишь в результате слово "NAN" (при захвате в выделенное и функции Ln или Exp), то у функции в этот момент не корректное значение аргумента.
Ответить с цитированием