-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFraction.cpp
More file actions
113 lines (108 loc) · 2.74 KB
/
Fraction.cpp
File metadata and controls
113 lines (108 loc) · 2.74 KB
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
#include "Fraction.h"
Fraction::Fraction()
{
int num;
int den;
numerator= num;
denominator=den;
}
Fraction Fraction ::operator+(Fraction f)
{
if (numerator==0||denominator==0||f.numerator==0||f.denominator==0)
{
cout << "error in this method ";
}
f.numerator=(numerator*f.denominator)+(denominator*f.numerator);
f.denominator=denominator*f.denominator;
return(f);
}
Fraction Fraction::operator-(Fraction f)
{
if (numerator==0||denominator==0||f.numerator==0||f.denominator==0)
{
cout << "error in this method ";
}
f.numerator=(numerator*f.denominator)-(denominator*f.numerator);
f.denominator=denominator*f.denominator;
return(f);
}
Fraction Fraction::operator*(Fraction f)
{
if (numerator==0||denominator==0||f.numerator==0||f.denominator==0)
{
cout << "error in this method ";
}
f.numerator=(numerator*f.numerator);
f.denominator=denominator*f.denominator;
return(f);
}
Fraction Fraction:: operator/(Fraction f)
{
if (numerator==0||denominator==0||f.numerator==0||f.denominator==0)
{
cout << "error in this method ";
}
f.numerator=(numerator/f.numerator);
f.denominator=denominator/f.denominator;
return(f);
}
bool Fraction:: operator == (Fraction f)
{
if (((numerator*f.denominator)-(denominator*f. numerator))==0)
{
cout << numerator << "/"<< denominator <<" = "<<f.numerator<<"/"<<f.denominator << " : ";
return true;
}
return false ;
}
bool Fraction:: operator > (Fraction f)
{
if (((numerator*f.denominator)-(denominator*f. numerator))>0)
{
cout << numerator << "/"<< denominator <<" > "<<f.numerator<<"/"<<f.denominator << " : ";
return true;
}
return false ;
}
bool Fraction:: operator < (Fraction f)
{
if (((numerator*f.denominator)-(denominator*f. numerator))<0)
{
cout << numerator << "/"<< denominator <<" < "<<f.numerator<<"/"<<f.denominator << " : ";
return true;
}
return false ;
}
void Fraction:: comparing (Fraction F1, Fraction F2)
{
F1.reducing();
F2.reducing();
if( F1 == F2 )
{
cout << " f1 is egual f2 " << endl;
}
if( F1 > F2 )
{
cout << " f1 is greater than f2 " << endl;
}
if( F1 < F2 )
{
cout << " f1 is less than f2 " << endl;
}
}
int Fraction:: reducing()
{
for (int i = denominator * numerator; i > 1; i--)
{
if ((denominator % i == 0) && (numerator % i == 0))
{
denominator /= i;
numerator /= i;
}
}
return numerator,denominator;
}
Fraction::~Fraction()
{
//dtor
}