Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка операторов сравнения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Построить и записать алгоритм вычисления суммы процентов по вкладу с использованием рекурсии http://www.cyberforum.ru/cpp-beginners/thread1189227.html
построить и записать алгоритм вычисления суммы процентов по вкладу с использованием рекурсии. Исходные данные : сумма вклада, ставка(процентов в год), срок вклада(дней). добрые люди,спасайте.
C++ Работа со структурными типами данных Задание: В файле записан массив A(nxm) целых чисел. Структура файла следующая: сначала хранится n и m, а затем массив A. Определить в нем подмассивы, образованные двумя элементами: максимальным и... http://www.cyberforum.ru/cpp-beginners/thread1189202.html
C++ Дайте ссылку, где можно разобраться с табуляцией?
привет. В учебнике только сказано, что 2 символа\t означают табуляцию. погуглил: аналогичная ситуация, в найденных источниках только пишут, что \t это горизонтальная табуляция, а дальше понимай как...
Подстроки в строках C++
Здравствуйте. Помогите пожалуйста понять условие задачи и привести пример, который будет выполнять условия. Найти максимум расстояний между двумя симметричными подстроками первой строки,...
C++ Можно ли писать такой код,мне в дальнейшем надо будет наследовать x и y, а другие два елемента нет http://www.cyberforum.ru/cpp-beginners/thread1189189.html
сlass A { private: int a; public int x; A() { x=0; }
C++ Поцедура циклического кодирования Доброго дня! Помогите программно реализовать процедуру кодирования сообщения с использованием циклического кода, заданного порождающим полином g(x)=x^3+x+1 И декодирование... язык C, C++, C#,... подробнее

Показать сообщение отдельно
joemcjoe
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 26

Перегрузка операторов сравнения - C++

26.05.2014, 22:18. Просмотров 764. Ответов 4
Метки (Все метки)

Вот этот класс. Помогите пожалуйста.
Кликните здесь для просмотра всего текста
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <iostream>
    #include<iomanip>
    #include<cstring>
    using namespace std;
     
    class HugeInt
    {
            friend ostream &operator<<( ostream &, const HugeInt & );
            friend istream &operator>>( istream &, HugeInt & );
    private:
            int num[40];
    public:
            HugeInt( long =0 );
            HugeInt( const char * );
          
            HugeInt operator-=( HugeInt & );
    };
     
     
     
    HugeInt::HugeInt( long integer )
    {
            for ( int i=0;i<40;i++ )
                    num[i]=0;
            for ( int j=39; integer!=0 && j>=0; j-- )
            {
                    num[j]=integer%10;
                    integer/=10;
            }
    }
     
     
     
    HugeInt::HugeInt( const char *sentence )
    {
            for ( int i=0;i<40;i++ )
                    num[i]=0;
            int length=strlen( sentence );
            for ( int j=40-length,k=0;j<40;j++,k++ )
            {
                    if ( isdigit(sentence[k]) )
                            num[j]=sentence[k]-'0';
            }
    }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    HugeInt HugeInt::operator-=(  HugeInt &obj )  
    {
            HugeInt temp=*this;
            HugeInt resulttemp;
            int upMinus=0;
            for( int i=39;i>=0;i-- )
            {
                    resulttemp.num[i]= num[i] - obj.num[i] + upMinus;
                    if( resulttemp.num[i]<0 )
                    {
                            resulttemp.num[i]%=10;
                            temp.num[i]=-1*resulttemp.num[i];
                            upMinus=-1;
                    }
                    else
                    {
                            temp.num[i]=resulttemp.num[i];
                            upMinus=0;
                    }
            }
            *this=temp;
            return *this;
    }
     
     
     
     
    
     
     
     
    ostream &operator<<( ostream &output, const HugeInt &obj )
    {      
            int i=0;
            for (  i=0;(obj.num[i]==0)&&(i<40);i++ )
                    ;
            if ( i==40 )
                    output<<0;
            else
            {
                    for (;i<40;i++)
     
                            output<<obj.num[i];
     
            }
     
            return output;
     
    }
     
     
     
    istream &operator>> ( istream & input, HugeInt & obj )
     
    {
     
     
     
            char temp[40];
     
     
     
            input>>temp;
     
            obj=temp;
     
     
     
            return input;
     
     
     
    }
     
    int main()
     
    {
     
            HugeInt a,b;
            cin >> a;
            cin>>b;
           
            if (a > b)
                    cout << "Greater" << endl;
            else
                    cout << "Less" << endl;
     
            if (a < b)
                    cout << "Less" << endl;
            else
                    cout << "Greater" << endl;
            a-=b;
            cout << a << endl;
     
     
            return 0;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru