Array dinamici – creazione e riempimento

Da Gambas-it.org - Wikipedia.

Descriveremo la creazione e l'assegazione di valori ad un array monodimensionale dinamico (con quantità di elementi non definita a priori), nonché i casi in cui la definizione della quantità degli elementi viene definita successivamente in modo esplicito o in modo dinamico.


Creazione e riempimento di un array monodimensionale dinamico

Un array (matrice) monodimensionale è dinamico se, non avendo definita a priori la quantità dei suoi elementi interni, è suscettibile di incrementare di volta in volta detta quantità.

Oltre alla dichiarazione dell'array, per ottenere l'incremento del numero di elementi interni, e dunque l'assegnazione di un determinato valore a ciascun nuovo elemento, bisognerà creare l'array utilizzando la parola New. Un nuovo elemento verrà creato aggiungendo un nuovo valore all'array mediante il metodo .Add().

Public Sub Button1_Click()

 Dim bb As New Byte[]  ' All'interno delle paretesi quadre non è indicato alcun valore


  For j = 0 To 9

' Ad ogni ciclo viene Assegnato un valore all'array all'elemento successivo all'ultimo precedentemente creato,
' e quindi viene creato un nuovo elemento:
     bb.Add(j)

  Next

End


Definizione dinamica (incremento) della quantità degli elementi

In un array monodimensionale

Public Sub Button1_Click()

Dim nu As Byte
Dim multdimArr As New Byte[]   ' dichiara l'array, ma senza definirne la quantità dei propri elementi
 
' Incrementa dinamicamente la quantità degli elementi dell'array
   For nu = 0 To 37
      multdimArr.Add(nu)
   Next

' verifica:
   For nu = 0 To 37
      Print multdimArr[nu]
   Next
   
End

o anche:

Public Sub Button1_Click()

 Dim nu As Byte
 Dim multdimArr As Byte[]   ' dichiara l'array, ma senza definirne la quantità dei propri elementi

' Incrementa dinamicamente la quantità degli elementi dell'array
   For nu = 0 To 37
     multdimArr = New Byte[nu]
     multdimArr.Add(nu)
   Next


   For nu = 0 To 37
      Print multdimArr[nu]
   Next

End


In un array multidimensionale

Per poter incrementare dinamicamente gli elementi di un array multidimensionale dovremo necessariamente inizialmente dichiarare la sua dimensione, ponendone il valore degli elementi ad almeno: 1.

Nell'esempio sottostante poniamo il caso di un array bidimensionale con numero di colonne fisso ed incremento dinamico del numero delle righe ad ogni clic sul Button1:

Private multdimArr As Integer[]
Private rig As Integer = 1       ' Si comincia con l'avere una riga


Public Sub Button2_Click()

' Incrementa dinamicamente la quantità delle righe dell'array
 multdimArr = New Integer[rig, 2]

' Pone il valore numerico medesimo nella nuova riga della 1a colonna:
  multdimArr[rig - 1, 1] = rig
     
  Print multdimArr[rig - 1, 1]
 
 Inc rig

End


Definizione esplicita successiva della quantità degli elementi

In un array monodimensionale

Public Sub Button1_Click()

 Dim ind1 As Integer = 38
 Dim nu As Integer
 Dim multdimArr As Integer[]   ' dichiara l'array, ma senza dimensionarlo

' dimensiona "ora" l'array:
   multdimArr = New Integer[ind1]

   For nu = 0 To multdimArr.Max
'  riempie ogni elemento dell'array:
     multdimArr[nu] = nu
     Print multdimArr[nu]
   Next
	   
End


In un array multidimensionale

Public Sub Button1_Click()

 Dim multdimArr As Integer[]
 Dim rig, col As Integer
 Dim nuR, nuC As Integer

' dimensiona "ora" l'array:
 rig = InputBox("Inserisci tu la dimensione delle righe dell'array:")
 col = InputBox("Inserisci tu la dimensione delle colonne dell'array:")

  multdimArr = New Integer[rig, col]


  For nuR = 0 to rig - 1
    For nuC = 0 To col - 1
      multdimArr[nuR, nuC] = nuC
      Print multdimArr[nuR, nuC]
    Next
  Next

End