0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
||||||
1 | ||||||
Дроби20.09.2011, 00:57. Показов 3745. Ответов 20
Метки нет (Все метки)
Вот простенькая прога, делаю лабу..
работает с двумя дробями у которых числитель и знаменатель в отдельных переменных.
0
|
20.09.2011, 00:57 | |
Ответы с готовыми решениями:
20
Для вычисления цепной дроби найти значение данной дроби при натуральном n Вычислить значение дроби (кажется дроби) Дроби Дроби |
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
20.09.2011, 01:46 [ТС] | 3 |
задание номер 28 на втором рисунке вначале указано таже что должна иметь прога. не уверен что less и great есть в с++)))
но equal видел где-то, но понять как им пользоватся не смог.
0
|
1 / 1 / 0
Регистрация: 04.08.2011
Сообщений: 52
|
|
20.09.2011, 01:55 | 4 |
Домашняя работа
0
|
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
|
|
20.09.2011, 02:39 | 5 |
тебе нужен класс, представляющий дробь. в private должны быть переменные под числитель и знаменатель. в public должны быть конструктор дроби, вывод дроби.
наиболее очевидным решением задачи является создание дружественных функций div, mul, equal и т.д. для этого реализуешь их (логично, что на вход будут поступать два указателя на дроби) вне класса, а в самом классе объявляешь эти ф-ции дружественными (friend), чтобы они имели доступ к секции private.
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
20.09.2011, 08:37 [ТС] | 6 |
мало что понял, спасибо)
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
20.09.2011, 12:28 | 7 |
0
|
20.09.2011, 13:07 | 8 | |||||
lavengerl, присоединяюсь к Nameless One.
Добавлено через 10 минут Да, и ещё там в задании говорится о функции сокращения, которая вызывается при всех арифметических операциях. Её не имеет смысла делать public.
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
20.09.2011, 21:16 [ТС] | 9 |
а имеет смысл ее делать приват?) я просто не шарю..
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
20.09.2011, 21:49 [ТС] | 11 |
talis, если вам не трудно, не могли бы вы написать коментарии возле каждой строчки, ато я так ничего почти не понимаю.. хотелось бы разобратся. Ато написано как то заумно очень, а я привык к стандартному нубскому написанию вроде того что я писал)
0
|
20.09.2011, 22:57 | 12 |
lavengerl, вы знаете, я затрудняюсь кратко и понятно описать этот код. Когда я пытаюсь его объяснить, на ум приходит либо аналогичный код на C++ (ибо лаконичнее это выразить сложно), либо проекты огромных статей. Давайте, лучше вы просто будете спрашивать, что не понятно, а я либо объясню кратко, где это возможно, либо отошлю к статьям, если объяснение будет слишком большим.
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|||||||||||||||||||||||||||||||||||||||||
21.09.2011, 15:20 [ТС] | 13 | ||||||||||||||||||||||||||||||||||||||||
окей. ну тогда начнем сначала)
зачем создаются эти переменные?
тут впринципе ясно но когда создавал экземпляр то обычно писал имя класса::омя обьекта, а тут имя неймспейса::и cout. не ясно.
0
|
21.09.2011, 16:13 | 14 | |||||||||||||||||||||||||
top - верхняя часть дроби, bottom - нижняя. Числитель и знаменатель это.
Rational( int _top = 1, int _bottom = 1 ) : top(_top), bottom(_bottom) { }; Параметры с присвоением - это параметры по-умолчанию. То есть, если вы не указали их при вызове функции (в данном случае - при создании объекта), используются указанные здесь значения. После двоеточия - вызов других конструкторов. То есть, переменная top инициализируется значением _top, переменная bottom - значением _bottom. Да, встроенные типы тоже можно инициализировать конструкторами. Rational( const Rational& r ) : top( r.top ), bottom( r.bottom ) { }; Конструктор копирования. В качестве аргумента передаётся ссылка на другой объект типа Rational. В части конструкторов видно, что вы копируем данные из этого переданного объекта в создаваемый. То есть можно:
friend говорит о том, что эта функция имеет доступ к закрытым частям класса. std::ostream - это объект ostream из пространства имён std. То есть мы возвращаем ссылку на объект типа std::ostream
Rationa::operator+= - это имя функции из класса Rational. ( const Rational &r ) - это параметр, который она принимает. Ссылка на объект типа Rational. r.bottom - это переменная bottom из объекта r (см. параметры функции) bottom - это переменная из текущего объекта return *this; - возвращается ссылка на себя.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
21.09.2011, 16:16 | 15 |
1
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
21.09.2011, 23:38 [ТС] | 16 |
помоему легче было бы написать using namespace std, или в этом всем есть какой-то смысл?
0
|
21.09.2011, 23:41 | 17 |
lavengerl, когда вы делаете класс, лучше в его описании использовать все идентификаторы пространств имён явно, потому что может так случиться, что в вашей библиотеке будут идентификаторы с теми же именами что и, скажем, в стандартной библиотеке. Будет конфликт. Скажем, у вас может быть ваш тип string или list, и в std тоже есть string и list. Чтобы избежать путаницы, стоит явно указать std::string и my_namespace::string. Пространства имён не просто так придумали.
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
|
22.09.2011, 00:04 [ТС] | 18 |
Понял) вроде вьежаю. Я буду еще тут спрашивать если будут проблемы. Спасибо за помощ
0
|
0 / 0 / 1
Регистрация: 18.09.2011
Сообщений: 77
|
||||||||||||||||
26.09.2011, 22:07 [ТС] | 19 | |||||||||||||||
все работает но кусок, который ищет найбольшее общее кратное, работает направильно, и из-за этого дроби неправильно сокращаются. Есть ли у кого идеи как сделать даную функцию?
Все общий делитель сделал, работает. осталось только 1: тут
0
|
Каратель
|
||||||
26.09.2011, 22:17 | 20 | |||||
пропиши в main
1
|
26.09.2011, 22:17 | |
26.09.2011, 22:17 | |
Помогаю со студенческими работами здесь
20
Дроби Дроби!классы Оператор For и дроби Сокращение дроби Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |