Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #skonczone
- from abc import ABC, abstractmethod
- class Kształt(ABC):
- def __init__(self, nazwa):
- self._nazwa = nazwa
- @property
- def nazwa(self):
- return self._nazwa
- @abstractmethod
- def pole(self):
- pass
- class Koło(Kształt):
- def __init__(self, nazwa, promien):
- super().__init__(nazwa)
- self._promien = promien
- def pole(self):
- return 3.14 * self._promien ** 2
- class Trójkąt(Kształt):
- def __init__(self, nazwa, bok_a, bok_b, bok_c):
- super().__init__(nazwa)
- self._bok_a = bok_a
- self._bok_b = bok_b
- self._bok_c = bok_c
- def pole(self):
- p = (self._bok_a + self._bok_b + self._bok_c) / 2
- return (p * (p - self._bok_a) * (p - self._bok_b) * (p - self._bok_c)) ** 0.5
- class Prostokąt(Kształt):
- def __init__(self, nazwa, bok_a, bok_b):
- super().__init__(nazwa)
- self._bok_a = bok_a
- self._bok_b = bok_b
- def pole(self):
- return self._bok_a * self._bok_b
- class Kwadrat(Prostokąt):
- def __init__(self, nazwa, bok):
- super().__init__(nazwa, bok, bok)
- class TrójkątRównoboczny(Trójkąt):
- def __init__(self, nazwa, bok):
- super().__init__(nazwa, bok, bok, bok)
- def main():
- figury = [
- Koło('Koło', 5),
- Trójkąt('Trójkąt', 3, 4, 5),
- Prostokąt('Prostokąt', 2, 3),
- Kwadrat('Kwadrat', 4),
- TrójkątRównoboczny('Trójkąt równoboczny', 6)
- ]
- for figura in figury:
- print(f'{figura.nazwa}: pole = {figura.pole()}')
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement