MAB225 – Computação II – Aula 14/04/2011
MAB 225 - Computação II - Fabio Mascarenhas
Classe Fração (14/04/2011)
def mdc(n1, n2):
while n1 % n2 != 0:
r = n1 % n2
n1 = n2
n2 = r
return n2
def mmc(n1, n2):
d = mdc(n1, n2)
return (n1 * n2) / d
class Fracao:
def __init__(self, num, den=1):
self.num = num
self.den = den
self.simp()
def __add__(self, outro):
# outro e um objeto Fracao
den_r = self.den * outro.den
num_r = (den_r/self.den)*self.num + (den_r/outro.den)*outro.num
return Fracao(num_r, den_r)
def __sub__(self, outro):
# outro e um objeto Fracao
den_r = self.den * outro.den
num_r = (den_r/self.den)*self.num - (den_r/outro.den)*outro.num
return Fracao(num_r, den_r)
def __mul__(self, outro):
return Fracao(self.num*outro.num, self.den*outro.den)
def __div__(self, outro):
return Fracao(self.num*outro.den, self.den*outro.num)
def __repr__(self):
if self.den == 1:
return str(self.num)
else:
return str(self.num) + "/" + str(self.den)
def __eq__(self, outro):
return self.num == outro.num and self.den == outro.den
def __lt__(self, outro):
z = (self - outro)
return z.num < 0
def __le__(self, outro):
z = (self - outro)
return z.num <= 0
def __gt__(self, outro):
z = (self - outro)
return z.num > 0
def __ge__(self, outro):
z = (self - outro)
return z.num >= 0
def simp(self):
d = mdc(self.num, self.den)
self.num = self.num / d
self.den = self.den / d
return self