реклама на сайте
подробности

 
 
> С++, Домашка из универа
Злодей
сообщение Mar 18 2010, 09:30
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142



Цитата
Написать класс MyReal, внутри класса хранить в интах целую и дробную часть числа, определить операторы + - * / ,...

И продолжение
Цитата
Написать наследника класса MyReal, с предотвращением переполнения числа


1. Как представить число в виде дробной и целой части интами, да чтоб с ними можно было работать?
2. Как работать с числом если оно есть два инта? Как, например, сложить два числа, составленных из целой/дробной части?
3. Пускай наследник MyReal, следящий за переполнением называется MyRealOF. Должен ли я буду перегружать каждый оператор, переписывать с почти с нуля, или можно слежение за переполнением добавить красиво и всего в единственном месте?
4. Как написать ассемблерную вставку чтения OverflowFlag? (Ничего больше не придумал)

bb-offtopic.gif
Может правильнее забить на изобретение нового формата числа, и учить ООП на животных?

Сообщение отредактировал Злодей - Mar 18 2010, 09:42
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jorikdima
сообщение Mar 18 2010, 10:02
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



1. Ну целая часть это инт сам по себе. А дробная. Тут надо понимать, что дробную часть вы представите с точностью не лучше 2^-32 если инт это 32 бита (знак тут не нужен, поэтому уинт).Ну вот и понимайте как 0,5 это 0,5*2^32 = 2^31 То есть если в вашей дробной части, которая представлена интом хранится число 2^32, например, это значит, что там на самом деле 0,5.
2. Как бы вы в уме сложили 2,7 и 3,6? Складываются дробные части, если они переполняют единицу, то к сумме целых прибавляется 1.
3. Ну это уж как сделаете. Перепичывать с нуля при номальном дизайне не придется, просто вызвать родителя + добавить функционал обработки переполнения.
4. Не знаю.
Причина редактирования: Бездумное цитироване
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016