1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
| TarasBer |
18.06.2010 10:20
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Создаю тут, потому что мне кажется, что это относится к асму.
Я хочу, чтобы это программа вывела на экран NAN. Меня вполне устраивает значение "не число". Неопределённый результат - тоже результат, что такого-то. Но программа вылетает. Причём вылет происходит не в момент вычисления корня, а при выгрузке результата в память. Что надо сделать, чтобы программа не вылетала? (Вариант writeln('NAN') - не предлагать). -------------------- |
![]() ![]() |
| TarasBer |
18.06.2010 11:58
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Дело в том, что я хочу вывести график некой функции (допустим, введённой пользователем). В некоторых точках функция может оказаться не определена.
Чтобы программа это дело обработала, можно ввести проверки (if(abs(a)<1E+1000) and (abs(b)<1E+1000) then c := a*b), но хотелось бы, чтобы программа вычисляла всё, что можно вычислить. Поэтому я таки ввёл исключения, и с ними и жил. Но меня не покидало ощущение, что я делаю что-то не то. Особенно, если надо вычислить значение во многих точках, что требует времени. Кстати, как выкручивались в ТурбоПасе, в котором try except не было? Добавлено через 4 мин. > Костыль будет, если отключить обработку исключения. То есть просто записать NAN в память - это костыль, а перейти в блок обработки исключения, там сделать ещё кучу действий по определению типа исключения и потом всё равно записать в память этот NAN - это не костыль? Мне вот с чисто эстетической точки зрения это дико не нравится. > В твоей программе тебе нужно определенное поведение - значит, лови исключение в своей программе, а не заставляй все остальные программы играть по твоим правилам. То есть даже если я запомню состояние FPU и потом при выходе его восстановлю, то параллельно работающим программам это сильно не понравится? Кстати, Delphi же вызовы некоторых системных функций оборачивает с переводом FPU в режим повышенной точности. И ничего. -------------------- |
TarasBer Исключения FPU 18.06.2010 10:20
volvo Не имеет это никакого отношения к ассемблеру. И Де... 18.06.2010 11:26
TarasBer Я в курсе про обработку исключений. Но в данном сл... 18.06.2010 11:49
volvo Костыль будет, если отключить обработку исключения... 18.06.2010 11:55
volvo То, что не было зарезервированных слов try/except ... 18.06.2010 12:03
TarasBer Кстати, а вот почему делить на ноль можно (и безо ... 18.06.2010 12:18
volvo Правда что-ли? А мужики-то не знают:
var
a, b: e... 18.06.2010 12:39
TarasBer И вправду вылетает.
Да, мне теперь самому интересн... 18.06.2010 12:53
volvo Упоминание о подобной проблеме присутствует на фор... 18.06.2010 17:53
TarasBer uses OpenGL; 19.06.2010 13:07
volvo Что Uses OpenGL?
Не делай Uses OpenGL... Смысла ... 20.06.2010 13:53
volvo Ах, ты о том, что при использовании модуля OpenGL
... 20.06.2010 14:24
TarasBer > Так, это само собой: в секции инициализации м... 20.06.2010 16:23![]() ![]() |
|
Текстовая версия | 8.12.2025 20:58 |