Question: import math class Fraction: def _ _ init _ _ ( self , numerator, denominator ) : self. _ numerator = numerator if denominator !

import math
class Fraction:
def __init__(self, numerator, denominator):
self._numerator = numerator
if denominator !=0:
self._denominator = denominator
else:
self._denominator =1
def setDenominator(self, den):
if den !=0:
self._denominator = den
def setNumerator(self, den):
self._numerator = den
def getDenominator(self):
return self._denominator
def getNumerator(self):
return self._numerator
def reduce(self):
gcDenom = math.gcd(self._numerator, self._denominator)
self._numerator = self._numerator // gcDenom
self._denominator //= gcDenom
################################
# -------> This needs to be implemented
################################
def add(self, frac):
################################
# -------> This needs to be implemented
################################
def subtract(self, frac):
print(f"subtracting {frac} from {self}")
def __str__(self):
return f"{self._numerator}/{self._denominator}"
class MixedNumber(Fraction):
def __init__(self, whole, numerator, denominator):
super().__init__(numerator, denominator)
self._whole = whole
def setWhole(self, whole):
self._whole = whole
def reduce(self):
super().reduce()
whole = self._numerator // self._denominator
remainder = self._numerator % self._denominator
self._numerator = remainder
self._whole += whole
#############################
# -------> This needs to be implemented
#############################
def add(self, mixedNum):
#############################
# -------> This needs to be implemented
#############################
def subtract(self, mixedNum):
def __str__(self):
if self._whole ==0:
return super().__str__()
elif self._numerator ==0:
return f"{self._whole}"
return f"{self._whole}{super().__str__()}"
This Code Below Is for test values
# This program should use the Fraction and MixedNumber
# classes and test their add() methods
#
# Try several values to test, including adding a Fraction
# to a MixedNumber. The code below is merely an example of
# how the add() methods are to be used.
from fraction import Fraction
from fraction import MixedNumber
def main():
frac1= Fraction(1,2) # 1/2
frac2= Fraction(1,4) # 1/4
frac1.add(frac2) # adds frac2 to frac1, so frac1 should be 3/4
# frac2 is unchanged, still 1/4
frac1.subtract(frac2) # subtracts frac2 from frac1, so frac1 should be 1/2
mn1= MixedNumber(1,2,3) # 12/3
mn2= MixedNumber(2,1,6) # 21/6
mn2.add(mn1) # adds mn1 to mn2, so mn2 should be 35/6; mn1 is unchanged
mn2.subtract(mn1) # subtracts mn2 from mn1, so mn1 should be 12/3
if __name__=='__main__':
main()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!