|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.02.2013, 23:47 | #1 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 33
|
Вывод графика функции на форму и её табуляция в stringgrid
Дело вот в чем:
график функции выводит - с этим все нормально, но вот сама табуляция функции в таблицу не происходит из-за ошибки "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; |
01.02.2013, 23:57 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ln(0) не определён, может быть, у вас под логарифмом ноль вычисляется (например, при x1 =2 )?
ваш код не смотрел... |
02.02.2013, 00:09 | #3 |
Форумчанин
Регистрация: 17.09.2010
Сообщений: 229
|
Используйте тэг CODE.
Почему в теме Паскаль то? а не в Delphi? По теме. С помощью трассировки посмотрите при каких значениях возникает ошибка.
Правильно заданный вопрос - половина ответа!
|
02.02.2013, 01:19 | #4 |
Пользователь
Регистрация: 31.01.2013
Сообщений: 12
|
У вас же x от -15 увеличивается, а в формуле присутствует деление, например вы делите на (x1*x1-1), что вполне может обратиться в ноль на определенном шаге
|
03.02.2013, 00:29 | #5 |
Пользователь
Регистрация: 15.10.2012
Сообщений: 33
|
может, но при других значениях тоже самое
|
03.02.2013, 10:42 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну так добавьте обработку исключений и узнаете, при каком значении X1 выражение не может быть вычислено:
Код:
|
03.02.2013, 12:26 | #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 |