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.