|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.10.2020, 13:27 | #1 |
Пользователь
Регистрация: 15.04.2020
Сообщений: 59
|
C++. Проверка знаменателя
Вопрос. Как сделать так, чтобы знаменатель корректно проверялся на 0. Здесь код, где я проверяю его через if. Еще была попытка через try. Суть в том, что это работает, но программа все равно вычисляет дробь. А надо, чтобы (в случае знаменателя = 0) выводил mistake. Как можно решить этот вопрос?
Rational.cpp Код:
Код:
Последний раз редактировалось BDA; 03.10.2020 в 14:39. |
04.10.2020, 18:36 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Нужно кидать исключение, а не сразу печатать сообщение. Возможно стоит "не давать" создавать дроби с нулевым знаменателем (кидать исключение в конструкторе). Потом уже ловить исключение и печатать сообщение. Операторы сравнения на больше и меньше сейчас неверно работают. Во-первых, там получается целочисленное деление. Во-вторых, сравнивать стоит, наверное, a.GetNumerator() * b.GetDenominator() и a.GetDenominator() * b.GetNumerator(), чтобы не использовать вещественные числа.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
04.10.2020, 20:02 | #3 |
Пользователь
Регистрация: 15.04.2020
Сообщений: 59
|
BDA, Спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка БД | anatoliy1992 | Помощь студентам | 1 | 10.08.2015 10:20 |
excel.Проверка VBA и проверка функции | Будда | Помощь студентам | 0 | 14.04.2011 21:10 |
проверка на IE | TDrive | JavaScript, Ajax | 2 | 05.03.2010 13:41 |
Проверка FTP | }{oт@бь)ч | Работа с сетью в Delphi | 5 | 05.02.2009 04:44 |