User Tools

Site Tools


tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
tanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok [2026/02/19 19:52] szabomtanszek:oktatas:muszaki_informatika:adatszerkezetek_ii._dict_set_gyakorlo_feladatok [2026/02/19 19:56] (current) szabom
Line 128: Line 128:
 | set.issubset(other)              | Részhalmaz-e                                 | s.issubset({1,2,3})            | | set.issubset(other)              | Részhalmaz-e                                 | s.issubset({1,2,3})            |
 | set.issuperset(other)            | Felülhalmaz-e                                | s.issuperset({1})              | | set.issuperset(other)            | Felülhalmaz-e                                | s.issuperset({1})              |
- 
  
  
Line 134: Line 133:
 ==== Összefoglaló feladatok ==== ==== Összefoglaló feladatok ====
  
-Írj programot, ami:+**1. feladat** Írj programot, ami:
   * Bekér 5 nevet   * Bekér 5 nevet
   * Minden névhez bekér egy pontszámot   * Minden névhez bekér egy pontszámot
Line 158: Line 157:
 </sxh> </sxh>
  
 +**2. feladat:** Van egy dict, ahol a kulcs a diák neve, az érték egy set az általa elvégzett tantárgyak jegyeivel.
 +  * Adj hozzá egy új tantárgyat minden diáknak
 +  * Ellenőrizd, hogy van-e 5-ös jegye minden diáknak
 +  * Számold meg, hány diák kapott 1-es jegyet
 <sxh python> <sxh python>
 +diakok = {
 +    "Anna": {5, 4, 3},
 +    "Bence": {2, 3, 5},
 +    "Csaba": {1, 2, 3}
 +}
  
-</sxh>+# Új tantárgy 4-es jeggyel minden diáknak 
 +for nev, jegyek in diakok.items(): 
 +    jegyek.add(4)
  
-<sxh python>+# Ellenőrzés: van-e 5-ös jegy 
 +for nev, jegyek in diakok.items(): 
 +    if 5 in jegyek: 
 +        print(f"{nev} kapott 5-öst")
  
 +# 1-es jegyek száma
 +egyessel = sum(1 in jegyek for jegyek in diakok.values())
 +print("1-es jegyet kapott diákok száma:", egyessel)
 </sxh> </sxh>
  
 +**3. feladat:**  Van egy bolt dict-ben a termékek és mennyiségek formájában.
 +  * Egy új szállítmány érkezik egy másik dict-ből → frissítsd a raktárt
 +  * Távolítsd el azokat a termékeket, amelyek elfogytak (0)
 +  * Írd ki a teljes készletet 
 <sxh python> <sxh python>
 +raktar = {"alma": 10, "korte": 5, "banan": 0}
 +szallitas = {"alma": 5, "banan": 7, "narancs": 3}
  
-</sxh> +# Raktár frissítése 
-<sxh python>+for termek, db in szallitas.items(): 
 +    raktar[termek] = raktar.get(termek, 0) + db
  
 +# Elfogyott termékek törlése
 +torlendo = [k for k,v in raktar.items() if v == 0]
 +for k in torlendo:
 +    raktar.pop(k)
 +
 +print("Aktuális készlet:", raktar)
 </sxh> </sxh>
  
 +**4. feladat:** Adott két set a bolt A és B kínálatával.
 +  * Írd ki, mely termékek vannak mindkét boltban (metszet)
 +  * Melyek vannak csak az egyik boltban (szimmetrikus különbség)
 +  * Egyesítsd a készleteket 
 <sxh python> <sxh python>
 +boltA = {"alma", "banan", "narancs"}
 +boltB = {"korte", "banan", "narancs", "szilva"}
  
 +print("Mindkettőben:", boltA.intersection(boltB))
 +print("Csak az egyikben:", boltA.symmetric_difference(boltB))
 +boltA.update(boltB)
 +print("Összes termék:", boltA)
 </sxh> </sxh>
  
 +**5. feladat:**Egy dict dolgozó neve → set projektek.
 +  * Adj hozzá új projektet minden dolgozónak
 +  * Töröld azokat a projekteket, amelyeken senki sem dolgozik
 +  * Írd ki a dolgozónkénti projektlistát 
 <sxh python> <sxh python>
 +dolgozok = {
 +    "Eva": {"A", "B"},
 +    "Gabor": {"B", "C"},
 +    "Ilona": {"C"}
 +}
  
 +# Új projekt D mindenkihez
 +for projektek in dolgozok.values():
 +    projektek.add("D")
 +
 +# Ellenőrizzük, mely projektek senkinél sem szerepelnek
 +osszes = set().union(*dolgozok.values())
 +nem_aktiv = {"E", "F"} - osszes
 +print("Nem aktív projektek:", nem_aktiv)
 +
 +print("Dolgozók projektjei:")
 +for nev, projektek in dolgozok.items():
 +    print(nev, ":", projektek)
 </sxh> </sxh>
  
 +6. feladat: Adott egy szöveg string.
 +  * Készíts dict-et, ahol a kulcs a szó, az érték a darabszám
 +  * Távolítsd el a ritkán előforduló szavakat (pl. egyszer előforduló)
 +  * Írd ki a leggyakoribb szót
 <sxh python> <sxh python>
 +szoveg = "python lista ciklus python python adatszerkezet lista ciklus"
  
 +szavak = szoveg.split()
 +szavak_szam = {}
 +
 +for szo in szavak:
 +    szavak_szam[szo] = szavak_szam.get(szo, 0) + 1
 +
 +# Ritka szavak törlése
 +for szo in list(szavak_szam.keys()):
 +    if szavak_szam[szo] == 1:
 +        szavak_szam.pop(szo)
 +
 +# Leggyakoribb szó
 +leggyakoribb = max(szavak_szam, key=szavak_szam.get)
 +print("Leggyakoribb szó:", leggyakoribb)
 +print("Szó előfordulások:", szavak_szam)
 </sxh> </sxh>
 +
  
  
tanszek/oktatas/muszaki_informatika/adatszerkezetek_ii._dict_set_gyakorlo_feladatok.1771530747.txt.gz · Last modified: 2026/02/19 19:52 by szabom