1: class Fraccion:
2: def __init__(self, numerador, denominador=1):
3: m = mcd (numerador, denominador)
4: self.numerador = numerador / m
5: self.denominador = denominador / m
6: def __mul__(self, otro):
7:
8: if type(otro) == type(5):
9: otro = Fraccion(otro)
10: return Fraccion(self.numerador * otro.numerador,
11:
12:
13: self.denominador * otro.denominador)
14: __rmul__ = __mul__
15: def __add__(self, otro):
16:
17: if type(otro) == type(5):
18: otro = Fraccion(otro)
19: return Fraccion(self.numerador * otro.denominador +
20:
21: self.denominador * otro.numerador,
22: self.denominador * otro.denominador)
23: __radd__ = __add__
24: def __cmp__(self, otro):
25: if type(otro) == type(5):
26: otro = Fraccion(otro)
27: dif = (self.numerador * otro.denominador -
28: otro.numerador * self.denominador)
29: return dif
30:
31: def __repr__(self):
32: return self.__str__()
33: def __str__(self):
34: return "%d/%d" % (self.numerador, self.denominador)
35:
36: def mcd(m,n):
37: "devuelve el maximo comun denominador de dos enteros"
38: if m % n == 0:
39: return n
40: else:
41: return mcd(n,m%n)
Comentarios
Publicar un comentario