Utilizzare un Vettore al posto di una Matrice

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca

E' possibile utilizzare un Vettore (Array) 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, quindi un Oggetto 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