Advertisement
Norvager

Untitled

May 30th, 2021
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. #Создать класс Money для работы с денежными суммами. Число должно быть представлено двумя полями:
  2. #типа long int для рублей и типа int – для копеек. Дробная часть (копейки) при выводе на экран должна
  3. #быть отделена от целой части запятой.
  4. import math
  5.  
  6. class RuMoney():
  7. __ruble = None
  8. __kopeck = None
  9.  
  10. def __init__ (self, ruble, kopeck) :
  11. self.__ruble = ruble + kopeck // 100
  12. self.__kopeck = kopeck % 100
  13. pass
  14.  
  15. def __del__ (self) :
  16. print("Ты банкрот!")
  17. pass
  18.  
  19. def getRuble(self) :
  20. return __ruble
  21.  
  22. def getKopeck(self) :
  23. return __kopeck
  24.  
  25. def makeToKopeck(self) :
  26. return self.__kopeck + self.__ruble * 100
  27.  
  28. def makeToNormal(self, kop) :
  29. self.__ruble = kop // 100
  30. self.__kopeck = math.fabs(kop % 100)
  31. return self
  32. # self < other
  33. def __lt__ (self, other) :
  34. if self.__ruble < other.getRuble() :
  35. return True
  36. elif self.__ruble == other.getRuble() :
  37. if self.__kopeck < other.getKopeck() :
  38. return True
  39. return False
  40. # self == other
  41. def __eq__ (self, other) :
  42. if self.__ruble == other.getRuble() :
  43. if self.__kopeck == other.getKopeck() :
  44. return True
  45. else :
  46. return False
  47. # self > other
  48. def __gt__ (self, other) :
  49. if self.__ruble > other.getRuble() :
  50. return True
  51. elif self.__ruble == other.getRuble() :
  52. if self.__kopeck > other.getKopeck() :
  53. return True
  54. return False
  55. # self + other
  56. def __add__ (self, other) :
  57. kop_1 = self.makeToKopeck()
  58. kop_2 = other.makeToKopeck()
  59. kop = kop_1 + kop_2
  60. return self.makeToNormal(kop)
  61. # self - other
  62. def __sub__ (self, other) :
  63. kop_1 = self.makeToKopeck()
  64. kop_2 = other.makeToKopeck()
  65. kop = kop_1 - kop_2
  66. return self.makeToNormal(kop)
  67. # self / other:Money
  68. def __truediv__ (self, other:RuMoney) :
  69. kop = self.makeToKopeck()
  70. kop_2 = other.makeToKopeck()
  71. # Дробного кол-ва копеек быть не может
  72. if 0 != kop % kop_2:
  73. kop //= kop_2
  74. kop += 1
  75. else :
  76. kop /= kop_2
  77. return self.makeToNormal(kop)
  78. # self / other:float
  79. def __truediv__ (self, other:float) :
  80. kop = self.makeToKopeck()
  81. # Дробного кол-ва копеек быть не может
  82. if 0 != kop % other:
  83. kop //= other
  84. kop += 1
  85. else :
  86. kop /= other
  87. return self.makeToNormal(kop)
  88. # self * other
  89. def __mul__ (self, other:float) :
  90. kop = self.makeToKopeck()
  91. kop *= other
  92. if 0 != kop % 1 :
  93. kop //= 1
  94. kop += 1
  95. return self.makeToNormal(kop)
  96.  
  97. def output (self):
  98. print(f"{self.__ruble},{self.kopeck}/n")
  99. pass
  100.  
  101. if __name__ == "__main__" :
  102. a = int(input())
  103. b = int(input())
  104. ruble = RuMoney(a, b)
  105. ruble.output()
  106. a2 = int(input())
  107. b2 = int(input())
  108. ruble = ruble + RuMoney(a2,b2)
  109. ruble.output()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement