User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:fueggvenyek_modulok

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
tanszek:oktatas:muszaki_informatika:fueggvenyek_modulok [2026/02/19 20:09] – created szabomtanszek:oktatas:muszaki_informatika:fueggvenyek_modulok [2026/02/19 20:28] (current) szabom
Line 90: Line 90:
   - Listába teszi   - Listába teszi
   - Függvénnyel kiszámolja:   - Függvénnyel kiszámolja:
-  * az összegét +       * az összegét 
-  * az átlagát+       * az átlagát
   - Kiírja az eredményeket   - Kiírja az eredményeket
 <sxh python> <sxh python>
Line 195: Line 195:
   - Minden diákhoz több jegyet lehet felvinni listában.   - Minden diákhoz több jegyet lehet felvinni listában.
   - Függvényekkel:   - Függvényekkel:
-  * Egy függvény számolja ki a diákok átlagát tantárgyanként. +       * Egy függvény számolja ki a diákok átlagát tantárgyanként. 
-  * Egy függvény visszaadja a legjobb jegyet minden diákhoz. +       * Egy függvény visszaadja a legjobb jegyet minden diákhoz. 
-  * Egy függvény megmondja, melyik diákoknak van 1-es jegye.+       * Egy függvény megmondja, melyik diákoknak van 1-es jegye.
   - Külön set segítségével listázd az összes tantárgyat, amit az osztályban tanulnak.   - Külön set segítségével listázd az összes tantárgyat, amit az osztályban tanulnak.
   - Külön dict segítségével listázd, hogy hány diák tanul minden tantárgyat.   - Külön dict segítségével listázd, hogy hány diák tanul minden tantárgyat.
Line 278: Line 278:
  
 </sxh> </sxh>
 +
 +
 +----
 +==== Osztályok ====
 +
 +  * Osztály (class): Sablon/tervrajz objektumokhoz.
 +  * Objektum (instance): Konkrét példány az osztályból.
 +  * Attribútum: Objektum tulajdonsága (self.nev, self.ev).
 +  * Metódus: Objektumhoz tartozó függvény (def metodus(self): ...).
 +  * Konstruktor: __init__ – automatikusan meghívódik objektum létrehozásakor.
 +  * Öröklődés: Egy osztály átveszi más osztály tulajdonságait és metódusait.
 +  * Felülírás: Gyerek osztály felülírja a szülő metódusát.
 +
 +**Egyszerű példa:**
 +<sxh python>
 +class Auto:
 +    def __init__(self, marka, ev):
 +        self.marka = marka
 +        self.ev = ev
 +
 +    def bemutatkozik(self):
 +        print(f"Ez egy {self.marka} típusú autó, {self.ev}-es évjárat.")
 +
 +auto1 = Auto("Toyota", 2020)
 +auto1.bemutatkozik()
 +</sxh>
 +
 +**Öröklés:** 
 +<sxh python>
 +class Jarmu:
 +    def __init__(self, marka):
 +        self.marka = marka
 +
 +    def bemutatkozik(self):
 +        print(f"Jármű: {self.marka}")
 +
 +class Auto(Jarmu):
 +    def __init__(self, marka, ev):
 +        super().__init__(marka)
 +        self.ev = ev
 +
 +    def bemutatkozik(self):
 +        print(f"Autó: {self.marka}, évjárat: {self.ev}")
 +
 +auto2 = Auto("Audi", 2021)
 +auto2.bemutatkozik()
 +</sxh>
 +
 +**1. feladat:** Diák osztály
 +  * Attribútumok: nev, eletkor, jegyek (lista)
 +  * Metódusok: jegyet_hozzaad, atlag, legjobb_jegy
 +<sxh python>
 +class Diak:
 +    def __init__(self, nev, eletkor):
 +        self.nev = nev
 +        self.eletkor = eletkor
 +        self.jegyek = []
 +
 +    def jegyet_hozzaad(self, jegy):
 +        self.jegyek.append(jegy)
 +
 +    def atlag(self):
 +        if len(self.jegyek) == 0:
 +            return 0
 +        return sum(self.jegyek)/len(self.jegyek)
 +
 +    def legjobb_jegy(self):
 +        if len(self.jegyek) == 0:
 +            return None
 +        return max(self.jegyek)
 +
 +# Példa
 +diak = Diak("Anna", 16)
 +diak.jegyet_hozzaad(5)
 +diak.jegyet_hozzaad(4)
 +diak.jegyet_hozzaad(3)
 +
 +print(diak.nev, "átlaga:", diak.atlag())
 +print(diak.nev, "legjobb jegye:", diak.legjobb_jegy())
 +</sxh>
 +
 +2. feladat: Banki számla
 +  * Attribútumok: tulajdonos, egyenleg
 +  * Metódusok: betesz, kivesz, egyenleg_lekerdez
 +<sxh python>
 +class BankSzamla:
 +    def __init__(self, tulajdonos, egyenleg=0):
 +        self.tulajdonos = tulajdonos
 +        self.egyenleg = egyenleg
 +
 +    def betesz(self, osszeg):
 +        self.egyenleg += osszeg
 +
 +    def kivesz(self, osszeg):
 +        if osszeg <= self.egyenleg:
 +            self.egyenleg -= osszeg
 +        else:
 +            print("Nincs elég pénz!")
 +
 +    def egyenleg_lekerdez(self):
 +        return self.egyenleg
 +
 +# Példa
 +szamla = BankSzamla("Bence", 1000)
 +szamla.betesz(500)
 +szamla.kivesz(200)
 +print(szamla.tulajdonos, "egyenlege:", szamla.egyenleg_lekerdez())
 +</sxh>
 +
 +3. feladat: Állat öröklődés:
 +  * Szülő osztály: Allat (attribútum: nev)
 +  * Gyerek osztályok: Kutya, Macska (metódus: hangot_ad)
 +<sxh python>
 +class Allat:
 +    def __init__(self, nev):
 +        self.nev = nev
 +
 +class Kutya(Allat):
 +    def hangot_ad(self):
 +        print(f"{self.nev} ugat: Vau-vau!")
 +
 +class Macska(Allat):
 +    def hangot_ad(self):
 +        print(f"{self.nev} nyávog: Miau!")
 +
 +kutya = Kutya("Bodri")
 +macska = Macska("Cirmi")
 +kutya.hangot_ad()
 +macska.hangot_ad()
 +</sxh>
 +
 +**4. feladat:** Könyv osztály
 +  * Attribútumok: cim, szerzo, oldalszam
 +  * Metódus: bemutatkozik
 +<sxh python>
 +class Konyv:
 +    def __init__(self, cim, szerzo, oldalszam):
 +        self.cim = cim
 +        self.szerzo = szerzo
 +        self.oldalszam = oldalszam
 +
 +    def bemutatkozik(self):
 +        print(f"{self.cim} ({self.szerzo}), {self.oldalszam} oldal")
 +
 +konyv = Konyv("Python alapok", "Kovács Péter", 250)
 +konyv.bemutatkozik()
 +</sxh>
 +
 +5. feladat: Jármű osztály + Auto és Motor
 +  * Szülő: Jarmu (típus, ev)
 +  * Gyerek: Auto, Motor
 +  * Metódus: bemutatkozik
 +<sxh python>
 +class Jarmu:
 +    def __init__(self, tipus, ev):
 +        self.tipus = tipus
 +        self.ev = ev
 +
 +class Auto(Jarmu):
 +    def bemutatkozik(self):
 +        print(f"Autó: {self.tipus}, évjárat: {self.ev}")
 +
 +class Motor(Jarmu):
 +    def bemutatkozik(self):
 +        print(f"Motor: {self.tipus}, évjárat: {self.ev}")
 +
 +auto = Auto("BMW", 2022)
 +motor = Motor("Yamaha", 2021)
 +auto.bemutatkozik()
 +motor.bemutatkozik()
 +</sxh>
 +
tanszek/oktatas/muszaki_informatika/fueggvenyek_modulok.1771531793.txt.gz · Last modified: 2026/02/19 20:09 by szabom