Kaj je matrika?
Matrika je podatkovna struktura, ki se uporablja za shranjevanje elementov istega podatkovnega tipa. Elementi so razvrščeni zaporedno, pri čemer je prvi element pri indeksu 0, zadnji pa pri indeksu n-1, kjer je n skupno število elementov v matriki.
V tej vadnici boste izvedeli:
- Kaj je matrika?
- Kako prijaviti in inicializirati polje
- Polja s fiksno velikostjo
- Dinamični nizi
- Pridobivanje vsebine matrike
- Dodajanje novih elementov v polje
- Brisanje polja
- Funkcija delitve
- Funkcija združevanja
Kako prijaviti in inicializirati polje
V VB.NET so polja deklarirana z uporabo stavka Dim. Na primer:
Dim myData() As Integer
V zgornjem primeru smo definirali polje z imenom myData in mora vsebovati elemente celoštevilčnega podatkovnega tipa. Naslednji primer prikazuje, kako lahko deklariramo matriko, ki vsebuje elemente niza:
Dim myData(10) As String
Določili smo polje z imenom myData, ki vsebuje 10 nizov.
Polje lahko inicializiramo v času njihove izjave. Na primer:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Deklarirali smo matriko myData in ji dodali 6 celoštevilskih elementov. To je mogoče storiti tudi za primer nizov:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Ustvarili smo polje z imeni študentov in mu dodali 5 imen.
Polja s fiksno velikostjo
Matrika s fiksno velikostjo vsebuje določeno število elementov. To pomeni, da morate določiti število elementov, ki jih bo imel med opredelitvijo. Recimo, da potrebujete polje, ki bo vsebovalo samo 3 imena študentov. Polje lahko definirate in inicializirate na naslednji način:
Dim students(0 to 2) As Stringstudents(0) = "John"students (1) = "Alice"students (2) = "Antony"
Začeli smo z razglasitvijo nizov nizov z imeni študentov. 0 do 2 označuje, da bo matrika shranila elemente od svojega indeksa 0 do indeksa 2, kar pomeni, da bomo imeli skupaj 3 elemente.
Za dodajanje elementov v matriko smo uporabili ime polja in določili indeks, v katerem bo element shranjen. Na primer, ime John bo shranjeno pod indeksom 0 polja, kar pomeni, da bo tvorilo prvi element polja. Antony bo zadnji element polja.
Dinamični nizi
To je matrika, ki lahko vsebuje poljubno število elementov. Velikost polja lahko naraste kadar koli. To pomeni, da lahko poljubno kadar koli dodate nove elemente. Da to dokažemo, najprej definirajmo celo število:
Dim nums() As Integer
Določili smo celoštevilsko matriko z imenom nums. Zdaj morate matriki dodati dva elementa, hkrati pa omogočiti prostor za njeno spreminjanje. Izkaz ReDim morate uporabiti na naslednji način:
ReDim nums(1)nums(0) = 12nums(1) = 23
Naša matrika ima zdaj dva elementa v indeksih 0 in 1. V indeks 3 ji moramo dodati tretji element, hkrati pa ohraniti dva elementa, ki ju že ima. To lahko storimo na naslednji način:
ReDim Preserve nums(2)nums(2) = 35
Matrika ima zdaj tri elemente.
Pridobivanje vsebine matrike
Pridobivanje pomeni dostop do elementov matrike. Za dostop do elementa polja uporabimo njegov indeks. Pokažimo to na primeru.
Korak 1) Začnite z ustvarjanjem nove konzole.
Korak 2) V aplikacijo dodajte naslednjo kodo:
Module Module1Sub Main()Dim students(0 to 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Console.WriteLine("First student is {0} ", students(0))Console.WriteLine("Second student is {0} ", students(1))Console.WriteLine("Third student is {0} ", students(2))Console.ReadKey()End SubEnd Module
Korak 3) Zaženite kodo s klikom na gumb Start v orodni vrstici. Dobili boste naslednje okno:
Uporabili smo naslednjo kodo:
Pojasnilo kode:
- Ustvarjanje modula z imenom Module1.
- Ustvarjanje glavnega podprocedura.
- Ustvarjanje polja z imenom študentov za shranjevanje nizovnih elementov. V matriki bodo shranjeni elementi od indeksa 0 do indeksa 2, kar pomeni, da bo imel skupaj 3 elemente.
- Dodajanje imena John kot prvega elementa polja, to je John, shranjenega v indeksu 0.
- Dodajanje imena Alice kot drugega elementa polja, to je Alice, shranjene v indeksu 1.
- Dodajanje imena Antony kot tretjega elementa polja, to je Antony, shranjenega v indeksu 2.
- Tiskanje besedila in elementa, shranjenega v indeksu 0 učencev polja v konzoli. Študenti (0) nam pomagajo dostopati do elementa z indeksom 0 polja z imenom študenti.
- Tiskanje besedila in elementa, shranjenega v indeksu 1 učencev niza na konzoli. Študenti (1) nam pomagajo dostopati do elementa v indeksu 1 polja z imeni študenti.
- Tiskanje besedila in elementa, shranjenega v indeksu 2 učencev niza na konzoli. Študenti (2) nam pomagajo dostopati do elementa v indeksu 2 polja z imeni študenti.
- Začasno ustavite čakanje okna konzole ali uporabnika, da ukrepa, da ga zapre.
- Konec podprocedure.
- Konec modula.
Dodajanje novih elementov v polje
To se bo zgodilo le, če imate dinamično matriko. Če ste razglasili dimenzijsko matriko s fiksno velikostjo in je polna elementov matrike, ji ne morete dodati novih elementov. Naslednji primer prikazuje, kako dodati nove elemente v dinamično matriko:
Korak 1) Začnite z ustvarjanjem nove konzole.
Korak 2) V aplikacijo dodajte naslednjo kodo:
Module Module1Sub Main()Dim nums() As IntegerReDim nums(1)nums(0) = 12nums(1) = 23For x = 0 To nums.Length - 1Console.WriteLine("Initial array element: {0}", nums(x))NextReDim Preserve nums(2)nums(2) = 35For x = 0 To nums.Length - 1Console.WriteLine("Final array element: {0}", nums(x))NextConsole.ReadKey()End SubEnd Module
Korak 3) V orodni vrstici kliknite gumb Start, da zaženete kodo. Prišlo bi naslednje okno:
Uporabili smo naslednjo kodo:
Pojasnilo kode:
- Ustvarjanje modula z imenom Module1.
- Ustvarjanje glavnega podprocedura.
- Ustvarjanje polja z imenom nums za zadrževanje celoštevilskih vrednosti.
- Navedite, da bo zgornja matrika shranila dva elementa, to sta indeksa 0 in 1, hkrati pa bo omogočila prostor za spreminjanje velikosti.
- Dodajanje elementa 12 indeksu 0 številk matrike.
- Dodajanje elementa 23 indeksu 1 številk matrike.
- Uporaba zanke for za ustvarjanje spremenljivke x, ki nam pomaga pri ponovitvi od prvega do zadnjega elementa matrike nums. Upoštevajte, da ima matrika zdaj dva elementa, 12 in 23.
- Tiskanje besedila in elementov polja na konzolo.
- Končanje zanke for in preskok na naslednji del kode.
- Spremenite velikost številke matrike, da omogočite elemente pri indeksih od 0 do 2. Zdaj bo lahko shranil 3 elemente namesto 2. Ključna beseda Preserve nam pomaga vzdrževati trenutne elemente polja, to je 12 in 23.
- Dodajanje elementa 35 indeksu 2 polja. Matrika ima zdaj tri elemente, 12, 23 in 35.
- Uporaba zanke for za ustvarjanje spremenljivke x, ki nam pomaga pri ponovitvi od prvega do zadnjega elementa matrike nums. Upoštevajte, da ima polje zdaj tri elemente, 12, 23 in 35.
- Tiskanje besedila in elementov polja na konzolo.
- Končanje zanke for in preskok na naslednji del kode.
- Začasno ustavite okno konzole in počakajte, da uporabnik ukrepa, da ga zapre.
- Konec podprocedure.
- Konec modula.
Brisanje polja
Priporočljivo je, da svojo matriko izbrišete, ko končate z njo, predvsem kadar imate opravka z dinamično matriko. To vam bo pomagalo sprostiti nekaj pomnilnika.
Če želite izbrisati polje, morate poklicati stavek Erase, ki mu sledi ime matrike. Na primer:
Dim nums(1) As Integernums(0) = 12nums(1) = 23Erase nums
Razglasili smo vrsto celih števil z imenom nums in ji dodali dva elementa. Stavek Izbriši številke bo izbrisal polje.
Funkcija delitve
Funkcija ločevanja, ki jo ponuja Visual Basic .NET, nam pomaga razdeliti niz na dele in jih ohraniti v matriki. Naslednji primer prikazuje, kako uporabljati to funkcijo:
Korak 1) Ustvarite novo konzolo.
Korak 2) V aplikacijo dodajte naslednjo kodo:
Module Module1Sub Main()Dim myarray() As StringDim guru99 As StringDim x As Integerguru99 = "Welcome, to, Guru99"myarray = Split(guru99, ", ")For x = LBound(myarray) To UBound(myarray)Console.WriteLine(myarray(x))NextConsole.ReadKey()End SubEnd Module
Korak 3) Zaženite kodo s klikom na gumb Start v orodni vrstici. Prišlo bi naslednje okno:
Uporabili smo naslednjo kodo:
Pojasnilo kode:
- Ustvarjanje modula z imenom Module1.
- Zagon glavnega podprocedura.
- Ustvarjanje polja z imenom myarray za shranjevanje nizov.
- Ustvarjanje nizovne spremenljivke z imenom guru99.
- Ustvarjanje celoštevilčne spremenljivke z imenom x.
- Dodelitev niza spremenljivki guru99.
- Razdeli zgornji niz na dele in jih postavi v polje z imenom myarray. Ločilo je »,« (vejica), zato ga bo funkcija razdelka uporabila za označevanje konca različnih delov niza.
- Uporaba spremenljivke x za iteracijo skozi polje z imenom myarray. LBound in UBound določata spodnje in zgornje meje matrike.
- Tiskanje vrednosti polja z imenom myarray na konzoli.
- Konec zanke for in
Funkcija združevanja
Funkcija združevanja nam pomaga združiti več nizov v en niz. Naslednji primer to dokazuje:
Korak 1) Začnite z ustvarjanjem nove konzole.
Korak 2) V aplikacijo dodajte naslednjo kodo:
Module Module1Sub Main()Dim students(0 To 2) As Stringstudents(0) = "John"students(1) = "Alice"students(2) = "Antony"Dim classmates As Stringclassmates = Join(students, ", ")Console.WriteLine(classmates)Console.ReadKey()End SubEnd Module
Korak 3) Zaženite kodo s klikom na gumb Start v orodni vrstici:
Uporabili smo naslednjo kodo:
Pojasnilo kode:
- Ustvarjanje modula z imenom Module1.
- Ustvarjanje glavnega podprocedura.
- Ustvarjanje polja z imeni študentov, ki bo imelo 3 nizne vrednosti.
- Dodajanje imena John indeksu 0 polja.
- Dodajanje imena Alice v indeks 1 polja.
- Dodajanje imena Antony v indeks 2 polja.
- Določanje spremenljivke z imenom sošolci nizovnega podatkovnega tipa.
- Združevanje vseh elementov učencev polja in njihovo ločevanje s pomočjo vejice. Rezultat te operacije bo dodeljen spremenljivki sošolci.
- Tiskanje vsebine spremenljivke sošolcev na konzoli.
- Začasno ustavite okno konzole in počakajte, da uporabnik ukrepa, da ga zapre.
- Zaključek glavnega podprocedura.
- Zaključek modula.
Povzetek
- Polja se uporabljajo za shranjevanje podatkovnih elementov, ki pripadajo istemu tipu podatkov.
- Dinamična matrika omogoča uporabniku, da jo spremeni tako, da ji doda več elementov. Ukaz ReDim uporabljate za dodajanje elementov obstoječi matriki
- Velikosti matrike s fiksno velikostjo ni mogoče spremeniti.
- Elementi polja so razvrščeni po indeksih, pri čemer je prvi element pri indeksu 0, zadnji element pa pri indeksu n-1, kjer je n skupno število elementov matrike.
- Polja lahko izbrišete s funkcijo brisanja
- Funkcije razdeljevanja in združevanja lahko uporabite za razdelitev ali pridružitev nizov nizov