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

Проверьте работоспособность программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с файлами, задача http://www.cyberforum.ru/cpp-beginners/thread718719.html
Считать текст с файла, и заменить маленькие гласные буквы на большие, и вывести на экран, в таком же виде. Вот текст файла book.txt On Wednesday 12 December the Mayor and London assembly will...
C++ виртуальный оператор (двусвязный список, наследование) Здравствуйте! Поставлена задача реализовать двусвязный список, способный хранить объекты классов Circle и Rectangle, которые, как водится, унаследованы от абстрактного Shape. В частности,... http://www.cyberforum.ru/cpp-beginners/thread718716.html
Модульное деление на степень двойки C++
Раньше я всегда использовал примерной такой подход : int mod = 8; int a = 90412488; char b = 113; int modA, modB; modA = a & int(mod-1); modB = b & char(mod-1); Понятное дело, что можно...
C++ почему прога вылетает, не успеваю посмотреть действие C++
дан массив строк, если какая либо строка заканчивается буквой k, то удалить эту строку, вод что я написал: #include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> #include...
C++ В n мерном массиве целых чисел, вычислить сумму отрицательных элементов массива, положительных, и упорядочить все элементы массива по возрастанию http://www.cyberforum.ru/cpp-beginners/thread718693.html
Ребят помогите решить! В n мерном массиве целых чисел, вычислить сумму отрицательных элементов массива, сумму положит элементов массива, и упорядотчить все элементы массива по возрастанию
C++ Из чисел от 10 до 99 вывести те, сумма цифр которых равна n Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (n вводится с клавиатуры, n =< 18) Очень прошу. Заранее благодарен. подробнее

Показать сообщение отдельно
Maksimyshka
2 / 2 / 1
Регистрация: 10.04.2012
Сообщений: 133

Проверьте работоспособность программы - C++

04.12.2012, 13:59. Просмотров 351. Ответов 0
Метки (Все метки)

особое внимание прошу уделить логическим операциям, правильно ли они написаны

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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
/*Реализовать в виде класса набор подпрограмм для выполнения следующих 
операций над обыкновенными дробями вида A/B (A — целое, B — натуральное):
Решить задачу:
 сложение;
вычитание;
умножение;
деление;
сокращение дроби;
возведение дроби в степень n (n — натуральное);
функции, реализующие операции отношения (равно, не равно, больше или равно,
                                         меньше или равно, больше, меньше). */
#include <iostream>
#include <string>
using namespace std;
class drobi
{
    private:
    int Nod(int x=0, int y=1); // Нахождене наибольшего общего делителя  
    int a; //числитель
    int b;//знаменатель
public:
      drobi operator +(drobi x);
      drobi operator -(drobi x);
      drobi operator /(drobi x);
      drobi operator *(drobi x); 
       void vvod();
       void vivod();
       void chast();/*Выделение целой части*/
       void sokr();
      drobi operator ^(int n);
      bool operator<(drobi x);
      bool operator>(drobi x);
      bool operator!=(drobi x);
      bool operator==(drobi x);
      bool operator>=(drobi x);
      bool operator<=(drobi x);
       };
int main()
{drobi a,b,x;
a.vvod(); b.vvod();
cout<<"Drob 1: ";
a.vivod();
cout<<endl;
cout<<"Drob 2: ";
b.vivod();
cout<<endl;
cout<<"A + B =";
x=a+b;
x.vivod();
x.sokr();
cout<<" Pravil'naya: ";
x.chast();
cout<<endl;
cout<<"A - B =";
x=a-b;
x.vivod();
cout<<" Pravil'naya: ";
x.chast();
cout<<endl;
cout<<"A / B =";
x=a/b;
x.vivod();
x.sokr();
cout<<" Pravil'naya: ";
x.chast();
cout<<endl;
cout<<"A * B =";
x=a*b;
x.vivod();
x.sokr();
cout<<" Pravil'naya: ";
x.chast();
cout<<endl;
cout<<"A ^ 4 =";
x=a^4;
x.vivod();
x=b^4;
x.vivod();
cout<<endl;
cout<<endl;
system("PAUSE");
return 0;
}
/* Ввод цифр */
void drobi::vvod()
{
cout<<"Vvedite Chislitel: "<<endl; cin>>a;
if (a==0) 
{while (a==0) 
{cout<<" Nepravil'no vvedeno chislo. Nel'zya vvodit' 0. Povtorite vvod: ";
cin>>a;}}
cout<<"Vvedite Znamenatel: "<<endl; cin>>b;
if (b<0) 
{while (b<0)
{cout<<" Nepravil'no vvedeno chislo. Nel'zya vvodit' 0. Povtorite vvod: ";
cin>>b;}}
if (b==0)
{while (b==0)
{cout<<" Nepravil'no vvedeno chislo. Nel'zya vvodit' 0. Povtorite vvod: ";
cin>>b;}}
cout<<endl;
}
/* Вывод дроби */
void drobi::vivod()
{ 
cout<<a<<"/"<<b;
cout<<endl;
}
 
drobi drobi ::operator +(drobi x)
{drobi d;
if ((b%x.b!=0)&&(x.b%b!=0))
d.b=b*x.b;
else if (b>x.b) d.b=b; 
else if (b<x.b) d.b=x.b; 
else d.b=b;
d.a=a*(d.b/b)+x.a*(d.b/x.b);
return d ;
}
 
drobi drobi ::operator -(drobi x)
{drobi d;
if ((b%x.b!=0)&&(x.b%b!=0))
d.b=b*x.b;
else if (b>x.b) d.b=b; 
else if (b<x.b) d.b=x.b; 
else d.b=b;
d.a=a*(d.b/b)-x.a*(d.b/x.b);
return d ;
}
 
drobi drobi ::operator /(drobi x)
{drobi d;
d.a=a*x.b;
d.b=b*x.a;
return d;
}       
 
drobi drobi ::operator *(drobi x)
{drobi d;
d.a=a*x.a;
d.b=b*x.b;
return d;
}
 
void drobi::chast()
{int x;
x=0;
if (a>b)
{x=a/b;
a=a%b;}
if (x!=0)
cout<<x<<" "<<a<<"/"<<b<<endl;
else cout<<a<<"/"<<b<<endl;
}
 
drobi drobi:: operator ^(int n)
{drobi d; int i;
d.a=1;
d.b=1;
for(i=1;i<=n;i++)
d=d*(*this);
return d;
}
 
int drobi::Nod (int x, int y)
{a=x; b=y;
    while (x!=y)
    {
        if(x>y)
            if(x%y!=0)
                x=x%y;
            else x=y;
        else
            if (y%x!=0)
                y=y%x;
            else y=x;
    }
    return x;
}
 
void drobi::sokr()
{
    if(a==0)
        return;
    int n=Nod(a,b);
    a=a/n;
    b=b/n;
cout<<"sokr:";
cout<<endl;
cout<<a<<"/"<<b;
cout<<endl;
}
 
bool drobi::operator<(drobi x)
{
    return(x.a*b > x.b*a);
}
 
bool drobi::operator>(drobi x)
{
    return(x.a*b < x.b*a);
}
 
bool drobi::operator!=(drobi x)
{
    return(x.a*b != x.b*a);
}
 
bool drobi::operator==(drobi x)
{
    return(x.a*b == x.b*a);
}
 
bool drobi::operator>=(drobi x)
{drobi d;
if ((b%x.b!=0)&&(x.b%b!=0))
d.b=b*x.b;
else if (b>x.b) d.b=b; 
else if (b<x.b) d.b=x.b; 
else d.b=b;
{return(x.a*b >= x.a*b);}
}
 
bool drobi::operator<=(drobi x)
{drobi d;
if ((b%x.b!=0)&&(x.b%b!=0))
d.b=b*x.b;
else if (b>x.b) d.b=b; 
else if (b<x.b) d.b=x.b; 
else d.b=b;
{return(x.a*b <= x.a*b);}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru