Паскаль и NaN
Здравствуйте!
Вобщем, нужно решить следующую задачу на Turbo Pascal'e v7.0: Дано: переменная x типа single (var x: single;) Что требуется: произвести некоторые действия в программе так, чтобы в конце своей работы она по команде writeln (x) выводила на экран именно надпись NaN (Not-a-Number). Что нужно сделать с переменной X чтобы получить такой результат. Делить на ноль естественно нельзя из-за ошибки Division by Zero. Пробовал привести число к порядку 10^255 при неравной нулю мантисе числа - не получилось (все попытки приведения к порядку выше 10^30 заканчивались ошибкой). |
а так если:
Код:
var x: single; |
ManHack, в Delphi, NaN можно получить вот так
Код:
(1.0/0.0)/(1.0/0.0) |
А если самостоятельно сконструировать в памяти необходимое значение переменной?
Если верить переводу официального руководства: Код:
4-х байтовый (32-х битный) тип Single делится на три поля: |
Вообще - добыть несколько нормальных справочников в электронном и поискать в них строку NaN. Она всплывёт в описаниях функций, будет указано в каких случаях получается такая ситуация. Преобразование строки в число по идее должно давать NaN. Извлечение корня из отрицательного числа.
|
Цитата:
Код:
(1.0/0.0)/(1.0/0.0) Код:
var x: single; :( |
ManHack, ну примерно вот так:
Код:
var 207: Invalid floating point operation |
Заранее известно, что задача выполнимая. На Паскале v7.0.
Неужели всё настолько сложно? :( |
ManHack, раз вам дают такие задачи, значит это разбиралось на лекциях или практиках - меньше надо было прогуливать.
Надеюсь, мы потом увидим правильное решение? ;) |
Эту задачу дали "кому мозг охота сломать". Я не прогуливал. Честно-честно :)
|
Время: 05:49. |
Время: 05:49.
© OSzone.net 2001-