Zadania do lekcji 4¶
- Zadanie 401
Zdefiniuj klasę
Osoba
oraz dwie klasy potomneKobieta
iMezczyzna
. Wszystkie 3 klasy powinny mieć metodęplec
zwracającą płeć obiektu. Dla mężczyzny powinna zwracać “mezczyzna” a dla kobiety napis “kobieta”. Dla klasyOsoba
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 funkcjiiloczyn
orazdlugosc
. Tym razem nie muszą być już zagnieżdżone. Zacznij takclass 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 klasyWektor
, ale ograniczała się do opisu wektorów na płaszczyźnie. W tym przypadku wystarczy aby jedna z koordynat była równa0
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 klasyPojazdMechaniczny
. 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.