![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
Здраствуйте
Вот такое вот задание: Создать класс Frac(дробные числа) с перегруженными операциями + - * / , а также с возможностью приведения типа Frac->double. Должны быть реализованы также ToString(), Equals(), ==, !=. Помогите пожалуйста ![]() |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Отличное задание! Правда "дробные числа Frac" принято называть рациональными (rational) числами, или дробями, но это мелочь.
Задание несложное, минут на 15. Ну, на пару часов не слишком опытному. Самому слабо? Хотя бы с нашей помощью. Добавлено через 1 минуту и 9 секунд Есть предложение, подкупающее новизной: переместиться в раздел "для новичков" и там совместными усилиями разработать. Хоть польза будет |
|||
|
||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
Если честно я только за,просто я C++ только начал изучать и в нём я ещё просто ничего почти не умею |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Ну вот и будет повод потренироваться. Это ведь не последнее задание? Зачем тогда вообще в универ ходить...
![]() колкость про Frac снимаю))) |
|||
|
||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
мне щас надо типо поросить модеров что б они переместили тему? или эту закрыть ,а там заново написать? |
|||
|
||||
baldina |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
можно и тут продолжить. надо будет, перенесут.
а можно подождать пока кто-нить придет и денег попросит. или бесплатно кинет код (которого кстати в интернете навалом) Добавлено @ 17:31 предлагаю для начала условия задачи записать на языке программирования, а дальше - уточнять и реализовывать. класс в C++ в общем виде выглядит так:
то, что в секции public, является публичным, общедоступным интерфейсом. здесь будут функции и операции, которые по условию должен иметь класс. по условию нам нужно написать класс Frac
в котором должны быть перегруженные арифметические операции. В классах обычно перегружают операции +=, -=, *= и т.п., а операции +, -, * реализуют через них
Так же нам понадобятся функции приведения типа и преобразования в строку
продолжайте. когда напишем интерфейс, займемся реализацией Добавлено через 13 минут и 30 секунд != можно (и правильно) реализовать через ==
Добавлено через 14 минут и 56 секунд впрочем я тороплюсь с реализацией. сначала опишите весь интерфейс класса, т.е. все нужные методы (функции-члены) класса Это сообщение отредактировал(а) baldina - 27.11.2013, 17:34 |
||||||||||
|
|||||||||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
Так правильно? |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 5 Всего: 133 |
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
DarkinRal, суперически. половину сделали.
можно заняться реализацией. для этого нужно определить, какие данные будут в классе. думаю, это несложно: чем определяется рациональное число (дробь)? эти данные будут приватными (вне секции public) членами класса (переменными). их мы будем использовать при реализации функций. Добавлено через 5 минут и 3 секунды функции будем реализовывать по обычным правилам арифметики дробей. преобразование в double - тоже несложно, нужно выполнить нецелочисленное деление и вернуть результат. чуть сложнее будет с преобразованием в строку, плюс понадобится специальная функция - конструктор для инициализации экземпляров нашего класса. конец уже виден)) Добавлено через 14 минут и 51 секунду в качестве бонуса приведу код функции нахождения наибольшего общего делителя (алгоритм Евклида) - она понадобится для нормализации числа:
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
DarkinRal, в интерфейсе класса не хватает метода для ==
кстати, при наличии == что должна делать функция Equals() ? еще, думаю, будет правильным ввести в интерфейс оператор < для сравнения чисел |
|||
|
||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
Вот,получил дополнение к заданию.
Вычислить значение полинома в точке. Все коэффициенты и x должны иметь тип Frac. Это сообщение отредактировал(а) DarkinRal - 28.11.2013, 11:39 |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Как класс закончим, и дополнение сделаем. Было б корыто)))
Как насчет моего вопроса
и дополнений в интерфейсе? Добавлено @ 11:53 Насчет полиномов - можете на досуге подумать, как лучше вычислить значение. Алгоритм вычисления не зависит от типа а и х. Вам о схеме Горнера говорили? Добавлено через 2 минуты и 5 секунд и еще был вопрос Это сообщение отредактировал(а) baldina - 28.11.2013, 11:53 |
|||
|
||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
||||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
уточняйте.
и показывайте поправленный класс и ваши соображения. Добавлено @ 12:18 А пока - на секунду отвлечемся от класса. Подумаем, как он будет использоваться (собственно, с этого обычно начинают - для разработки интерфейса, но интерфейс нам был и так дан в составе задания). Сейчас есть повод - дополнение к заданию. Допустим, что нам дан полином с коэф. типа Frac, и надо вычислить его значение в точке x. Как задан полином? Очевидно, своими коэффициентами. Их удобно хранить в массиве: индекс элемента массива - номер коэффициента. Для вычисления значения в точке понадобится функция, принимающая адрес массива, его размер и значение x:
её будем использовать, например, так:
Это сообщение отредактировал(а) baldina - 28.11.2013, 12:33 |
||||
|
|||||
DarkinRal |
|
|||
![]() This_IS_300 Профиль Группа: Участник Сообщений: 14 Регистрация: 27.11.2013 Где: Ukraine/Kremenchu k Репутация: нет Всего: нет |
Вот по поводу Equals
Это значит что наш клас должен реализовать интерфейс IEquatable И пере определить метод equals, который будет основан на == Этот метод должен принимать как наш тип для сравнения так и object http://msdn.microsoft.com/ru-ru/library/ms...#code-snippet-1 http://msdn.microsoft.com/en-us/library/vs...(v=vs.100).aspx |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |