
33_Halmaz_típus
33_Halmaz_típus

- Az osztály tanulói A és B szakkörre járnak. Határozzuk meg, hogy kik járnak mindkét szakkörre!
A feladatot úgy oldjuk meg – a halmaz adattípus alkalmazásával_, hogy nem kell a neveket begépelni, elég a tínulók sorszámát megadni.
A tanulók nevét a nevsor karakterlánc típusú vektorban, konstansként adajuk meg. A halmaz típusú a és b változókat a set<char> a, b; formában deklaráljuk. A nevsor[letszam] intervallum adattípussal az alaphalmazt adtuk meg, azt, hogy milyen elemei lehetnek az a ill. a b halmaz típusú változóknak.
A halmaz elemeinek, azaz a tanuló sorszámának a beolvasása után a halmazhoz "hozzáadjuk" a sorszam halmaz ttípusú elemet.
FUGGVENYEK_VIZSGALATA.py
nevsor = ["Laci", "Kati", "Joska", "Eva", "Zsoka", "Pali", "Bela", "Joli"]
a = set()
b = set()
# A. szakkör létszámának bekérése és adatok gyűjtése
n = int(input("A. szakkor letszama: "))
for i in range(1, n + 1):
print(f"{i}. adat")
sorszam = int(input())
a.add(sorszam)
# B. szakkör létszámának bekérése és adatok gyűjtése
n = int(input("B. szakkor letszama: "))
for i in range(1, n + 1):
print(f"{i}. adat")
sorszam = int(input())
b.add(sorszam)
# Nevek megjelenítése, amelyek mindkét szakkör tagjai
print("Mindket szakkor tagjai: ", end="")
for i in range(1, len(nevsor) + 1):
if i in a and i in b:
print(nevsor[i - 1], end=" ")
"Halmazok nyomában: Az A és B szakkör rejtélye"
Egy békés kis faluban, ahol a gyerekek mindig izgatottan tanultak, az iskola tanítónője, Nóra, egy érdekes feladattal állt elő az osztály számára. Azt kérte, hogy derítsék ki, kik járnak az A és B szakkörre is. Az osztály tanulói izgatottan dolgozni kezdtek.
Júlia, a leglelkesebb diák, elővette laptopját, és így szólt: "Írjunk egy programot, amely segít megoldani a kérdést!" Elkezdte gépelni:
nevsor = ["Laci", "Kati", "Joska", "Eva", "Zsoka", "Pali", "Bela", "Joli"]
"Ez a lista tartalmazza az osztályunk összes tagját" – magyarázta. "A neveket a sorszámuk alapján fogjuk azonosítani."
a = set()
b = set()
"Létrehozunk két üres halmazt, az egyik az A szakkör, a másik a B szakkör számára" – tette hozzá Júlia.
Ezután így folytatta:
n = int(input("A. szakkor letszama: "))
for i in range(1, n + 1):
print(f"{i}. adat")
sorszam = int(input())
a.add(sorszam)
"Ezzel a kóddal az A szakkör létszámát kérjük be, és a diákok sorszámait hozzáadjuk az a halmazhoz" – magyarázta Júlia, miközben begépelte a sorokat.
Folytatta a B szakkörrel:
n = int(input("B. szakkor letszama: "))for i in range(1, n + 1): print(f"{i}. adat") sorszam = int(input()) b.add(sorszam)
"Hasonlóan dolgozunk a B szakkör adataival" – mondta lelkesen.
Végül megmutatta a megoldást:
print("Mindket szakkor tagjai: ", end="")for i in range(1, len(nevsor) + 1): if i in a and i in b: print(nevsor[i - 1], end=" ")
"Ez az utolsó rész kiírja azok nevét, akik mindkét szakkör tagjai" – mosolygott Júlia.
Amikor a program futni kezdett, a gyerekek sorra megadták a szakkörök adatait. Az eredmény gyorsan megjelent a képernyőn: "Mindkét szakkör tagjai: Kati Joska". Az osztály tapsban tört ki, és Nóra tanítónő büszkén nézett rájuk.
"Látjátok, a programozás és a halmazok használata milyen egyszerűvé tette ezt a feladatot!" – mondta. Ettől a naptól kezdve a gyerekek rendszeresen használták Júlia programját, hogy bármilyen hasonló problémát könnyedén megoldjanak.
