Differenze tra le versioni di "Array dinamici – creazione e riempimento"

Da Gambas-it.org - Wikipedia.
 
(44 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
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.
+
#REDIRECT [[Array:_creazione,_modifica_e_riempimento]]
 
 
 
 
==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à generato (incrementando così il numero di elementi dell'array in quel momento) aggiungendo un nuovo valore all'array mediante il metodo ''.Add()''.
 
'''Public Sub Button1_Click()
 
 
  Dim bb As <FONT color=#B22222>New</font> Byte<FONT color=#B22222>[]</font>  <FONT color=#006400>' ''All'interno delle paretesi quadre non è indicato alcun valore''</font>
 
 
 
  For j = 0 To 9
 
 
<FONT color=#006400>' ''Ad ogni ciclo viene assegnato un valore all'array,
 
' ''e quindi viene creato un nuovo elemento di indice successivo all'ultimo che era stato generato:''</font>
 
      bb.<FONT color=#B22222>Add</font>(j)
 
 
  Next
 
 
'''End'''
 
 
 
 
 
==Definizione dinamica (incremento) della quantità degli elementi==
 
In questo caso la quantità di elementi di un array non è definita preliminarmente, ma essa lo diventa successivamente.
 
 
 
===In un array monodimensionale===
 
'''Public''' Sub Button1_Click()
 
 
  Dim nu As Byte
 
  Dim multdimArr As Byte[]  <FONT color=#006400>' ''dichiara l'array, ma senza definirne la quantità dei propri elementi''</font>
 
 
<FONT color=#006400>' ''Incrementa dinamicamente la quantità degli elementi dell'array''</font>
 
    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      <FONT color=#006400>' ''Si comincia con l'avere una riga''</font>
 
 
 
'''Public''' Sub Button2_Click()
 
 
<FONT color=#006400>' ''Incrementa dinamicamente la quantità delle righe dell'array''</font>
 
  multdimArr = New Integer[rig, 2]
 
 
<FONT color=#006400>' ''Assegna il valore numerico medesimo alla nuova riga della 1<Sup>a</sup> colonna:''</font>
 
  multdimArr[rig - 1, 1] = rig
 
     
 
  Print multdimArr[rig - 1, 1]
 
 
 
  Inc rig
 
 
'''End'''
 
 
 
 
 
 
 
==Definizione esplicita successiva della quantità degli elementi<font>==
 
===In un array monodimensionale===
 
'''Public''' Sub Button1_Click()
 
 
  Dim ind1 As Integer = 38
 
  Dim nu As Integer
 
  Dim multdimArr As Integer[]  <FONT color=#006400>' ''dichiara l'array, ma senza dimensionarlo''</font>
 
 
<FONT color=#006400>' ''dimensiona "ora" l'array:''</font>
 
    multdimArr = New Integer[ind1]
 
 
    For nu = 0 To multdimArr.Max
 
<FONT color=#006400>' '' riempie ogni elemento dell'array:''</font>
 
      multdimArr[nu] = nu
 
      Print multdimArr[nu]
 
    Next
 
 
 
'''End'''
 
 
 
 
 
===In un array multidimensionale===
 
'''Public''' Sub Button1_Click()
 
 
  <FONT color=#B22222>Dim multdimArr As Integer[]</font>
 
  Dim rig, col As Integer
 
  Dim nuR, nuC As Integer
 
 
<FONT color=#006400>' ''dimensiona "ora" l'array:''</font>
 
  rig = InputBox("Inserisci tu la dimensione delle righe dell'array:")
 
  col = InputBox("Inserisci tu la dimensione delle colonne dell'array:")
 
 
  <FONT color=#B22222>multdimArr = New Integer[rig, col]</font>
 
 
 
  For nuR = 0 to rig - 1
 
    For nuC = 0 To col - 1
 
      multdimArr[nuR, nuC] = nuC
 
      Print multdimArr[nuR, nuC]
 
    Next
 
  Next
 
 
'''End'''
 

Versione attuale delle 09:13, 15 dic 2020