Visual Basic 2005/Massiivid

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"