Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """ Задание 1: расширить класс Fraction методами сложения двух дробей, вычитания двух дробей, деления двух дробей и сокращения """
- class Fraction:
- def __init__(self, num, denum):
- self.num = num
- self.denum = denum
- def gcd(self, a, b):
- m = b
- if a < b:
- m = a
- for i in range(m, 1, -1):
- if a % i == 0 and b % i == 0:
- return i
- return 1
- def reduction(self, t):
- temp = Fraction(1,1)
- k = self.gcd(t.num, t.denum)
- temp.num = t.num // k
- temp.denum = t.denum // k
- return temp
- def multiplication(self, t):
- temp = Fraction(1,1)
- temp.num = self.num * t.num
- temp.denum = self.denum * t.denum
- return self.reduction(temp)
- def division(self, t):
- if t.denum != 0:
- temp = Fraction(1,1)
- temp.num = self.num * t.denum
- temp.denum = self.denum * t.num
- else:
- temp = Fraction(0,0)
- return self.reduction(temp)
- def addition(self, t):
- temp = Fraction(1,1)
- temp.num = self.num * t.denum + t.num * self.denum
- temp.denum = self.denum * t.denum
- return self.reduction(temp)
- def subtraction(self, t):
- temp = Fraction(1,1)
- temp.num = self.num * t.denum - t.num * self.denum
- temp.denum = self.denum * t.denum
- return self.reduction(temp)
- def print_fractoin(self):
- if self.denum != 0:
- print ("{}/{}".format(self.num, self.denum))
- else:
- print("ERR")
- #-------------------------------------------------------------------------------
- f1 = Fraction(10,10)
- f2 = Fraction(10,10)
- f_add = f1.addition(f2)
- f_add.print_fractoin()
- f_sub = f1.subtraction(f2)
- f_sub.print_fractoin()
- f_mult = f1.multiplication(f2)
- f_mult.print_fractoin()
- f_div = f1.division(f2)
- f_div.print_fractoin()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement