![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Создаю тут, потому что мне кажется, что это относится к асму.
Я хочу, чтобы это программа вывела на экран NAN. Меня вполне устраивает значение "не число". Неопределённый результат - тоже результат, что такого-то. Но программа вылетает. Причём вылет происходит не в момент вычисления корня, а при выгрузке результата в память. Что надо сделать, чтобы программа не вылетала? (Вариант writeln('NAN') - не предлагать). -------------------- |
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дело в том, что я хочу вывести график некой функции (допустим, введённой пользователем). В некоторых точках функция может оказаться не определена.
Чтобы программа это дело обработала, можно ввести проверки (if(abs(a)<1E+1000) and (abs(b)<1E+1000) then c := a*b), но хотелось бы, чтобы программа вычисляла всё, что можно вычислить. Поэтому я таки ввёл исключения, и с ними и жил. Но меня не покидало ощущение, что я делаю что-то не то. Особенно, если надо вычислить значение во многих точках, что требует времени. Кстати, как выкручивались в ТурбоПасе, в котором try except не было? Добавлено через 4 мин. > Костыль будет, если отключить обработку исключения. То есть просто записать NAN в память - это костыль, а перейти в блок обработки исключения, там сделать ещё кучу действий по определению типа исключения и потом всё равно записать в память этот NAN - это не костыль? Мне вот с чисто эстетической точки зрения это дико не нравится. > В твоей программе тебе нужно определенное поведение - значит, лови исключение в своей программе, а не заставляй все остальные программы играть по твоим правилам. То есть даже если я запомню состояние FPU и потом при выходе его восстановлю, то параллельно работающим программам это сильно не понравится? Кстати, Delphi же вызовы некоторых системных функций оборачивает с переводом FPU в режим повышенной точности. И ничего. -------------------- |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 11:53 |