Ce este o matrice?
O matrice este o structură de date utilizată pentru a stoca elemente de același tip de date. Elementele sunt ordonate secvențial, primul element fiind la indexul 0 și ultimul element la indexul n-1, unde n este numărul total de elemente din matrice.
În acest tutorial, veți învăța:
- Ce este o matrice?
- Cum să declarați și să inițializați o matrice
- Tablouri cu dimensiuni fixe
- Matrice dinamice
- Recuperarea conținutului unui tablou
- Adăugarea de noi elemente la o matrice
- Ștergerea unei matrice
- Funcția Split
- Funcția Unire
Cum să declarați și să inițializați o matrice
În VB.NET, matricile sunt declarate folosind instrucțiunea Dim. De exemplu:
Dim myData() As Integer
În exemplul de mai sus, am definit o matrice numită myData și ar trebui să conțină elemente ale tipului de date întregi. Următorul exemplu demonstrează modul în care putem declara o matrice pentru a deține elemente de șir:
Dim myData(10) As String
Am definit o matrice numită myData pentru a conține 10 șiruri.
Putem inițializa matrice în momentul declarării lor. De exemplu:
Dim myData() As Integer = {11, 12, 22, 7, 47, 32}
Am declarat tabloul myData și i-am adăugat 6 elemente întregi. Acest lucru se poate face și în cazul șirurilor:
Dim students() As String = {"John", "Alice", "Antony", "Gloria", "jayden"}
Am creat o matrice numită studenți și i-am adăugat 5 nume.
Tablouri cu dimensiuni fixe
Un tablou de dimensiuni fixe conține un număr fix de elemente. Aceasta înseamnă că trebuie să definiți numărul de elemente pe care le va deține în timpul definirii sale. Să presupunem că aveți nevoie de o matrice pentru a conține doar 3 nume de studenți. Puteți defini și inițializa matricea după cum urmează:
Dim students(0 to 2) As Stringstudents(0) = "John"students (1) = "Alice"students (2) = "Antony"
Am început prin declararea unui șir de șiruri numite studenți. De la 0 la 2 declară că matricea va stoca elemente de la indexul său 0 la indexul 2, ceea ce înseamnă că vom avea 3 elemente în total.
Pentru a adăuga elemente la matrice, am folosit numele matricei și am specificat indexul la care va fi stocat elementul. De exemplu, numele John va fi stocat la indexul 0 al tabloului, ceea ce înseamnă că va forma primul element al tabloului. Antony va fi ultimul element al matricei.
Matrice dinamice
Aceasta este o matrice care poate conține orice număr de elemente. Dimensiunea matricei poate crește în orice moment. Aceasta înseamnă că puteți adăuga elemente noi la matrice oricând dorim. Pentru a demonstra acest lucru, să definim mai întâi o serie de numere întregi:
Dim nums() As Integer
Am definit un tablou întreg numit nums. Acum trebuie să adăugați două elemente la matrice, oferind în același timp spațiu pentru redimensionarea acestuia. Trebuie să utilizați instrucțiunea ReDim după cum urmează:
ReDim nums(1)nums(0) = 12nums(1) = 23
Matricea noastră are acum două elemente în indexurile 0 și 1. Trebuie să adăugăm un al treilea element la indexul 3 păstrând în același timp cele două elemente pe care le are deja. O putem face după cum urmează:
ReDim Preserve nums(2)nums(2) = 35
Matricea are acum trei elemente.
Recuperarea conținutului unui tablou
Preluarea înseamnă accesarea elementelor matrice. Pentru a accesa un element matrice, folosim indexul acestuia. Să demonstrăm acest lucru folosind un exemplu.
Pasul 1) Începeți prin crearea unei noi aplicații pentru consolă.
Pasul 2) Adăugați următorul cod în aplicație:
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
Pasul 3) Rulați codul făcând clic pe butonul Start din bara de instrumente. Veți primi următoarea fereastră:
Am folosit următorul cod:
Explicația Codului:
- Crearea unui modul numit Module1.
- Crearea sub-procedurii principale.
- Crearea unui tablou numit studenți pentru a stoca elemente de șir. Matricea va stoca elemente de la indexul 0 la indexul 2, ceea ce înseamnă că va avea un total de 3 elemente.
- Adăugarea numelui John ca prim element al tabloului, adică John stocat la indexul 0.
- Adăugarea numelui Alice ca al doilea element al matricei, adică Alice stocată la indexul 1.
- Adăugarea numelui Antony ca al treilea element al matricei, adică Antony stocat la indexul 2.
- Tipărirea unui text și a elementului stocat la indexul 0 al matricei studenți de pe consolă. Studenții (0) ne ajută să accesăm elementul de la indexul 0 al matricei numite studenți.
- Tipărirea unui text și a elementului stocat la indexul 1 al studenților matricei pe consolă. Studenții (1) ne ajută să accesăm elementul de la indexul 1 al matricei numite studenți.
- Imprimarea unui text și a elementului stocat la indexul 2 al studenților matricei pe consolă. Studenții (2) ne ajută să accesăm elementul de la indexul 2 al matricei numite studenți.
- Întreruperea ferestrei consolei în așteptare sau a utilizatorului să ia măsuri pentru a o închide.
- Sfârșitul sub-procedurii.
- Sfârșitul modulului.
Adăugarea de noi elemente la o matrice
Acest lucru se va întâmpla numai dacă aveți o matrice dinamică. Dacă ați declarat o matrice dimensională fixă și este plină de elemente matrice, nu puteți adăuga elemente noi la aceasta. Următorul exemplu demonstrează cum să adăugați elemente noi la o matrice dinamică:
Pasul 1) Începeți prin crearea unei noi aplicații pentru consolă.
Pasul 2) Adăugați următorul cod în aplicație:
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
Pasul 3) Faceți clic pe butonul Start din bara de instrumente pentru a rula codul. Ar trebui să obțineți următoarea fereastră:
Am folosit următorul cod:
Explicația Codului:
- Crearea unui modul numit Module1.
- Crearea sub-procedurii principale.
- Crearea unui tablou numit nums pentru a conține valori întregi.
- Specificând că matricea de mai sus va stoca două elemente, adică la indexul 0 și 1, permițând în același timp spațiu pentru redimensionare.
- Adăugarea elementului 12 la indexul 0 al numerelor matricei.
- Adăugarea elementului 23 la indexul 1 al numerelor matricei.
- Folosind o buclă for pentru a crea o variabilă x care să ne ajute să iterăm de la primul la ultimul element al matricei. Rețineți că matricea are acum două elemente, 12 și 23.
- Tipărirea unui text și a elementelor matricei pe consolă.
- Se termină bucla for și se trece la următoarea parte a codului.
- Redimensionați numerele matricei pentru a permite elemente la indexurile de la 0 la 2. Acum va putea stoca mai degrabă 3 elemente decât 2. Cuvântul cheie Conservare ne ajută să menținem elementele actuale ale matricei, adică 12 și 23.
- Adăugarea elementului 35 la indexul 2 al tabloului. Matricea are acum trei elemente, 12, 23 și 35.
- Folosind o buclă for pentru a crea o variabilă x care să ne ajute să iterăm de la primul la ultimul element al matricei. Rețineți că matricea are acum trei elemente, 12, 23 și 35.
- Tipărirea unui text și a elementelor matricei pe consolă.
- Se termină bucla for și se trece la următoarea parte a codului.
- Întrerupeți fereastra consolei, așteptând ca utilizatorul să ia măsuri pentru a o închide.
- Sfârșitul sub-procedurii.
- Sfârșitul modulului.
Ștergerea unei matrice
Este recomandat să ștergeți matricea după ce ați terminat, mai ales atunci când aveți de-a face cu o matrice dinamică. Acest lucru vă va ajuta să eliberați spațiu de memorie.
Pentru a șterge o matrice, trebuie doar să apelați instrucțiunea Erase urmată de numele matricei. De exemplu:
Dim nums(1) As Integernums(0) = 12nums(1) = 23Erase nums
Am declarat o serie de numere întregi numite nums și i-am adăugat două elemente. Instrucțiunea Erase nums va șterge matricea.
Funcția Split
Funcția de divizare furnizată de Visual Basic .NET ne ajută să împărțim un șir în părți și să le păstrăm într-o matrice. Următorul exemplu demonstrează modul de utilizare a acestei funcții:
Pasul 1) Creați o nouă aplicație pentru consolă.
Pasul 2) Adăugați următorul cod în aplicație:
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
Pasul 3) Rulați codul făcând clic pe butonul Start din bara de instrumente. Ar trebui să obțineți următoarea fereastră:
Am folosit următorul cod:
Explicația Codului:
- Crearea unui modul numit Module1.
- Lansarea sub-procedurii principale.
- Crearea unui tablou numit myarray pentru a păstra valorile șirului.
- Crearea unei variabile șir denumită guru99.
- Crearea unei variabile întregi numite x.
- Atribuirea unui șir variabilei guru99.
- Împărțind șirul de mai sus în părți și plasându-le în matricea numită myarray. „,” (Virgulă) este delimitatorul, prin urmare funcția de divizare îl va folosi pentru a marca sfârșitul diferitelor părți ale șirului.
- Folosind variabila x pentru a itera prin matricea numită myarray. LBound și UBound specifică limitele inferioare și respectiv limitele superioare ale tabloului.
- Imprimarea valorilor matricei numite myarray pe consolă.
- Încheierea buclei for și
Funcția Unire
Funcția de unire ne ajută să unim mai multe matrice într-un singur șir. Următorul exemplu demonstrează acest lucru:
Pasul 1) Începeți prin crearea unei noi aplicații pentru consolă.
Pasul 2) Adăugați următorul cod în aplicație:
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
Pasul 3) Rulați codul făcând clic pe butonul Start de pe bara de instrumente:
Am folosit următorul cod:
Explicația Codului:
- Crearea unui modul numit Module1.
- Crearea sub-procedurii principale.
- Crearea unui tablou numit studenți pentru a deține 3 valori de șir.
- Adăugarea numelui John la indexul 0 al tabloului.
- Adăugarea numelui Alice la indexul 1 al tabloului.
- Adăugarea numelui Antony la indexul 2 al tabloului.
- Definirea unei variabile numite colegi de tip șir de date.
- Alăturarea tuturor elementelor matricii studenților și separarea lor folosind un, (virgulă). Rezultatul acestei operații va fi atribuit colegilor de clasă variabile.
- Imprimarea conținutului variabilei colegilor de clasă pe consolă.
- Întreruperea ferestrei consolei, așteptând ca utilizatorul să ia măsuri pentru a o închide.
- Încheierea subprocedurii principale.
- Încheierea modulului.
rezumat
- Tablourile sunt utilizate pentru stocarea elementelor de date care aparțin aceluiași tip de date.
- O matrice dinamică permite utilizatorului să o redimensioneze adăugând mai multe elemente. Utilizați comanda ReDim pentru adăugarea de elemente într-o matrice existentă
- Dimensiunea unui tablou de dimensiuni fixe nu poate fi modificată.
- Elementele matricei sunt ordonate folosind indici, primul element fiind la index 0 și ultimul element la indexul n-1, unde n este numărul total de elemente matrice.
- Tablourile pot fi șterse folosind funcția Erase
- Puteți utiliza funcțiile de divizare și alăturare pentru a împărți sau, respectiv, pentru a alătura unui șir de șiruri