Module Tömb_kezelo_rutinok #Region "Egydimenziós tömb deklarálás, értékadás" 'Tömb Értékadás Sub TömbÉrtékadás() Dim a(2) As String a(0) = "alma" a(1) = "körte" a(2) = "barack" Debug.Print("Gyümölcsök:") Debug.Print(a(0)) Debug.Print(a(1)) Debug.Print(a(2)) End Sub 'Közvetlen értékadás Sub TömbKözetlenÉrtékadás() Dim a() As String = {"alma", "körte", "barack"} Debug.Print("Gyümölcsök:") Debug.Print(a(0)) Debug.Print(a(1)) Debug.Print(a(2)) End Sub #End Region #Region "Tömb bejárása" 'Egydimenziós tömb kiírása LBound, Ubound segítéségével Sub TömbKiíró_LU(ByVal Tömb) Dim i As Integer For i = LBound(Tömb) To UBound(Tömb) Debug.Print(Tömb(i)) Next End Sub 'Egydimenziós tömb kiírása Foreach segítségével Sub TömbKiíró_Foreach(ByVal Tömb) Dim TömbElem For Each TömbElem In Tömb Debug.Print(TömbElem) Next End Sub 'Kétdimenziós tömb bejárása Sub TömbKiíró_2Dim(ByVal Tömb_2Dim) Dim i, j As Integer For i = LBound(Tömb_2Dim, 1) To UBound(Tömb_2Dim, 1) For j = LBound(Tömb_2Dim, 2) To UBound(Tömb_2Dim, 2) Debug.Print(Tömb_2Dim(i, j)) Next Next End Sub #End Region #Region "Statikus egy- és kétdimenziós tömbök" 'Statikus egydimenziós tömb feltöltése ciklussal Sub StatikusTömb_Feltölto() '1-10-ig töltsünk fel egy tömböt, majd írassuk ki Dim a(9) As Integer Dim i As Integer For i = 0 To 9 a(i) = i + 1 Next For i = 0 To 9 Debug.Print(a(i)) Next End Sub 'Statikus kétdimenziós tömb feltöltése ciklussal Sub SzorzótáblaKészít() 'Szorzótábla berakása kétdimeziós tömbbe Dim Szorzótábla(9, 9) As String Dim i, j As Integer For i = 1 To 10 For j = 1 To 10 Szorzótábla(i - 1, j - 1) = i & " * " & j & " = " & i * j Next Next TömbKiíró_2Dim(Szorzótábla) End Sub #End Region #Region "Dinamikus tömb" 'Dinamikus tömb feltöltés (ReDim) Sub DinamikusTömb_Feltölto() '1-10-ig töltsünk fel egy tömböt, majd írassuk ki Dim a() As Integer 'Dinamikus tömb Dim i As Integer For i = 0 To 9 ReDim Preserve a(i) a(i) = i + 1 Next TömbKiíró_Foreach(a) End Sub #End Region #Region "Tömb muveletek" 'Tömb határai (UBound, LBound) Sub TömbHatáraiTeszt() Dim a(10) As Integer Dim alsó, felso As Integer alsó = LBound(a) felso = UBound(a) Debug.Print("Alsó határ: " & alsó & " Felso határ: " & felso) End Sub 'A tömb törlése Sub TömbTörlése() Dim a() As String = {"alma", "körte", "barack"} If IsArray(a) Then Debug.Print("Ez tömb, és nem üres") End If 'Töröljük a tömböt Erase a If Not IsArray(a) Then Debug.Print("Ez tömb, de üres") End If End Sub #End Region #Region "Rendezés, keresés" 'Tömb rendezése Sub rendezés_Növekvo() Dim a() As String = {"alma", "körte", "barack"} Array.Sort(a) TömbKiíró_Foreach(a) End Sub 'A tömb egy részének rendezése Sub rendezés_Részleges() Dim a() As String = {"Ezek", "gyümölcsök:", "alma", "körte", "barack", "ananász"} Array.Sort(a, 2, 4) 'Melyik indextol (2), hány elemet (4) rendezzen TömbKiíró_Foreach(a) End Sub 'Rendezés kulcs szerint Sub rendezés_Kulcsos() Dim a() As String = {"alma", "körte", "barack", "ananász"} Dim ár() As Decimal = {300, 255, 100, 700} 'A gyümölcsök árai (Kulcs tömb) 'ár szerint rendezzük (az olcsóbb lesz elöl) Array.Sort(ár, a) TömbKiíró_Foreach(a) End Sub 'Az elemek megfordítása (ez nem rendezés!!!) Sub rendezés_Visszafelé() Dim a() As String = {"alma", "körte", "barack", "ananász"} Array.Reverse(a) TömbKiíró_Foreach(a) End Sub #End Region End Module