IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Вычисление с ограниченной разрядностью.
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Составить программу на алгоритмическом языке, моделирующую вычисления на ЭВМ с ограниченной разрядностью m. Используя эту программу найти значения машинного нуля, машинной бесконечности, машинного эпсилон . Составить график зависимости относительной погрешности от количества разрядов m= 4,5,…8.
Я собираюсь сделать эту зачаду на С++,но возникли проблемы на этапе разработки,а именно,у меня не совсем получается представить структуру.На сколько я понимаю,любое число в памяти представляется как 1 бит на знак +-,m разрядов идет мантиса,потом еще 1 бит на знак степени двойки,затем n-ое число разрядов,в которых храниться степерь двойки(p),а само число представляется в виде x=m*2p.
Насколько я понимаю погрешность будет появляться после того как число из нормального вида будет переводиться в вид,в котором оно храниться в памяти,а потом востанавливаться и сравниваться с исходным,так будет определяться погрешность.Проблемы возникли в том,как преобразовывать число в обе стороны,у меня даже дельных идей нету,так что буду рад хоть какой то идее,с более менее простой реализацией.

P.S. Забыл сказать,на входе может быть любое вещественное число.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


> а изучение(сбор данных) того,как влияет на относительную погрешность количество разрядов мантисы,причем четких предписаний о том,как это делать нету.

Я правильно понимаю, что тебе достаточно разобрать 3 случая - 4, 8 и 10-байтовые числа?
Для того, чтобы сравнить результат вычислений с разной погрешностью, изначально всегда храни числа в long long float, а перед вычислением просто устанавливай 8087CW на нужный режим.

> 1. Что такое "нормальный вид"? Целочисленный? Вещественный с фиксированной запятой? Вещественый десятичный с плавающей запятой?
> На пункт 1 вы сами ответили.

Нормальный - это вещественный с плавающей запятой? Так он так и хранится в памяти, то есть при переводе никакой погрешности проявиться не может.


А для вычисления машинного нуля и машинного епсилон и этого не надо.


float (или long float, или long long float) a = 1.0;
while (float или другой вещ. тип)1.0 + a != (float или другой вещ. тип)1.0 {
a *= 0.5;
};


Правда, всё равно перед этим надо переключить сопроцессор на максимальную точность.

Сообщение отредактировано: TarasBer -


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(TarasBer @ 17.03.2011 13:24) *
Я правильно понимаю, что тебе достаточно разобрать 3 случая - 4, 8 и 10-байтовые числа?

Мне кажется, не совсем..
Автор темы говорил:
Цитата
Составить график зависимости относительной погрешности от количества разрядов m= 4,5,…8.
Разрядов (я полагаю, двоичных), а не байт.
И при чем тут тогда "4, 8 и 10-байтовые числа"? blink.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Krjuger   Вычисление с ограниченной разрядностью.   16.03.2011 21:41
TarasBer   > любое число Только вещественное с плавающей …   16.03.2011 22:48
Krjuger   Спасибо за ваш коментарий.Из всего, что вы написал…   17.03.2011 1:37
Lapp   для меня несколько важнее другой вопрос....а именн…   17.03.2011 2:17
Krjuger   Давайте я тогда уточню что в задании является глав…   17.03.2011 4:50
Lapp   Давайте я тогда уточню что в задании является глав…   17.03.2011 9:40
andriano   Если я правильно понял,вы имеете ввиду то,что у н…   19.03.2011 3:52
TarasBer   > а изучение(сбор данных) того,как влияет на от…   17.03.2011 17:24
Lapp   Я правильно понимаю, что тебе достаточно разобрать…   17.03.2011 18:38
TarasBer   Ну тогда пусть вычисления ведёт для long long floa…   17.03.2011 18:58
Krjuger   Если чесно, сам предмет связан с программирование…   18.03.2011 0:25
TarasBer   А, это long double называется, короче 80-разрядный…   18.03.2011 1:51
Гость   > Но воспользовавшись кодом TarasBer я получил …   19.03.2011 15:16


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.06.2024 4:14
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name