|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - Паскаль и NaN |
|
Теория - Паскаль и NaN
|
Старожил Сообщения: 361 |
Профиль | Отправить PM | Цитировать Здравствуйте!
Вобщем, нужно решить следующую задачу на Turbo Pascal'e v7.0: Дано: переменная x типа single (var x: single;) Что требуется: произвести некоторые действия в программе так, чтобы в конце своей работы она по команде writeln (x) выводила на экран именно надпись NaN (Not-a-Number). Что нужно сделать с переменной X чтобы получить такой результат. Делить на ноль естественно нельзя из-за ошибки Division by Zero. Пробовал привести число к порядку 10^255 при неравной нулю мантисе числа - не получилось (все попытки приведения к порядку выше 10^30 заканчивались ошибкой). |
|
Отправлено: 21:57, 16-01-2009 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать |
Отправлено: 01:18, 17-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Вредитель Сообщения: 460
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 10:15, 17-01-2009 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать А если самостоятельно сконструировать в памяти необходимое значение переменной?
Если верить переводу официального руководства: 4-х байтовый (32-х битный) тип Single делится на три поля: 1 8 23 s e f msb lsb msb lsb Значение числа v определяется как, если 0 < e < 255, то v = (-1)**s x 2**(e-127) x (1.f). если e = 0 и f <> 0, то v = (-1)**s x 2**(-126) x (0.f). если e = 0 и f = 0, то v = (-1)**s x 0 если e = 255 и f = 0, то v = (-1)**s x Inf. если e = 255 и f <> 0, то v = NaN. |
Отправлено: 12:21, 17-01-2009 | #4 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Вообще - добыть несколько нормальных справочников в электронном и поискать в них строку NaN. Она всплывёт в описаниях функций, будет указано в каких случаях получается такая ситуация. Преобразование строки в число по идее должно давать NaN. Извлечение корня из отрицательного числа.
|
|
Отправлено: 12:36, 17-01-2009 | #5 |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:43, 17-01-2009 | #6 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать |
Отправлено: 23:01, 17-01-2009 | #7 |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Заранее известно, что задача выполнимая. На Паскале v7.0.
Неужели всё настолько сложно? |
Отправлено: 19:54, 19-01-2009 | #8 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать ManHack, раз вам дают такие задачи, значит это разбиралось на лекциях или практиках - меньше надо было прогуливать.
Надеюсь, мы потом увидим правильное решение? |
Отправлено: 13:40, 20-01-2009 | #9 |
Старожил Сообщения: 361
|
Профиль | Отправить PM | Цитировать Эту задачу дали "кому мозг охота сломать". Я не прогуливал. Честно-честно
|
Отправлено: 15:57, 20-01-2009 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Паскаль, точнее его Turbo-версия | ManHack | Программирование и базы данных | 5 | 09-12-2008 19:05 | |
Разное - Бинарный поиск. (Паскаль) | S1stem | Программирование и базы данных | 4 | 29-05-2008 21:52 | |
И опять он, Паскаль!!!! | Doktor | Программирование и базы данных | 2 | 23-06-2005 09:59 | |
NaN via C++ | pva | Программирование и базы данных | 6 | 19-07-2004 12:40 | |
С++ и Паскаль | Casper | Программирование и базы данных | 5 | 18-04-2003 19:35 |
|