|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.01.2012, 17:21 | #1 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
Invalid floating point operation
Доброго времени суток.
Вычисляю нелинейное уравнение, пытаюсь строить график В ходе вычислений ловлю Invalid floating point operation Это собственно вычисление функции на текущем значении икса, arg - это аргумент. Код:
Я понимаю, что здесь куча мест, где можно словить 0. Как быть в такой ситуации? Гуру, помогите |
31.01.2012, 18:58 | #2 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
Попробуйте упростить математически эту формулу.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
31.01.2012, 20:02 | #3 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
Упростил бы, да не силен в тригонометрии, и смутно знаю что такое логарфим.
Если бы вы помогли, был бы Вам крайне признателен. |
31.01.2012, 21:25 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Разбейте на отдельные команды, чтобы проследить в отладчике где ругаться будет. А то впихнули все в одно выражение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.01.2012, 21:33 | #5 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
Уважаемый Аватар, я прослеживал. Почти везде. Наверное буду рисовать график с прерываниями просто, как маткад.
|
31.01.2012, 22:29 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А на область определения функций нельзя посмотреть? Корень квадратный от минуса не берется, а вашей формуле запросто может минус быть, потому что в аргументе SIN. Логарифм от минуса тоже ошибка, а у вас может быть, поскольку берется от арктангенса. Используйте TRY ... EXCEPT и вперед
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
31.01.2012, 22:52 | #7 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
благодарю, уже обернул в try except.
а что касается ошибок, так о них написал еще в первом посте. просто думал, что есть какой-то способ упрощения функции, кроме обхода ошибок. в общем спасибо всем, тему можно считать закрытой. |
31.01.2012, 23:04 | #8 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
_SatanA_, есть и очень много.
Разбейте функцию на компоненты и вычисляйте отдельно, там вам будет проще контролировать математику. |
01.02.2012, 09:04 | #9 |
Пользователь
Регистрация: 17.10.2009
Сообщений: 13
|
Уважаемый Человек_Борща, я не совсем понял Ваш совет.
Если просто считать по частям, деление на ноль в некоторых местах в зависимости от значения икса и аргумента никуда не денется. |
01.02.2012, 09:09 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а вы аргумент на ноль то проверяете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Invalid floating point operation на паскале | maziLa | Помощь студентам | 3 | 26.05.2010 19:37 |
invalid floating point operation | Mikhail91 | Общие вопросы C/C++ | 5 | 24.03.2010 00:05 |
Ошибка: invalid floating point operation | Willow | Помощь студентам | 3 | 24.01.2010 18:42 |
invalid floating point operation | mosq | Общие вопросы Delphi | 7 | 01.11.2009 13:28 |
Invalid floating point operation | Skytis | Помощь студентам | 3 | 07.05.2008 12:16 |