30.12.2013, 00:10. Просмотров 219. Ответов 3
Программа Вводит класс для работы с объектом "рациональная дробь" и реализует:
а)сложение(вычитание) двух дробей;
б)приведение дроби к несократимому виду.
пункт б) почему то не делает.Еррорит. Помогите исправить.Заранее спасибо
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
| #include <iostream>
#include <clocale>
#include <tchar.h>
using namespace std;
class drob {
double a,b,y,z,g,k;
public:
drob (double x,double y) {a = x,b = y;}
~drob ();
void sum ();
void min ();
void func2 ();
void func ();
double NOD (int r,int t);
};
drob::~drob () {};
void drob::sum ()
{
y = a + b;
cout«"ÑóììГ* Г°Г*ГўГ*Г*: "«y«endl;
}
void drob::min ()
{
z = a - b;
cout«"ГђГ*Г§Г*îñòü Г°Г*ГўГ*Г*: "«z«endl;
}
void drob::func ()
{
cout«"Âûáåðèòå ГЇГіГ*ГЄГІ ГЁГ§ ìåГ*Гѕ: "«endl;
cout«"1.Ïîñ÷èòГ*ГІГј ñóììó: "«endl;
cout«"2.Ïîñ÷èòГ*ГІГј âû÷èòГ*Г*ГЁГҐ: "«endl;
cout«"3.Ïðèâåñòè äðîáü ГЄ Г*åñîêðГ*òèìîìó âèäó: "«endl;
}
double drob::NOD (int r,int t)
{
cout«"Ââåäèòå r ГЁ t"«endl;
cin»r»t;
while (r!=t)
{
if(r>t)
if (r % t !=0)
r %= t;
else a=b;
else
if (r % t != 0)
r %= t;
else r = t;
}
return t;
}
void drob::func2 ()
{
if(g == 0)
return;
int n = NOD (g,k);
g /= n;
k /= n;
cout«g;
}
int _tmain(int argc, _TCHAR* argv[])
{
setlocale (LC_ALL,"Russian");
drob pr (13.5,14.6),m (15.7,123.6);
int menu;
char c;
bool done;
do {
pr.func ();
cout«"Ââåäèòå ГЇГіГ*ГЄГІ ìåГ*Гѕ: ";
cout«endl;
cin»menu;
switch (menu) {
case 1 : pr.sum ();break;
case 2 : pr.min ();break;
case 3: pr.func2 ();
default : "Г’Г*êîãî ГЇГіГ*ГЄГІГ* ìåГ*Гѕ Г*ГҐГІГі!";
}
cout«"Ïðîäîëæèòü (y/n)"«endl;
cin»c;
done = (c != 'y');
} while (!done);
system ("pause");
return 0;
} |
|