Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
berkana
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 1
#1

Класс Rational, определить стандарт. конструктор, с параметрами, опер. вычитания

28.12.2016, 06:30. Просмотров 835. Ответов 1
Метки нет (Все метки)

Разработайте и протестируйте класс Rational, представляющий рациональное число (простую дробь) в виде пары целых чисел: числитель и знаменатель. Определите стандартный конструктор, конструктор с параметрами и операцию вычитания двух дробей. Передачу параметра в метод организуйте по указателю, передачу результата - по значению. При разработке метода используйте переопределение операции вычитания.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2016, 06:30
Ответы с готовыми решениями:

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать...

Определите для класса Rational операторы сложения, вычитания, умножения и деления
Определите для класса Rational операторы сложения, вычитания, умножения и...

Класс Rational
У меня не получается переделать программу так, чтобы числитель и знаменатель...

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве...

Класс дробей Rational
Разработайте и протестируйте класс Rational, представляющий рациональное число ...

1
obivan
Падаван С++
419 / 239 / 82
Регистрация: 11.11.2014
Сообщений: 845
Завершенные тесты: 2
28.12.2016, 08:09 #2
Лучший ответ Сообщение было отмечено berkana как решение

Решение

berkana,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
 
int NOK(int a, int b) {
        return b ? NOK (b, a % b) : a;
}
int NOD(int a, int b) {
    return a / NOK(a, b) * b;
}
 
class Rational {
private:
    int  chisl;
    int znam;
public:
    Rational() : chisl(0), znam(0) {}
    Rational(int chisl, int znam) : chisl(chisl), znam(znam) {}
    
    int getChisl(void) const { return chisl; }
    int getZnam(void) const { return znam; }
    
    void setChisl(int chisl) { this->chisl = chisl; }
    void setZnam(int znam) { this->znam = znam; }
    
    Rational operator-(const Rational& obj) {
        if(znam == obj.znam)
            return Rational(chisl - obj.chisl,znam);
            
        int nod = NOD(znam, obj.znam);
        int first = nod / znam;
        int second = nod / obj.znam;
        return Rational(chisl * first - obj.chisl * second, nod);
    }
};
 
int main()
{
    Rational a(5,6), b(11,12);
    Rational c = a - b;
    std::cout << c.getChisl() << "/" << c.getZnam();
}
Добавлено через 1 минуту
до ума думаю сами доведете, проверку деления на ноль например, ну и конструктор копии и = автоматически сгенерированны, но по заданию нужно самому дописать, тоже думаю справитесь

Добавлено через 1 минуту
и еще можете переопределить вывод на cout

Добавлено через 2 минуты
можно еще добавить определение целой части, при дроби например 5/2
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2016, 08:09

Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным.
решите пожалуйста вот эту задачу, вроде бы простая.. и если можно объясните,...

Конструктор с параметрами
Доброе время суток! Суть вопроса вот в чем: Есть класс Game, в котором...

Конструктор с параметрами
Не получается конструктор с параметром.. помогите пожалуйста! вот весь класс,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru