![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
Krjuger |
![]()
Сообщение
#1
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Составить программу на алгоритмическом языке, моделирующую вычисления на ЭВМ с ограниченной разрядностью m. Используя эту программу найти значения машинного нуля, машинной бесконечности, машинного эпсилон . Составить график зависимости относительной погрешности от количества разрядов m= 4,5,…8.
Я собираюсь сделать эту зачаду на С++,но возникли проблемы на этапе разработки,а именно,у меня не совсем получается представить структуру.На сколько я понимаю,любое число в памяти представляется как 1 бит на знак +-,m разрядов идет мантиса,потом еще 1 бит на знак степени двойки,затем n-ое число разрядов,в которых храниться степерь двойки(p),а само число представляется в виде x=m*2p. Насколько я понимаю погрешность будет появляться после того как число из нормального вида будет переводиться в вид,в котором оно храниться в памяти,а потом востанавливаться и сравниваться с исходным,так будет определяться погрешность.Проблемы возникли в том,как преобразовывать число в обе стороны,у меня даже дельных идей нету,так что буду рад хоть какой то идее,с более менее простой реализацией. P.S. Забыл сказать,на входе может быть любое вещественное число. |
![]() ![]() |
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Цитата Если честно, мне не совсем понятно, что тут изучать. В смысле, что изучать на компьютере. На мой взгляд, тут все прекрасно можно сказать и без него. Но, раз такое задание - значит, такое задание, и перечить я не собираюсь. Если чесно, сам предмет связан с программированием весьма посредственно.Численные методы называется) TarasBer,Вы наверно не совсем меня понимаете. Реч не о 4,8,10 байтовых числах. А именно,как сказал Lapp, о разрядности мантисы. Цитата Для того, чтобы сравнить результат вычислений с разной погрешностью, изначально всегда храни числа в long long float, а перед вычислением просто устанавливай 8087CW на нужный режим. Если чесно после long long float я не понял ничего)))Если можно ,привидите хоть какой то простенький пример. Кстати у меня лично после того как я написал long long float выдало следующую ошибку. Цитата Error 1 error C2632: '__int64' followed by 'float' is illegal а long float работает нормально. Но воспользовавшись кодом TarasBer я получил весьма интересные результаты. /> Цитата Правда, всё равно перед этим надо переключить сопроцессор на максимальную точность Возможно это именно из-за этого,но я чесно не знаю как это сделать. Сообщение отредактировано: Krjuger - 17.03.2011 22:18 |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 20:30 |