![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() |
TarasBer |
![]()
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Создаю тут, потому что мне кажется, что это относится к асму.
{$APPTYPE CONSOLE}
var
a: extended;
begin
a := sqrt(-1);
writeln(a);
readln;
end.
Я хочу, чтобы это программа вывела на экран NAN. Меня вполне устраивает значение "не число". Неопределённый результат - тоже результат, что такого-то. Но программа вылетает. Причём вылет происходит не в момент вычисления корня, а при выгрузке результата в память. Что надо сделать, чтобы программа не вылетала? (Вариант writeln('NAN') - не предлагать). -------------------- |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Не имеет это никакого отношения к ассемблеру. И Дельфи и FPC прекрасно сами способны обработать подобную ситуацию:
{$APPTYPE CONSOLE}
uses SysUtils, Math;
var
a: extended;
begin
try
a := sqrt(-1);
except
on E: EInvalidOp do // модуль SysUtils
begin
a := NaN; // модуль Math
end;
end;
writeln(a); // Вот тут и напечатается "nan"
readln;
end.
|
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 18:40 |