Differenze tra le versioni di "Utilizzare un Vettore al posto di una Matrice"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
E' possibile utilizzare un [http://it.wikipedia.org/wiki/Array Vettore] (''Array'') al posto di una [http://it.wikipedia.org/wiki/Matrice Matrice] mediante il ciclo ''[[FOR...NEXT|FOR...NEXT]]'' accompagnato da un salto assoluto con "''Step''".
+
E' possibile utilizzare un [http://it.wikipedia.org/wiki/Array Vettore] (''Array'' ) monodimensionale al posto di una [http://it.wikipedia.org/wiki/Matrice Matrice] mediante il ciclo "[[FOR...NEXT|FOR...NEXT]]" accompagnato da un salto assoluto con "STEP".
 
 
  
 
Poniamo l'esempio di una ''Matrice'' avente 5 colonne e 5 righe. Questa ''Matrice'' ci consentirà di suddividere, e quindi di gestire ed utilizzare, - avendo come punto di vista le sue righe - 5 gruppi di 5 (sulla base delle colonne) valori.
 
Poniamo l'esempio di una ''Matrice'' avente 5 colonne e 5 righe. Questa ''Matrice'' ci consentirà di suddividere, e quindi di gestire ed utilizzare, - avendo come punto di vista le sue righe - 5 gruppi di 5 (sulla base delle colonne) valori.
Riga 11: Riga 10:
 
<TR><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td></tr>
 
<TR><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td></tr>
 
</table>
 
</table>
In questo caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremo due cicli ''FOR'' annidati:
+
In questo caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremmo ''abitualmente'' due cicli "FOR" annidati:
  '''Private''' matr As New Integer[5,5]
+
  '''Public''' Sub Main()
+
 
......
+
  Dim matr As New Byte[5, 5]
......
 
 
'''Public''' Sub Button1_Click()
 
 
 
   Dim j, k As Byte
 
   Dim j, k As Byte
 
   
 
   
  For j = 0 To 4
+
  For j = 0 To 4
    For k = 0 To 4
+
    For k = 0 To 4
      Print mat[j,k]
+
      matr[j, k] = CInt(j + k)
    Next
+
    Next
  Next
+
  Next
+
 
 +
  For j = 0 To 4
 +
    For k = 0 To 4
 +
      Print matr[j, k]
 +
    Next
 +
  Next
 +
 
 
  '''End'''
 
  '''End'''
 
+
Utilizzando, invece, un ''Vettore'' a struttura monodimensionale e disponendo quei gruppi di valori linearmente all'interno di un'unica riga, avremmo visivamente quegli elementi disposti nel modo seguente:
 
 
 
 
Utilizzando, invece, un ''Vettore'', quindi un oggetto a struttura monodimensionale, e disponendo quei gruppi di valori all'interno di un'unica riga, avremo visivamente quegli elementi disposti nel modo seguente:
 
 
<TABLE border=1 cellpadding=3>
 
<TABLE border=1 cellpadding=3>
 
<TR><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td>
 
<TR><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td><td width=20 bgcolor="#FF0000"></td>
Riga 39: Riga 37:
 
<td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td></tr>
 
<td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td><td width=20 bgcolor="#0000FF"></td></tr>
 
</table>
 
</table>
In questo altro caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremo due cicli ''FOR'' annidati con l'aggiunta di un salto mediante ''Step'':
+
In questo altro caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremo due cicli "FOR" annidati con l'aggiunta di un salto mediante "Step":
  '''Private''' vett As New Integer[25]
+
  '''Public''' Sub Main()
 
    
 
    
......
+
  Dim vett As New Byte[25]
......
 
 
'''Public''' Sub Button1_Click()
 
 
 
   Dim j, k As Byte
 
   Dim j, k As Byte
 
   
 
   
  For j = 0 To vett.Max Step 5 <FONT color=#006400>' ''Il salto con "Step" ci permette di passare al gruppo di valori successivo''</font>
+
  For j = 0 To vett.Max
    For k = 0 To 4
+
    vett[j] = j
      Print vett[j + k]
+
  Next
    Next
+
 
  Next
+
  For j = 0 To vett.Max Step 5   <FONT Color=gray>' ''Il salto con "Step" ci permette di passare al gruppo di valori successivo''</font>
+
    For k = 0 To 4
 +
      Print vett[j + k]
 +
    Next
 +
  Next
 +
 
 
  '''End'''
 
  '''End'''

Versione attuale delle 21:36, 24 dic 2021

E' possibile utilizzare un Vettore (Array ) monodimensionale al posto di una Matrice mediante il ciclo "FOR...NEXT" accompagnato da un salto assoluto con "STEP".

Poniamo l'esempio di una Matrice avente 5 colonne e 5 righe. Questa Matrice ci consentirà di suddividere, e quindi di gestire ed utilizzare, - avendo come punto di vista le sue righe - 5 gruppi di 5 (sulla base delle colonne) valori.
Possiamo rappresentare visivamente questa Matrice nel modo seguente:

In questo caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremmo abitualmente due cicli "FOR" annidati:

Public Sub Main()
 
 Dim matr As New Byte[5, 5]
 Dim j, k As Byte

 For j = 0 To 4
   For k = 0 To 4
     matr[j, k] = CInt(j + k)
   Next
 Next
 
 For j = 0 To 4
   For k = 0 To 4
     Print matr[j, k]
   Next
 Next
 
End

Utilizzando, invece, un Vettore a struttura monodimensionale e disponendo quei gruppi di valori linearmente all'interno di un'unica riga, avremmo visivamente quegli elementi disposti nel modo seguente:

In questo altro caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremo due cicli "FOR" annidati con l'aggiunta di un salto mediante "Step":

Public Sub Main()
 
 Dim vett As New Byte[25]
 Dim j, k As Byte

 For j = 0 To vett.Max
   vett[j] = j
 Next
 
 For j = 0 To vett.Max Step 5   ' Il salto con "Step" ci permette di passare al gruppo di valori successivo
   For k = 0 To 4
     Print vett[j + k]
   Next
 Next
 
End