Array dinamici – creazione e riempimento

Da Gambas-it.org - Wikipedia.

Esporremo qui il caso in cui l'array non è dimensionato a priori, ma lo sia successivamente in modo esplicito o in modo dinamico.


Array senza alcun dimensionamento

Public Sub Button1_Click()

Dim nu As Byte
Dim multdimArr As New Byte[]   ' dichiara l'array, ma senza dimensionarlo
 
   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 dimensionarlo

   For nu = 0 To 37
     multdimArr = New Byte[nu]
     multdimArr.Add(nu)
   Next


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

End


Array con dimensionamento successivo

' Gambas class file


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


Esempio con 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