[WikiItic] [TitleIndex] [WordIndex

1. Exercici 7.1

   1 # -*- encoding:utf-8 -*-
   2 class Fraccio(object):
   3 
   4     def __init__(self,n,d):
   5 
   6         self.n = n
   7         self.d = d
   8         try:
   9             self.n/self.d
  10         except ZeroDivisionError:
  11             print " El divisor no pot ser 0"
  12         
  13 
  14     def __repr__(self):
  15         a= self.n /mcd(self.n,self.d)
  16         b= self.d /mcd(self.n,self.d)
  17         return "Fraccio(%i,%i)" % (a,b)
  18 
  19     def __add__(self,a):
  20         
  21         c= (self.n * a.d) + (self.d * a.n)
  22         d= (self.d * a.d)
  23         return Fraccio(c,d)
  24         
  25     def __sub__(self,a):
  26 
  27         c= (self.n * a.d) - (self.d * a.n)
  28         d= self.d * a.d
  29         return Fraccio(c,d)
  30         
  31     def __mul__(self,a):
  32 
  33         c= self.n * a.n
  34         d= self.d *a.d
  35         return Fraccio(c,d)
  36         
  37     
  38     def __truediv__(self,a):
  39         c= self.n * a.d
  40         d= self.d * a.n
  41         return Fraccio(c,d)
  42 
  43 
  44 def mcd(a,b):
  45     """
  46     Funcio recursiva que calcula
  47     el maxim comu divisor de a i b
  48     mitjançant l'algoritme d'euclides
  49     El fem servir per simplificar les
  50     fraccions.
  51     """
  52     if b ==0:
  53         return a
  54     else:
  55         return mcd(b,a % b)

2023-07-03 11:46