Informatika2-2021/CsütGyak06
A MathWikiből
(Változatok közti eltérés)
(→Reservation) |
(→Reservation) |
||
53. sor: | 53. sor: | ||
=Reservation= | =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 <code>Reservation</code> 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 == | == Reservation_1 == | ||
Ebben a feladatban hozzuk létre a <b>konstruktort</b>. A foglalás osztály két tagváltozót tartalmazzon majd, és ezek legyenek a konstruktor paraméterei is, ebben a sorrendben: <ul> <li><b>name</b>, a mozi foglalás lefoglalójának neve</li> <li><b>seats</b>, egy lista, ami az üléseket tartalmazza amiket <i>name</i> lefoglalt. Minden ülés egy karakterlánccal van leírva, pl. "E12"</li> </ul> Egyelőre csak elég a konstruktort megírni, semmi más nem kell az osztályba még. <h4>Segítség</h4> <ul> <li>Ne felejtsük el, hogy (mint minden metódusnál) a konstruktor definiálásakor az első paraméter a <i>self</i> legyen.</li> </ul> | Ebben a feladatban hozzuk létre a <b>konstruktort</b>. A foglalás osztály két tagváltozót tartalmazzon majd, és ezek legyenek a konstruktor paraméterei is, ebben a sorrendben: <ul> <li><b>name</b>, a mozi foglalás lefoglalójának neve</li> <li><b>seats</b>, egy lista, ami az üléseket tartalmazza amiket <i>name</i> lefoglalt. Minden ülés egy karakterlánccal van leírva, pl. "E12"</li> </ul> Egyelőre csak elég a konstruktort megírni, semmi más nem kell az osztályba még. <h4>Segítség</h4> <ul> <li>Ne felejtsük el, hogy (mint minden metódusnál) a konstruktor definiálásakor az első paraméter a <i>self</i> legyen.</li> </ul> |
A lap jelenlegi, 2021. március 18., 01:04-kori változata
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