Visual Basic 2005/Massiivid

Allikas: Vikiõpikud
Jump to navigation Jump to search

Mis on massiiv[muuda]

Peale üksikute muutujate leidub ka, muutujate kogum, mida kutsutakse massiiviks (vaata ka kollektsioon). Massiivil on alati olemas tüüp, ja ta saab sisaldada ainult seda tüüpi elemente, millena ta on deklareeritud.

Massiivi suurus[muuda]

Massiivi suuruse määravad ära tema dimensioonid. Deklareeritud muutujale antakse dimensioonina kindel arv, kindla tüübiga elemente. Ühe dimensiooniga muutuja kujutab endast rida, kahega maatriksit ja kolmega 3d ruumi. VB 2005'ga on võimalik deklareerida ka massiiv massiive. Massiivi suuruse määrab ära deklareeritud tüübi korrutis, kõikide dimensioonide korrutisega. Näide:

Dim a(10) As Long

Deklareeritud on massiiv a(), mille suurus on 11 longi suurust. Esimene massiivi a() väärtus on a(0)=0, teine a(1)=0, kolmas a(2)=0 jne.

Dim a(10, 10, 10) As Long

Deklareeritud on massiiv a(), mille suurus on 1331 longi suurust. Esimene massiivi a() väärtus on a(0,0,0)=0, teine a(0,0,1)=0, kolmas a(0,0,2)=0 ... kaheteistkümnes a(0,1,0)=0 jne.

Dim a() As Long

Deklareeritud on massiiv a(), millele on määratud tüüp, kuid pole antud suurust, a kasutamiseks tuleb sellele liita mõni rida massiiv.

Dim a(,,) As Long

Deklareeritud on massiiv a(), millele on määratud tüüp, kuid pole antud suurust, a kasutamiseks tuleb sellele liita mõni kuup massiiv.

Dim a()()() As Long

Deklareeritud on massiiv massiive a(), millele on määratud tüüp, kuid pole antud suurust, a kasutamiseks tuleb sellele liita mõni massiiv massiive.

Massiivi suuruse muutmine[muuda]

Basic on teinud massiivide muutmise ja seal leiduvate andmete leidmise, töötlemise kergeks. Kui soovime olemasoleva massiivi väärtustemahtu suurendada, siis võime kasutada:

1) ReDim Preserve a(a.GetLength(0))
2) Array.Resize(a, a.GetLength(0) + 1)

Väärtustamine[muuda]

Kui soovime määrata massiivi 8 elemendile anda väärtus seitse siis: Esmalt loome massiivi a 8 stringiga.

Dim a(7) as String
a.SetValue("seitse", 7)
'või
a(7) = "seitse"

Samas võime teostada väärtustamise ka juba deklareerimise ajal:

Dim a() As String = {"", "", "", "", "", "", "", "seitse"}

Kasutusviis[muuda]

Eri tüübid[muuda]

Kui ennist sa mainitud, et massiivil on üks tüüp ja kõik tema elemendid on sama tüüpi, siis kui oleks vaja panna ühte massiivi siiski erinevaid võiks käituda järgnevalt:

Dim õpilane(3) As Object
õpilane(0) = "Peet Nugis"
õpilane(1) = "16372 Kopli tänav"
õpilane(2) = 20
õpilane(3) = #3/11/1986#

ja antud andmeid võib pärast kasutada otse või anda need üle muutujatele, korrektne oleks anda andmetele ka õige formaat:

Dim nimi As String = CStr(õpilane(0))
Dim elukoht As String = CStr(õpilane(1))
Dim ainepunkte As Integer = CInt(õpilane(2))
Dim sünniaasta As Date = CDate(õpilane(3))

Kiirväärtustamine[muuda]

Kui tahame luua muutuja olemasolevast tekstist, kus väärtuste eraldamiseks on kasutatud ", ", siis:

Dim tekst As String = "v_1, v_2, v_3, v_4, jne"
Dim sõnad() As String = Split(tekst, ", ")

sellega samaväärne oleks olnud

Dim sõnad(4) As String
sõnad(0)="v_1"
sõnad(1)="v_2"
sõnad(2)="v_3"
sõnad(3)="v_4"
sõnad(4)="jne"

Massiivi kiirväärtustamie pöördoperatsioon oleks:

Dim tekst As String = "v_1, v_2, v_3, v_4, jne"
Dim sõnad() As String = Split(tekst, ", ")
Dim tekst2 As String = Join(sõnad, ", ")

Kus tekst = tekst2 = "v_1, v_2, v_3, v_4, jne"