You are on page 1of 14

Halmazok

Készítette Ipcsics Csilla


Tulajdonságai
 Halmaz az adott tulajdonsággal rendelkező dolgok összessége.
 A halmazhoz tartozó dolgokat a halmaz elemeinek nevezzük.
 Bármely elemről el tudjuk dönteni, hogy hozzátartozik-e a halmazhoz.
 A halmaz nem tartalmaz ismétlődő elemeket.
 Az üres halmaz egyetlen elemmel sem rendelkezik.
 A halmaz elemeihez nem rendelünk sorrendet.
 A halmazok között műveleteket végezhetünk:
◦ Két halmaz uniója azokból az elemekből áll, melyek legalább az egyik halmazban benne vannak.
◦ Két halmaz metszete a közös elemeikből tevődik össze.
◦ A különbségképzés során az egyik halmazból elhagyjuk azokat az elemeket, melyek a másik
halmazban is benne vannak.
Új halmaz létrehozása
Rendezetlen Rendezett
Dim változónév As Hashset(Of típus) Dim változónév As SortedSet(Of típus)
változónév = New HashSet(Of típus)[Kollekció] változónév = New SortedSet(Of típus)
[Kollekció]

ahol a kollekció helyére például tömböt, listát vagy bármilyen, felsoroló objektumot írhatunk.
Megadása esetén a program átmásolja a halmazba a kollekció elemeit, kihagyva az ismétlődéseket.
Példa1
Dim Halmaz As HashSet(Of Integer)
Halmaz = New HashSet(Of Integer)  üres

Példa2
Dim tömb() As Integer = {1, 2, 3, 4, 5, 1}
Dim Halmaz2 As HashSet(Of Integer)
Halmaz2 = New HashSet(Of Integer)(tömb)  1, 2, 3, 4, 5
Halmaz metódusok

Dim tömb() As Integer = {1, 5, 3, 2, 7}


Dim Halmaz5 As HashSet(Of Integer)
Halmaz5 = New HashSet(Of Integer)(tömb)
Console.WriteLine("Halmaz elemeinek száma: " & Halmaz5.Count)
Console.WriteLine("Halmaz elemeinek összege: " & Halmaz5.Sum)
Console.WriteLine("Halmaz elemeinek átlaga: " & Halmaz5.Average)
Console.WriteLine("Halmaz legnagyobb eleme: " & Halmaz5.Max)
Console.WriteLine("Halmaz legkissebb eleme: " & Halmaz5.Min)
Console.WriteLine("Halmaz elemeinek összege: " & Halmaz5.Sum)
Console.ReadKey()
Halmazok- feladat 1.
 Készítsünk programot, ahol a halmaz műveleteket nézzük
meg!
 Indulásra hozzon létre 2 halmazt!
 A halmaz elemei 1-5-ig
 B halmaz elemei: 6-13-ig
 Majd írja ki a halmazok elemszámát,
s elemeit!
Tömb beletétele a halmazba, s az elemek
kiíratása

Dim tömb() As Integer = {1, 2, 3, 4, 5}


Dim Halmaz2 As HashSet(Of Integer)
Halmaz2 = New HashSet(Of Integer)(tömb)
For i = 0 To Halmaz2.Count - 1
TextBox1.Text &= Halmaz2(i) & ", "
Next
Elem hozzáadása
Dim Halmaz As HashSet(Of Integer)
Dim ÚjElem As Integer
Halmaz = New HashSet(Of Integer)
For I = 1 To 5
ÚjElem = InputBox("Kérek egy számot!")
Halmaz.Add(ÚjElem)
Next
TextBox1.Text &= "Halmaz elemeinek száma: " & Halmaz.Count & vbNewLine
TextBox1.Text &= " Halmaz elemei:"
For i = 0 To Halmaz.Count - 1
TextBox1.Text &= Halmaz(i) & ", " ?
Next
Halmaz tartalmazza?
 Contains(elem) True, ha a halmaz tartalmazza a megadott
elemet, egyébként pedig False. A futásidő független az elemszámtól!

Példa:
ÚjEle=InputBox("Új elem!")
If Not Halmaz3.Contains(ÚjElem) Then
Halmaz3.Add(ÚjElem)
End If
Elemek törlése
Egy halmazelemet az objektum Remove Dim tömb() As Integer = {1, 2, 3, 4, 5}
metódusával törölhetünk a halmazból. Dim Halmaz4 As HashSet(Of Integer)
Ha a megadott elem nincs benne a halmazban, Dim KiElem As Integer
akkor nem történik semmi. Halmaz4 = New HashSet(Of Integer)(tömb)

Az sem okoz hibát, ha üres halmazból akarunk TextBox1.Text = ""

kivenni egy elemet. TextBox1.Text &= "Halmaz elemeinek száma: " & Halmaz4.Count
TextBox1.Text &= " Halmaz elemei:"
A halmaz összes elemét a Clear
For i = 0 To Halmaz4.Count - 1
metódussal törölhetjük. TextBox1.Text &= Halmaz4(i) & ", "
Next
Iterátoros ciklus: Az iterátor sorra felveszi TextBox1.Text &= vbNewLine & vbNewLine
a tömbelemek értékét. KiElem = InputBox("Melyik elemet vegyem ki? ")
For Each iterátor In {tömb|halmaz} Halmaz4.Remove(KiElem)
utasítások TextBox1.Text &= "Halmaz elemeinek száma: " & Halmaz4.Count
TextBox1.Text &= " Halmaz elemei:"
Next
For Each Elem In Halmaz4 'For i = 0 To Halmaz4.Count - 1
TextBox1.Text &= Elem & ", "
Next
Halmazok- feladat 2.
 Kérjünk be egy értéket, s tegyük bele az A halmazba!

 Kérj be egy újabb elemet, s nézd meg, hogy tartalmazza-e?

 Kérj be egy elemet, majd törölje, ha tartalmazza!


Feladat 3.
A resztvevok.txt állomány
egy táborban résztvevők
életkorát tartalmazza!
A táborban maximum
500-an jelentkezhetnek.
Készíts programot tábor néven, mely megadja a következő adatokat:
 Hány diák vett részt a táborban?
 Milyen életkorú diákok vettek részt a táborban? Sorolja fel vesszővel
elválasztva!
 Melyik korosztályból hányan vettek részt?
Megszámolni
1
1. Halmaz első elemét
3 megszámolja, hányszor
1 2 fordul elő a tömbben!
2 5 2. Halmaz második elemét
1 megszámolja, hányszor
3 3
fordul elő a tömbben!
3. …
4 4
5 2
1
2
5
5
4
4
Feladat 4.
 A dobás.txt állomány egy kockadobássorozat elemeit
tartalmazza! Maximum 30 dobást tartalmazhat a fájl!
 Melyik számot nem dobták?

 Megtudnád oldani, hogy ha minden számot dobtak, akkor azt


írja ki, hogy minden számot dobtak!
Házi feladat Kirándulás
Készíts programot kirándulás néven!
 1. Olvasd be az program.txt állományt egy program tömbbe!
Tudjuk, hogy az állomány maximum 15 adatot tartalmaz!
 2. Írasd ki a beolvasott adatok számát!
 3. Írasd ki a legrövidebb és a leghosszabb program idejét, s
határozd meg ezt percben is. Idő óra : perc alak, így szétszedhető!
 4. Kérj be egy programot, s írd ki, hogy szerepe, illetve nem
szerepel a programok között!
 5. Határozd meg, hogy a program felfelé kerekítve hány
óráig tartott!
 6. Írasd ki a programok listáját, de minden programot csak
egyszer!

You might also like