Programozási ismeretek haladóknak-2/19C
Programozási ismeretek haladóknak-2/19C
Érték és hivatkozás típusú változók
Lista hivatkozás típusú elemekkel (például halmaz, lista)
Lista érték típusú elemekkel (például struktúra)
Házi feladat
Olvasd el:
Kollekciók alkalmazása/Struktúrák/Kollekciókat tartalmazó struktúra
Oldd meg:
Kollekciók alkalmazása/Struktúrák/Alma, Verseny
Megjegyzés
Ha egy struktúra tartalmaz lista típusú mezőt, akkor ennek kezelése nagyon hasonló a tömb típusú mezőkhöz [lásd a 33. D) videót a Programozási ismeretek-3 lejátszási listában].
Arra ügyelj, hogy a struktúraváltozó deklarálása után létre kell hozni a listát! Ha például a struktúrákat tömbben tároljuk:
Structure TDiák
Dim Név As String
Dim Jegyek As List(Of Integer) ' itt nem szerepelhet a New operátor, mert a Structure egy típus definíciója
End Structure
Dim Diákok(100) As TDiák
For I=1 To 100
Diákok(I) = New List(Of Integer) ' a cikluson belül kell létrehozni a listákat!
Next
A listák először üresek. Bővítésük például:
Diákok(50).Jegyek.Add(5)
Ugyanez listában tárolt struktúrákra:
Dim Diákok As New List(Of TDiák)
Dim Diák As TDiák ' segédváltozó (mivel érték típusú, nem kell a ciklusban létrehoznunk)
For I=0 To 99
Diákok.Add(New TDiák) ' a listaelemet hozza létre
' Egy listaelem mezőjét közvetlenül nem módosíthatjuk, ezért segédváltozót használunk:
Diák.Jegyek = New List(Of Integer) ' a ciklusban kell létrehozni az aktuális diák Jegyek listáját!
Diákok(I) = Diák
Next
Egy jegy hozzáadása például (a Jegyek hivatkozás típusú változó, ezért közvetlenül elérjük és módosíthatjuk):
Diákok(49).Jegyek.Add(5)
több