![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 33
|
![]()
Дело вот в чем:
график функции выводит - с этим все нормально, но вот сама табуляция функции в таблицу не происходит из-за ошибки "invalid floating point operation" сама функция выглядит так: log abs((x^2-4)/(x^2-1)) вроде бы нигде деление на ноль не происходит, ибо в самой функции прописано что делить на ln(2) так почему же тогда выбивает эту ошибку может кто-то знает, прошу подсказки в решении этой проблемы часть кода, которые в архиве, именно здесь ошибка for i1:=1 to n1 do begin x1:=a+h*(i1+1); y1:=(Ln(abs(((x1*x1)-4)/((x1*x1)-1))))/(ln(2)); strngrd1.Cells[0,i1]:=FloatToStrF(x1,fffixed,6,3); strngrd1.Cells[1,i1]:=FloatToStrF(y1,fffixed,6,3); end; |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ln(0) не определён, может быть, у вас под логарифмом ноль вычисляется (например, при x1 =2 )?
ваш код не смотрел... |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 17.09.2010
Сообщений: 229
|
![]()
Используйте тэг CODE.
Почему в теме Паскаль то? а не в Delphi? По теме. С помощью трассировки посмотрите при каких значениях возникает ошибка.
Правильно заданный вопрос - половина ответа!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 31.01.2013
Сообщений: 12
|
![]()
У вас же x от -15 увеличивается, а в формуле присутствует деление, например вы делите на (x1*x1-1), что вполне может обратиться в ноль на определенном шаге
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 33
|
![]()
может, но при других значениях тоже самое
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну так добавьте обработку исключений и узнаете, при каком значении X1 выражение не может быть вычислено:
Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 33
|
![]()
дело в том, что я ставлю это условие, график функции рисуется, все нормально, но таблица не заполняется значениями и "# невозможно выполнить функцию" не выбивает, а ошибку выбивает все в той же строке
y1:=(Ln(abs(((x1*x1)-4)/((x1*x1)-1))))/(ln(2)); |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Табуляция функции на заданом интервале | lilywka | Помощь студентам | 1 | 29.03.2013 11:17 |
Программа Windows Form Табуляция функции | stas_kovel | Windows Forms | 2 | 06.11.2012 19:50 |
Программа Windows Form Табуляция функции | stas_kovel | Помощь студентам | 0 | 04.11.2012 15:05 |
Табуляция и графика. | Елена93 | Помощь студентам | 2 | 13.02.2012 10:19 |