-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathFraction.java
More file actions
164 lines (124 loc) · 3.58 KB
/
Fraction.java
File metadata and controls
164 lines (124 loc) · 3.58 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
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
/**
* Fixed the Fraction clas attributes
*
* Fixed the toString and toDouble
*
* Added Arithmetic operations for 2 fractions
* */
public class Fraction {
private int numerator;
private int denominator;
/**
* Constructs a fraction with 0 as numerator and 0 as denominator
* */
public Fraction(){
this.numerator = 0;
this.denominator = 0;
}
/**
* Constructs a fraction with numerator assigned to numerator, and denominator assigned to denominator
* */
public Fraction( int numerator, int denominator){
this.numerator = numerator;
this.denominator = denominator;
}
/**
* Returns the numerator of the fraction
* */
public int getNumerator(){
return numerator;
}
/**
* Returns the denominator of the fraction
* */
public int getDenominator(){
return denominator;
}
/**
* Sets the numerator of the fraction
* */
public void setNumerator(int numerator){
this.numerator = numerator;
}
/**
* Sets the denominator of the fraction
* */
public void setDenominator(int denominator){
this.denominator = denominator;
}
/**
* Computes the Greatest Common Divisor(GCD) using Euclid's algorithm
* */
private int computeGCD(int firstNum, int secondNum){
if (firstNum == 0)
return secondNum;
return computeGCD(secondNum % firstNum, firstNum);
}
/**
* Returns a string showing the fraction
* */
public String toString(){
return this.numerator + " / " + this.denominator;
}
/**
* Returns the double value of the fraction
* */
public double toDouble(){
return (double) this.numerator / this.denominator;
}
/**
* Method that adds the two fractions
* */
public Fraction add(Fraction fraction){
int numAnswer = 0;
int denAnswer = 0;
denAnswer = (computeGCD(this.denominator, fraction.getDenominator()));
denAnswer = (this.denominator * fraction.getDenominator()) / denAnswer;
numAnswer = ((this.numerator) * (denAnswer/this.denominator)) + (fraction.getNumerator() * (denAnswer / fraction.getDenominator()));
Fraction additionAnswer = new Fraction(numAnswer, denAnswer);
return additionAnswer;
}
/**
* Method that subtracts the two fractions
* */
public Fraction subtract(Fraction fraction){
int denAnswer = 0;
int numAnswer = 0;
denAnswer = (computeGCD(this.denominator, fraction.getDenominator()));
denAnswer = (this.denominator * fraction.getDenominator()) / denAnswer;
numAnswer = ((this.numerator) * (denAnswer/this.denominator)) - (fraction.getNumerator() * (denAnswer / fraction.getDenominator()));
Fraction subtractionAnswer = new Fraction(numAnswer, denAnswer);
return subtractionAnswer;
}
/**
* Method that multiplies the two fractions
* */
public Fraction multiplyBy(Fraction fraction){
int numAnswer = 0;
int denAnswer = 0;
numAnswer = (this.numerator * fraction.getNumerator());
denAnswer = (this.denominator * fraction.getDenominator());
Fraction multiplicationAnswer = new Fraction(numAnswer, denAnswer);
return multiplicationAnswer;
}
/**
* Method that divides the two fractions
* */
public Fraction divideBy(Fraction fraction){
int numAnswer = 0;
int denAnswer = 0;
numAnswer = (this.numerator * fraction.getDenominator());
denAnswer = (this.denominator * fraction.getNumerator());
Fraction divisionAnswer = new Fraction(numAnswer, denAnswer);
return divisionAnswer;
}
/**
* Reduces a fraction into its lowest form
* */
public Fraction reduceFraction(){
int GCD = 0;
GCD = computeGCD(this.numerator, this.denominator);
Fraction reducedFraction = new Fraction((this.numerator / GCD), (this.denominator / GCD));
return reducedFraction;
}
}