Форум программистов, компьютерный форум CyberForum.ru

Класс, набор методов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Одномерный массив http://www.cyberforum.ru/cpp-beginners/thread214026.html
Помогите решить лабораторную на тему одномерных массивов. Вот задание http://f04.spaces.ru/f/506463539434/1292680881/11756507/0/174ef35968ebe6c4bb4733ee672c5e61/Spp_zadachi.JPG
C++ Помогите пожалуйста с массивом Помогите решить лабораторную на тему одномерных массивов. Вот задание http://f04.spaces.ru/f/506463539434/1292680881/11756507/0/174ef35968ebe6c4bb4733ee672c5e61/Spp_zadachi.JPG http://www.cyberforum.ru/cpp-beginners/thread214025.html
C++ Компилятор
Привет Всем, если пишу не в той теме, сильно не бейте)) Вопрос такой, помню в школе запускали компилятор(Borland C, вроде так назывался) до загрузки ОС, не могли бы вы рассказать, как его так же запустить??? Буду очень благодарен.
дерево поиска Т1 для дерева Т C++
Здравствуйте! Пишу курсовой с вот таким задание: 1. Создать идеально сбалансированное дерево Т, распечатать его (в виде дерева), 2 .определить максимальную глубину дерева, 3.определить есть ли в дереве хотя бы 2 одинаковых элемента. 4. построить и напечатать по уровням дерево поиска Т1 для дерева Т, с первыми тремя заданиями худо бедно разобрался, а четвертое даже понять не могу. Кто...
C++ Создать конструктор http://www.cyberforum.ru/cpp-beginners/thread213988.html
Используя следующий фрагмент, создайте е конструктор саг(). Он должeн передавать необходимые аргументы объектам класса vehicle. Кроме этого конструктор саг() должен при создании объекта инициализировать переменную passengers. #include <iostream> using namespace std; // Базовый класс автомобилей для разных типов class vehicle { int num_wheels; int range; public: vehicle (int w, int r)
C++ Посчитайте количество натуральных чисел, не превосходящих 60 1)Даны два натуральных числа A и B. Известно, что их произведение, записанное в семеричной системе счисления равно 143 в 7 системе счисления. Найдите сумму чисел A и B, если известно, что одно из чисел является минимально возможным трехразрядным числом, записанным в четверичной системе счисления. В ответе запишите сумму чисел А и В в десятичной системе счисления. 2)Посчитайте количество... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
18.12.2010, 19:32     Класс, набор методов
Цитата Сообщение от Shuh Посмотреть сообщение
преобразование дроби в символьная строка и сравнения на двух дробь
Ну и формулировочки.
Заменил сравнение соответствующими операторами.
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <string>
#include <sstream>
 
using namespace std;
 
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
 
class fraction
{
private:
        signed int _numerator;
        signed int _denominator;
public:
        fraction(void) : _numerator(0), _denominator(1) {}
        fraction(const int numerator, const int denominator)
                : _numerator(numerator), _denominator(denominator)
        { reduce(); }
        fraction& reduce()
        {
                int _gcd = gcd(_numerator, _denominator);
                _numerator /= _gcd;
                _denominator /= _gcd;
                if (_denominator<0)
                {
                        _denominator = - _denominator;
                        _numerator = - _numerator;
                }
        }
        int numerator() const { return _numerator; }
        int denominator() const { return _denominator; }
 
        void set(int numerator, int denominator)
        {
                _numerator = numerator;
                _denominator = denominator;
                reduce();
        }
 
        signed int compare(const fraction& other)
        {
                int _cmp_left = numerator()*other.denominator();
                int _cmp_right = other.numerator()*denominator();
                return _cmp_left-_cmp_right;
        }
 
        string toString() const
        {
                std::stringstream ss;
                ss << _numerator << "/" << _denominator;
                std::string str;
                ss >> str;
                return str;
        }
        operator string() const { return toString(); }
        operator double() const { return static_cast<double>(_numerator)/_denominator; }
 
 
        friend ostream& operator<<(ostream& o, const fraction& other)
        {
                o << other.toString();
                return o;
        }
 
        bool operator==(const fraction& other) { return compare(other)==0; }
        bool operator!=(const fraction& other) { return compare(other)!=0; }
        bool operator< (const fraction& other) { return compare(other)<0;  }
        bool operator> (const fraction& other) { return compare(other)>0;  }
        bool operator<=(const fraction& other) { return compare(other)<=0; }
        bool operator>=(const fraction& other) { return compare(other)>=0; }
 
        fraction operator-()
        {
                fraction result(-numerator(), denominator());
                return result;
        }
 
        fraction operator+(const fraction& other)
        {
                fraction result(numerator()*other.denominator()
                                +other.numerator()*denominator(),
                                denominator()*other.denominator());
                return result;
        }
        fraction operator-(const fraction& other)
        {
                fraction result(numerator()*other.denominator()
                                -other.numerator()*denominator(),
                                denominator()*other.denominator());
                return result;
        }
        fraction operator*(const fraction& other)
        {
                fraction result(numerator()*other.numerator(),
                                denominator()*other.denominator());
                return result;
        }
        fraction operator/(const fraction& other)
        {
                fraction result(numerator()*other.denominator(),
                                denominator()*other.numerator());
                return result;
        }
};
 
int main()
{
        fraction a(4, 6);
        fraction b(5, 10);
        fraction c;
        c = b-a;
 
        cout << "a=" << a << endl
        << "b=" << b << endl
        << "c=b-a=" << c << endl
        << "c>a is " << ((c>a)?"true":"false") << endl
        << "a>b is " << ((a>b)?"true":"false") << endl;
        cout << c.toString() << endl;
        cout << static_cast<double>(c) << endl;
        return 0;
}
 
Текущее время: 20:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru