Informatika2-2021/CsütGyak06
A MathWikiből
A lap korábbi változatát látod, amilyen Pinterj (vitalap | szerkesztései) 2021. március 18., 01:04-kor történt szerkesztése után volt.
Tartalomjegyzék |
Feladatok
Komplex
A feladat az előadáson elkezdett Komplex osztályt befejezni:
class Komplex(object): def __init__(self, real, imaginary): self.re = real self.im = imaginary def __add__(self, k2): uj_re = self.re + k2.re uj_im = self.im + k2.im return Komplex(uj_re, uj_im) def __str__(self): s = "" s += str(self.re) s += " + " s += str(self.im) s += "i" return s k1 = Komplex(4, 3) k2 = Komplex(-2, 1) k3 = k1 + k2 print(k3)
- Valósítsuk meg a kivonás, szorzás és osztás műveleteket. (__sub__, __mul__, __truediv__) Az osztás előtt érdemes lehet a következő részt megoldani először.
- Valósítsuk meg a norm metódust, mely a komplex szám hosszát adja meg.
- Javítsuk ki a __str__ metódust, hogy szépen írja ki a számokat, pl:
2 - 4i 5i 2
Teszteléshez használhatjuk pl ezt a kódot, de írjunk saját teszteket is!
k1 = Komplex(4, 3) k2 = Komplex(-2, 1) k3 = Komplex(4, 1) print k1 + k2 print k1 - k3 print k2 * k1 print k3 / k1 print k1.norm()
Reservation
A következő feladatokban egy olyan rendszeren dolgozunk, ami egy moziban fogja nyomon követni a különböző emberek helyfoglalásait. Ehhez létre fogunk hozni egy Reservation
nevű osztályt, ami egy ember foglalását tárolja, és ezt az osztály ellátjuk minden szükséges metódussal a kényelmes használathoz.
Reservation_1
Ebben a feladatban hozzuk létre a konstruktort. A foglalás osztály két tagváltozót tartalmazzon majd, és ezek legyenek a konstruktor paraméterei is, ebben a sorrendben:- name, a mozi foglalás lefoglalójának neve
- seats, egy lista, ami az üléseket tartalmazza amiket name lefoglalt. Minden ülés egy karakterlánccal van leírva, pl. "E12"
Segítség
- Ne felejtsük el, hogy (mint minden metódusnál) a konstruktor definiálásakor az első paraméter a self legyen.
Reservation_2
Ebben a feladatban adjunk egy metódust a Reservation osztályhoz. A metódus neve legyen not_taken, és egy paramétere legyen (a self-en kívül):- lehetosegek, ami egy lista, ami lehetséges üléseket tartalmaz.
Segítség
- Ne felejtsük el, hogy az aktuális objektum foglalt helyeit a self referencia seats tagváltozóján keresztül érhetjük el.
Reservation_3
Ebben a feladatban kipróbáljuk, milyen használni az eddig megalkotott Reservation osztályt. Írjuk meg a reservation_3 nevű függvényt, aminek paraméterei:- foglalasok, egy lista, ami az éppen aktuális foglalásokat tartalmazza, Reservation típusú objektumok formájában
- osszes_ules, egy lista, az adott mozi terem összes ülését tartalmazza
Segítség
- Használjuk a Reservation osztály not_taken nevű metódusát.
Reservation_4
Ebben a feladatban olyan metódust írunk, ami módosítja az objektum tartalmát. Az eddigi Reservation osztályunkban hozzunk létre egy új metódust, aminek a neve change, és paramétere (a self-en kívül):- uj_helyek, egy lista, ami azt tartalmazza hogy mik a helyek amiket foglalni akar az illető a változtatás után.
Reservation_5
Most használjuk a Reservation objektumainkat kicsit bonyolultabb feladatra. Írjuk meg a reservation_5 nevű függvényt, aminek paraméterei:- foglalasok, egy lista, ami az éppen aktuális foglalásokat tartalmazza, Reservation típusú objektumok formájában
- osszes_ules, egy lista, az adott mozi terem összes ülését tartalmazza
- nev, egy karakterlánc, az éppen foglalni próbáló vendég neve
- darab, egy egész szám, hogy hány helyet szeretne lefoglalni
Segítség
- Használjuk ez előző feladatok megoldását