Sunteți pe pagina 1din 15

Tablouri

Tablou= variabilă multivaloare care conține o listă de elemente de


același tip, stocate într-o zonă contiguă din memorie.
Tablourile nu permit adăugarea/ștergerea de elemente, ci numai
modificarea celor existente.
Elementele unui tablou sunt identificate printr-un index (≥0) și pot fi
accesate (read/write) după sintaxa:
NumeTablou(index)
Exemplu: tabloul Numere

Primul element: Al zecelea element:


Numere(0) Al doilea element: Numere(9)
Numere(1)

Numere 4 22 11 5 7 10 8 9 1 3
Conf. dr. Cozgarea Adrian
Dimensiuni ale tablourilor

Tablou unidimensional

Tablou bidimensional

Tablou tridimensional

Conf. dr. Cozgarea Adrian


Tablouri
Definire:
Dim numeTablou([listaLimite]) [As tipData]

Exemple:
Dim CotaTVA(1) As Decimal
elemente: CotaTVA(0), CotaTVA(1)

Dim Patrat(3, 1) As Integer


elemente: Patrat(0,0), Patrat(0,1), ... , Patrat(3,0), Patrat(3,1)

Dim Vanzari(9, 41, 364) As Decimal ‘10 produse, 42 judete, 365 zile

Conf. dr. Cozgarea Adrian


Initializarea tablourilor

• Iniţializare implicită:
Dim NumereIntregi(2) As Integer

• Iniţializare explicită:
Dim NumereIntregi() As Integer={100,200,300}

Conf. dr. Cozgarea Adrian


Redimensionarea tablourilor

ReDim [Preserve] numeTablou(listăIndecşi)

Dim v(1) As Integer


v(0)=100
v(1)=200
v(2)=300 ‘ eroare: depăşire limită tablou

Redim Preserve v(2)


v(2)=300 ‘ atribuirea este acceptata

Conf. dr. Cozgarea Adrian


Proprietăţi ale clasei Array

• Length
• Rank

Conf. dr. Cozgarea Adrian


Metodele clasei Array

• GetLength(dim As Integer)
• GetLowerBound(dim As Integer)

• GetUpperBound (dim As Integer)


• Sort()

Exemplu:
Dim Patrat(3, 1)
MsgBox(Patrat.GetLength(0)) ' afişează 4
MsgBox(Patrat.GetUpperBound(0)) ' afişează 3
MsgBox(Patrat.GetUpperBound(1)) ' afişează 1

Conf. dr. Cozgarea Adrian


Parcurgerea unui tablou (1)

Dim tablou(3) As Integer


For i As Integer = 0 To tablou.GetUpperBound(0)
MsgBox(tablou(i))
Next

SAU

For Each x As Integer In tablou


MsgBox(x)
Next

Conf. dr. Cozgarea Adrian


Parcurgerea unui tablou (2)
- însumarea elementelor unui tablou-

Dim tablou(3) As Integer ‘ tablou cu 4 elemente


Dim total As Integer
For Each x As Integer In tablou
total=total+x
Next
MsgBox (“Suma elementelor din tablou:” & total)

Conf. dr. Cozgarea Adrian


Colecţii VB.NET
Colecţia = variabilă multivaloare care permite adaugarea şi eliminarea elementelor
(redimensionare automată)
Elementele unei colecţii sunt indexate începând cu 0 și pot fi de tipuri diferite.

Tipuri de colecţii VB.NET


• Collection (Microsoft.VisualBasic )
• ArrayList (System.Collections )
• HashTable (System.Collections )
• Queue (System.Collections )
• Stack (System.Collections ) etc.

Colecţii utilizate de VB.NET:


• Controls (clasa Form)
• OpenForms (clasa Application)
• Items (clasele ComboBox şi ListBox )

Conf. dr. Cozgarea Adrian


Clasa ArrayList
-colecţie bazată pe un tablou intern

Declarare:
Dim variabila As ArrayList=New ArrayList()

Proprietăţi:
– Count
– Item (index As Integer) – implicită
– ...
Metode:
– Add (valoare As Object)
– Clear()
– Remove(obiect As Object)
– RemoveAt(index As Integer)
– Sort()
– ...

Conf. dr. Cozgarea Adrian


Exemplu ArrayList

Dim a As ArrayList= New ArrayList()

a.Add(100) 'a.Item(0)=100
a.Add(200) 'a.Item(1)=200

a.Item(0)=300 ' a(0)=300

MsgBox(a.Item(0)) 'Afiseaza 300


MsgBox(a.Count) 'Afiseaza 2

a.RemoveAt(1)
MsgBox(a.Count) 'Afiseaza 1
Conf. dr. Cozgarea Adrian
Exemplu privind popularea și parcurgerea unei colecţii (1)

txtCNP
txtNumePrenume
txtDataNastere

Button1

Button2

Conf. dr. Cozgarea Adrian


Exemplu privind popularea și parcurgerea unei colecţii (2)

Public Class Persoana


Public CNP As String
Public NumePrenume As String
Public DataNastere As Date
Public Function Varsta(An As Integer) As Byte
Return An - DataNastere.Year
End Function
End Class

Conf. dr. Cozgarea Adrian


Exemplu privind popularea și parcurgerea unei colecţii (3)
Public Class Form1
Private Persoane As ArrayList = New ArrayList() ‘ colectia pt. obiectele de tip Persoana
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim oPersoana As Persoana = New Persoana
oPersoana.CNP = txtCNP.Text
oPersoana.DataNastere = txtDataNastere.Text
oPersoana.NumePrenume = txtNumePrenume.Text
Persoane.Add(oPersoana) ‘ adauga obiectul in colectie
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
For Each p As Persoana In Persoane ‘ parcurge colectia de persoane
MsgBox(p.CNP & vbCrLf & p.NumePrenume & vbCrLf & p.Varsta(2019))
Next
End Sub
End Class

Conf. dr. Cozgarea Adrian

S-ar putea să vă placă și