Zadania do lekcji 4

Zadanie 401

Zdefiniuj klasę Osoba oraz dwie klasy potomne Kobieta i Mezczyzna. Wszystkie 3 klasy powinny mieć metodę plec zwracającą płeć obiektu. Dla mężczyzny powinna zwracać “mezczyzna” a dla kobiety napis “kobieta”. Dla klasy Osoba funkcja ta powinna zwracać wartość nieokreśloną.

Uwaga 1. Użyj dziedziczenia.

Uwaga 2. Aby nadpisać metodę z klasy nadrzędnej wystarczy w potomku zdefiniować ją po raz kolejny.

Zadanie 402

Zbuduj i zaprogramuj klasę Wektor. Klasa ta powinna obsługiwać działania na wektorach w przestrzeni trójwymiarowej, czyli wektory typu

\[w = [x, y, z]\]

Zaprogramuj dodawanie, odejmowanie, obliczanie długości, oraz kosinusa kąta pomiędzy dwoma wektorami. Jeżeli nie wiesz jak to zrobić przejdź do lekcji nr 3, do ActiveCode 15, gdzie znajdziesz rozwiązanie. Wykorzystaj powyższy szkielet, i zacznij budować swoje funkcje. Wykorzystaj zmienną self do odwoływania się do odpowiednich atrybutów klasy. Jak już wiesz, możesz też łatwo wykorzystać inne funkcje dostępne w danej klasie. Zacznij od zbudowania funkcji iloczyn oraz dlugosc. Tym razem nie muszą być już zagnieżdżone. Zacznij tak

class Wektor:
    """klasa opisujaca wektory"""

    def __init__(self, x, y, z):
        self.x = x
        self.y = y
        self.z = z

    ...

w1 = Wektor([1, 2, 3])
w2 = Wektor([-0.3, 3.1415, -2])
Zadanie 403
Zbuduj klasę Wektor2D która będzie dziedziczyła własności klasy Wektor, ale ograniczała się do opisu wektorów na płaszczyźnie. W tym przypadku wystarczy aby jedna z koordynat była równa 0 dla wszystkich obiektów nowej klasy.
Zadanie 404

Skonstruuj klasę PojazdMechaniczny. Klasa powinna mieć następującą funkcjonalność

  • rodzaj pojazdu (nazwa),
  • ilość kół,
  • rodzaj paliwa,
  • masa,
  • moc silnika,
  • ilość miejsc siedzących,
  • ... i co jeszcze przyjdzie ci do głowy.
Zadanie 405

Skonstruuj klasę SamochodOsobowy dziedziczący z klasy PojazdMechaniczny. Część pól będzie trzeba podać “na sztywno”. Dodaj też pola

  • marka
  • cena
  • rocznik
  • ... i co jeszcze przyjdzie ci do głowy.
Zadanie 406

Napisz abstrakcyjną klasę Figura2D. Nastepnie utwórz hierarchię klas służącą do przechowywania informacji o figurach geometrycznych (kwadrat, prostokąt, koło, trójkąt, ...) pozwalającą na wykonywanie następujących operacji (tam gdzie to możliwe). Tym razem może lepiej będzie inicjalizować obiekty za pomocą listy / krotki.

  • obliczanie obwodu i pola,
  • obliczanie długości najdłuższego boku,
  • obliczanie przekątnych,
  • obliczanie łuków, cięciw,
  • koło: obliczanie pola wycinka koła,
  • obliczanie promienia okręgu opisanego na figurze,
  • wypisywanie informacji.
Next Section - Lekcja 5. Podejście algorytmiczne