Informatika2-2013/Hazi10

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „A házifeladat, hogy megvalósítsátok azon osztályokat melyek megjelennek ezen a diagrammon: http://math.bme.hu/~kkovacs/info2/uml.jpg A nyilak az õsöket jelzik, …”)
 
 
(egy szerkesztő 4 közbeeső változata nincs mutatva)
4. sor: 4. sor:
  
 
A következõkben leírom részletesebben mi mit csinál:
 
A következõkben leírom részletesebben mi mit csinál:
* '''Gerincesek''':
+
* ''Gerincesek'':
 
** '''eletben''': True/False érték, amikor létrejön egy gerinces ez alapból True
 
** '''eletben''': True/False érték, amikor létrejön egy gerinces ez alapból True
 
** '''sebesseg''': az állat maximális sebessége, ezt meg kell adnunk az állat létrejöttekor (így minden leszármozottjában is)
 
** '''sebesseg''': az állat maximális sebessége, ezt meg kell adnunk az állat létrejöttekor (így minden leszármozottjában is)
* '''Halak'''
+
* ''Halak''
 
** '''uszonyokSzama''': a hal uszonyainak a száma, létrejöttekor meg kell adni
 
** '''uszonyokSzama''': a hal uszonyainak a száma, létrejöttekor meg kell adni
* '''Emlõsök'''
+
* ''Emlõsök''
 
** '''labakSzama''': az emlõs lábainak a száma, létrejöttekor meg kell adni, de a leszármazottjaiban nem feltétlen
 
** '''labakSzama''': az emlõs lábainak a száma, létrejöttekor meg kell adni, de a leszármazottjaiban nem feltétlen
* '''Madarak'''
+
* ''Madarak''
 
** '''koltozo''': True/False érték, True, ha a madár költözõmadár, False különben
 
** '''koltozo''': True/False érték, True, ha a madár költözõmadár, False különben
* '''Morgóhal'''
+
* ''Morgóhal''
 
** '''morog''': kiírja a kimenetre, hogy "morrmorr"
 
** '''morog''': kiírja a kimenetre, hogy "morrmorr"
 
** '''szarnyakSzama''': a hal szárnyainak a száma, legyen egyenlõ az uszonyainak a számával
 
** '''szarnyakSzama''': a hal szárnyainak a száma, legyen egyenlõ az uszonyainak a számával
* '''Kõhal'''
+
* ''Kõhal''
 
** '''gyilkol''': egyetlen paramétere egy másik gerinces állat (nem kell ellenõrizni, hogy tényleg az-e), beállítja a másik állat '''eletben''' adattagját False-ra
 
** '''gyilkol''': egyetlen paramétere egy másik gerinces állat (nem kell ellenõrizni, hogy tényleg az-e), beállítja a másik állat '''eletben''' adattagját False-ra
 
** '''tuskekSzama''': a hal tüskéinek a száma, meg kell adni létrejöttekor
 
** '''tuskekSzama''': a hal tüskéinek a száma, meg kell adni létrejöttekor
* '''Pocok'''
+
* ''Pocok''
 
** '''pofazacsko''': az állat pofazacskójában található kaja darabszáma, létrejöttekor 0
 
** '''pofazacsko''': az állat pofazacskójában található kaja darabszáma, létrejöttekor 0
 
** '''raktaroz''': növeli eggyel a pofazacskója tartalmát
 
** '''raktaroz''': növeli eggyel a pofazacskója tartalmát
* '''Macska'''
+
* ''Macska''
 
** '''vadasz''': bemenete egy másik gerinces állat (mint a gyilkol), és a másik állat '''eletben''' adattagját False-ra állítja, feltéve, hogy a másik állat nem Kõhal, mert ebben az esetben a saját '''eletben''' adattagját állítja False-ra (12. gyakról: type(allat) == Kohal paranccsal tudjatjuk meg, hogy az allat objektum kõhal-e)
 
** '''vadasz''': bemenete egy másik gerinces állat (mint a gyilkol), és a másik állat '''eletben''' adattagját False-ra állítja, feltéve, hogy a másik állat nem Kõhal, mert ebben az esetben a saját '''eletben''' adattagját állítja False-ra (12. gyakról: type(allat) == Kohal paranccsal tudjatjuk meg, hogy az allat objektum kõhal-e)
 
** '''haziMacska''': True/False érték, True, ha az adott macska házimacska, False egyébként, létrejöttekor meg kell adni
 
** '''haziMacska''': True/False érték, True, ha az adott macska házimacska, False egyébként, létrejöttekor meg kell adni
* '''Varju'''
+
* ''Varju''
 
** '''karog''': kiírja a kimenetre, hogy "karkar"
 
** '''karog''': kiírja a kimenetre, hogy "karkar"
 
** '''theMorrigan''': True/False érték, True, ha az adott varjú a [http://en.wikipedia.org/wiki/Morrigan Morrigan], False különben, létrejöttekor meg kell adni, de alapértelmezetten a paraméter értéke False (ha nem adjuk meg akkor alapból False lesz)
 
** '''theMorrigan''': True/False érték, True, ha az adott varjú a [http://en.wikipedia.org/wiki/Morrigan Morrigan], False különben, létrejöttekor meg kell adni, de alapértelmezetten a paraméter értéke False (ha nem adjuk meg akkor alapból False lesz)
* '''Jégmadár'''
+
* ''Jégmadár''
 
** '''halaszo''': True/False érték, tud-e halászni az adott jégmadár vagy sem, létrejöttekor meg kell adni
 
** '''halaszo''': True/False érték, tud-e halászni az adott jégmadár vagy sem, létrejöttekor meg kell adni
 
** '''vadasz''': bemenete egy másik gerinces állat (mint a macska vadasz-a), de csak akkor állítja False-ra a másik állat '''eletben''' adattagját, ha a másik állat egy Morgóhal és õ magának a '''halaszo''' adattagja True
 
** '''vadasz''': bemenete egy másik gerinces állat (mint a macska vadasz-a), de csak akkor állítja False-ra a másik állat '''eletben''' adattagját, ha a másik állat egy Morgóhal és õ magának a '''halaszo''' adattagja True
 +
 +
A Macska és Pocok-nak legyen létrejöttkor mindig 4 lába, ezt ne kelljen nekik megadni.
 +
 +
Értelemszerûen, minden leszármazott hívja meg az õsosztály __init__-jét (a 12. gyakorlaton tanult super függvénnyel). 
 +
 +
!!! SPOILER !!!
 +
 +
Egy példa osztály (ez is legyen azért benne):
 +
 +
<python>
 +
class Macska(Emlos):
 +
    def __init__(self, sebesseg, hazi):
 +
        super(Macska, self).__init__(sebesseg, 4) # a 4 a labakSzama, mivel itt az Emlosok osztaly __init__-jét hívom meg
 +
        self.haziMacska = hazi
 +
    def vadasz(self, masik):
 +
        if type(masik) == Kohal:
 +
            self.eletben = False
 +
        else:
 +
            masik.eletben = False
 +
</python>

A lap jelenlegi, 2013. május 15., 23:13-kori változata

A házifeladat, hogy megvalósítsátok azon osztályokat melyek megjelennek ezen a diagrammon: http://math.bme.hu/~kkovacs/info2/uml.jpg

A nyilak az õsöket jelzik, tehát pl a Madarak osztály az Emlosok-bõl örököl (az ékezeteket vegyétel úgy hogy nincsnek ott a képen). A cellákban fekete betûvel van az osztály neve, kékkel az adattagok, és zölddel a metódusok.

A következõkben leírom részletesebben mi mit csinál:

  • Gerincesek:
    • eletben: True/False érték, amikor létrejön egy gerinces ez alapból True
    • sebesseg: az állat maximális sebessége, ezt meg kell adnunk az állat létrejöttekor (így minden leszármozottjában is)
  • Halak
    • uszonyokSzama: a hal uszonyainak a száma, létrejöttekor meg kell adni
  • Emlõsök
    • labakSzama: az emlõs lábainak a száma, létrejöttekor meg kell adni, de a leszármazottjaiban nem feltétlen
  • Madarak
    • koltozo: True/False érték, True, ha a madár költözõmadár, False különben
  • Morgóhal
    • morog: kiírja a kimenetre, hogy "morrmorr"
    • szarnyakSzama: a hal szárnyainak a száma, legyen egyenlõ az uszonyainak a számával
  • Kõhal
    • gyilkol: egyetlen paramétere egy másik gerinces állat (nem kell ellenõrizni, hogy tényleg az-e), beállítja a másik állat eletben adattagját False-ra
    • tuskekSzama: a hal tüskéinek a száma, meg kell adni létrejöttekor
  • Pocok
    • pofazacsko: az állat pofazacskójában található kaja darabszáma, létrejöttekor 0
    • raktaroz: növeli eggyel a pofazacskója tartalmát
  • Macska
    • vadasz: bemenete egy másik gerinces állat (mint a gyilkol), és a másik állat eletben adattagját False-ra állítja, feltéve, hogy a másik állat nem Kõhal, mert ebben az esetben a saját eletben adattagját állítja False-ra (12. gyakról: type(allat) == Kohal paranccsal tudjatjuk meg, hogy az allat objektum kõhal-e)
    • haziMacska: True/False érték, True, ha az adott macska házimacska, False egyébként, létrejöttekor meg kell adni
  • Varju
    • karog: kiírja a kimenetre, hogy "karkar"
    • theMorrigan: True/False érték, True, ha az adott varjú a Morrigan, False különben, létrejöttekor meg kell adni, de alapértelmezetten a paraméter értéke False (ha nem adjuk meg akkor alapból False lesz)
  • Jégmadár
    • halaszo: True/False érték, tud-e halászni az adott jégmadár vagy sem, létrejöttekor meg kell adni
    • vadasz: bemenete egy másik gerinces állat (mint a macska vadasz-a), de csak akkor állítja False-ra a másik állat eletben adattagját, ha a másik állat egy Morgóhal és õ magának a halaszo adattagja True

A Macska és Pocok-nak legyen létrejöttkor mindig 4 lába, ezt ne kelljen nekik megadni.

Értelemszerûen, minden leszármazott hívja meg az õsosztály __init__-jét (a 12. gyakorlaton tanult super függvénnyel).

!!! SPOILER !!!

Egy példa osztály (ez is legyen azért benne):

class Macska(Emlos):
    def __init__(self, sebesseg, hazi):
        super(Macska, self).__init__(sebesseg, 4) # a 4 a labakSzama, mivel itt az Emlosok osztaly __init__-jét hívom meg
        self.haziMacska = hazi
    def vadasz(self, masik):
        if type(masik) == Kohal:
            self.eletben = False
        else:
            masik.eletben = False
Személyes eszközök