diff --git a/Fractions/MyFraction.py b/Fractions/MyFraction.py index 4b05413..9a271d8 100644 --- a/Fractions/MyFraction.py +++ b/Fractions/MyFraction.py @@ -9,19 +9,46 @@ def __str__(self): def __add__(self, fraction): self.sumNum = self.numerator + fraction.numerator self.sumDen = self.gcf(self.denominator, fraction.denominator) + self.sumgcd = self.gcf(self.sumNum,self.sumDen) + self.sumNum = self.sumNum // self.sumgcd + self.sumDen = self.sumDen // self.sumgcd answer = MyFraction(self.sumNum, self.sumDen) return answer def __sub__(self, fraction): - answer = "Calculate the answer. The answer will be a fraction" + self.subNum = self.numerator*fraction.denominator - self.denominator*fraction.numerator + self.subDen = self.denominator*fraction.denominator + self.subgcd = self.gcf(self.subNum ,self.subDen) + + if self.subgcd==0: + return MyFraction(0,0) + self.subNum = self.subNum // self.subgcd + self.subDen = self.subDen // self.subgcd + + answer = MyFraction(self.subNum ,self.subDen) return answer def __mul__(self, fraction): - answer = "Calculate the answer. The answer will be a fraction" + self.mulNum = self.numerator*fraction.numerator + self.mulDen = self.denominator*fraction.denominator + self.mulgcd = self.gcf(self.mulNum,self.mulDen) + + if self.mulgcd==0: + return MyFraction(0,0) + self.mulNum = self.mulNum // self.mulgcd + self.mulDen = self.mulDen // self.mulgcd + answer = MyFraction(self.mulNum,self.mulDen) return answer def __truediv__(self, fraction): - answer = "Calculate the answer. The answer will be a fraction" + self.divNum = self.numerator*fraction.denominator + self.divDen = self.denominator*fraction.numerator + self.divgcd = self.gcf(self.divNum,self.divDen) + if self.divgcd==0: + return MyFraction(0,0) + self.divNum = self.divNum // self.divgcd + self.divDen = self.divDen // self.divgcd + answer = MyFraction(self.divNum,self.divDen) return answer def gcf(self, x, y): @@ -29,8 +56,9 @@ def gcf(self, x, y): smaller = y else: smaller = x + gcd = 0 for i in range(1, smaller + 1): if((x % i == 0) and (y % i == 0)): - gcf = i - return gcf + gcd = i + return gcd diff --git a/Fractions/Test.py b/Fractions/Test.py index 8adc56c..0acb0ec 100644 --- a/Fractions/Test.py +++ b/Fractions/Test.py @@ -7,13 +7,13 @@ def main(): addResult = fraction1 + fraction2 print("Addition result was: " + str(addResult) + ". The correct answer is: 1/1 or 2/2") - #subResult = fraction2 - fraction1 - #print("Subtraction result was: " + subResult + ". The correct answer is: 0/0") + subResult = fraction2 - fraction1 + print("Subtraction result was: " + str(subResult) + ". The correct answer is: 0/0") - #multResult = fraction1 * fraction2 - #print("Multiplication result was: " + multResult + ". The correct answer is: 1/4") + multResult = fraction1 * fraction2 + print("Multiplication result was: " + str(multResult) + ". The correct answer is: 1/4") - #divResult = fraction1 / fraction2 - #print("Division result was: " + divResult + ". The correct answer is: 1/1") + divResult = fraction1 / fraction2 + print("Division result was: " + str(divResult) + ". The correct answer is: 1/1") main() diff --git a/Fractions/__pycache__/MyFraction.cpython-38.pyc b/Fractions/__pycache__/MyFraction.cpython-38.pyc new file mode 100644 index 0000000..13177aa Binary files /dev/null and b/Fractions/__pycache__/MyFraction.cpython-38.pyc differ