Advertisement
Rementai

Figury

Apr 20th, 2023
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. #skonczone
  2. from abc import ABC, abstractmethod
  3.  
  4. class Kształt(ABC):
  5.     def __init__(self, nazwa):
  6.         self._nazwa = nazwa
  7.  
  8.     @property
  9.     def nazwa(self):
  10.         return self._nazwa
  11.  
  12.     @abstractmethod
  13.     def pole(self):
  14.         pass
  15.  
  16. class Koło(Kształt):
  17.     def __init__(self, nazwa, promien):
  18.         super().__init__(nazwa)
  19.         self._promien = promien
  20.  
  21.     def pole(self):
  22.         return 3.14 * self._promien ** 2
  23.  
  24. class Trójkąt(Kształt):
  25.     def __init__(self, nazwa, bok_a, bok_b, bok_c):
  26.         super().__init__(nazwa)
  27.         self._bok_a = bok_a
  28.         self._bok_b = bok_b
  29.         self._bok_c = bok_c
  30.  
  31.     def pole(self):
  32.         p = (self._bok_a + self._bok_b + self._bok_c) / 2
  33.         return (p * (p - self._bok_a) * (p - self._bok_b) * (p - self._bok_c)) ** 0.5
  34.  
  35. class Prostokąt(Kształt):
  36.     def __init__(self, nazwa, bok_a, bok_b):
  37.         super().__init__(nazwa)
  38.         self._bok_a = bok_a
  39.         self._bok_b = bok_b
  40.  
  41.     def pole(self):
  42.         return self._bok_a * self._bok_b
  43.  
  44. class Kwadrat(Prostokąt):
  45.     def __init__(self, nazwa, bok):
  46.         super().__init__(nazwa, bok, bok)
  47.  
  48. class TrójkątRównoboczny(Trójkąt):
  49.     def __init__(self, nazwa, bok):
  50.         super().__init__(nazwa, bok, bok, bok)
  51.  
  52. def main():
  53.     figury = [
  54.         Koło('Koło', 5),
  55.         Trójkąt('Trójkąt', 3, 4, 5),
  56.         Prostokąt('Prostokąt', 2, 3),
  57.         Kwadrat('Kwadrat', 4),
  58.         TrójkątRównoboczny('Trójkąt równoboczny', 6)
  59.     ]
  60.  
  61.     for figura in figury:
  62.         print(f'{figura.nazwa}: pole = {figura.pole()}')
  63.  
  64. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement