Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from fractions import Fraction
- class ulamki:
- counter=0
- def __init__(self,*args):
- if(len(args)==2):
- self.licznik=int(args[0])
- self.mianownik=int(args[1])
- ulamki.counter += 1
- elif(len(args)==1):
- liczba=str(Fraction(str(args[0])))
- liczba=liczba.split('/')
- self.licznik=int(liczba[0])
- self.mianownik=int(liczba[1])
- ulamki.counter += 1
- else:
- raise ValueError
- def __str__(self):
- return "%s/%s" %(self.licznik,self.mianownik)
- def __mul__(self, other):
- return ulamki(self.licznik*other.licznik,self.mianownik*other.mianownik)
- def __truediv__(self, other):
- return ulamki(self.licznik*other.mianownik,self.mianownik*other.licznik)
- def __add__(self, other):
- mianownik = self.__nwd(self.mianownik,other.mianownik)
- mianownik = (self.mianownik*other.mianownik)/mianownik
- licznik = ((self.licznik)*(mianownik/self.mianownik)+(other.licznik)*(mianownik/other.mianownik))
- return ulamki(licznik,mianownik)
- def __sub__(self,other):
- mianownik = self.__nwd(self.mianownik, other.mianownik)
- mianownik = (self.mianownik * other.mianownik) / mianownik
- licznik = ((self.licznik) * (mianownik / self.mianownik) - (other.licznik) * (mianownik / other.mianownik))
- if(licznik==0):
- ulamki.counter+=1
- return 0
- return ulamki(licznik, mianownik)
- def __nwd(self,a,b):
- if(a==0):
- return b
- return self.__nwd(b%a,a);
- def main():
- try:
- u1=ulamki(1,2)
- u2=ulamki(0.5)
- u3=u1-u2
- print(u3)
- print(ulamki.counter)
- except:
- print("Błąd!")
- if __name__=='__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement