Array dinamici – creazione e riempimento
Da Gambas-it.org - Wikipedia.
Versione del 19 ago 2012 alle 10:26 di Vuott (Discussione | contributi)
Esporremo qui i casi in cui la quantità degli elementi presenti in un array non è definita a priori, ma lo sia successivamente in modo esplicito o in modo dinamico.
Indice
Incremento dinamico 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 successiva della quantità degli elementi
Esempio con 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
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