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

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
Esporremo qui il caso in cui l'array non è dimensionato a priori, ma lo sia successivamente in modo esplicito o in modo dinamico.
+
Esporremo qui il caso 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.
  
  
==Array senza alcun dimensionamento==
+
 
 +
==Array monodimensionale senza definizione della quantità dei propri elementi==
  
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
 
  Dim nu As Byte
 
  Dim nu As Byte
  Dim multdimArr As New Byte[]  <FONT color=#006400>' ''dichiara l'array, ma senza dimensionarlo''</font>
+
  Dim multdimArr As New 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
 
     For nu = 0 To 37
 
       multdimArr.Add(nu)
 
       multdimArr.Add(nu)
 
     Next
 
     Next
 
   
 
   
  <FONT color=#006400>' ''verifica:</font>
+
  <FONT color=#006400>' ''verifica:''</font>
 
     For nu = 0 To 37
 
     For nu = 0 To 37
 
       Print multdimArr[nu]
 
       Print multdimArr[nu]
Riga 25: Riga 27:
 
   
 
   
 
   Dim nu As Byte
 
   Dim nu As Byte
   Dim multdimArr As Byte[]  <FONT color=#006400>' ''dichiara l'array, ma senza dimensionarlo''</font>
+
   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
 
     For nu = 0 To 37
 
       multdimArr = New Byte[nu]
 
       multdimArr = New Byte[nu]
Riga 36: Riga 39:
 
       Print multdimArr[nu]
 
       Print multdimArr[nu]
 
     Next
 
     Next
 +
 +
'''End'''
 +
 +
 +
 +
==Incremento dinamico dell'indice di un array multidimensionale==
 +
Per poter incrementare dinamicamente un array multidimensionale dovremo necessariamente inizialmente dichiarare la sua dimensione, ponendone il valore di entrambi gli 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
 +
 +
 +
'''Public''' Sub Button2_Click()
 +
 +
Dim col As Integer = 2
 +
 +
 +
  multdimArr = New Integer[rig, col]
 +
 +
  multdimArr[rig - 1, 1] = rig
 +
     
 +
  Print multdimArr[rig - 1, 1]
 +
 
 +
  Inc rig
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 10:05, 19 ago 2012

Esporremo qui il caso 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.


Array monodimensionale senza definizione della quantità dei propri elementi

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


Incremento dinamico dell'indice di un array multidimensionale

Per poter incrementare dinamicamente un array multidimensionale dovremo necessariamente inizialmente dichiarare la sua dimensione, ponendone il valore di entrambi gli 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


Public Sub Button2_Click()

Dim col As Integer = 2


 multdimArr = New Integer[rig, col]

  multdimArr[rig - 1, 1] = rig
     
  Print multdimArr[rig - 1, 1]
 
 Inc rig

End


Array con dimensionamento successivo

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