Воскресенье, 19.05.2024, 03:28Приветствую Вас Гость | RSS
IT Solutions
Меню сайта
Наш опрос
Оцените мой сайт
Всего ответов: 407
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Блог


Главная » 2013 » Ноябрь » 19 » Класс обыкновенных дробей Fraction
10:56
Класс обыкновенных дробей Fraction

Часто студентам дают задание реализовать класс обыкновенных дробей Fraction на языке С++ с помощью ООП. 

 

Поэтому сегодня я покажу как должно выглядеть решение этой задачи.

 

Пример выполнения программы: 


Мой преподаватель не нашёл данных и операций, с которыми этот класс не работает, но небольшой сюрприз я решил вам оставить: 



В этой функции уже при x=24 у вас будет неправильный результат. Почему?

Потому что в результате переполнения вы получаете неправильные данные.

double_max = 9 223 372 036 854 775 807  
int_max = 2 147 483 647

Везде по разному, но различие в порядках значений очевидно.
Поэтому в строчке 29, если выражение (value_1 - value_2) не умещается в int, то получим переполнение -> неправильный числитель.

Наилучшим решением будет переписать алгоритм так, чтобы он, в зависимости от "x", умножал на 10 в нужной степени, а не с запасом, как здесь. 

Блок CONTROL_INPUT описан здесь.

Остальное всё просто, поэтому если возникнут вопросы - пишите их в комментарии.

Категория: С/C++ | Просмотров: 2485 | Добавил: B@R_LOG | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Полезное [0]
Windows [0]
С/C++ [6]
SEO [0]
WEB [0]
Поиск
Друзья сайта
  • МЫ в "ВКонтакте"
  • Архив записей
    Календарь
    «  Ноябрь 2013  »
    ПнВтСрЧтПтСбВс
        123
    45678910
    11121314151617
    18192021222324
    252627282930
    Система Orphus