Differenze tra le versioni di "Utilizzare un Vettore al posto di una Matrice"
Riga 11: | Riga 11: | ||
<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 | + | In questo caso per leggere i valori contenuti dagli elementi delle righe e delle colonne useremmo ''abitualmente'' due cicli ''FOR'' annidati: |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim matr As New | + | Dim matr As New Byte[5, 5] |
Dim j, k As Byte | Dim j, k As Byte | ||
Riga 32: | Riga 32: | ||
− | + | 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: | |
− | Utilizzando, invece, un ''Vettore'', quindi un | ||
<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 44: | Riga 43: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | Dim vett As New | + | Dim vett As New Byte[25] |
Dim j, k As Byte | Dim j, k As Byte | ||
− | + | ||
− | 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 j = 0 To vett.Max |
+ | vett[j] = j | ||
+ | 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 | For k = 0 To 4 | ||
Print vett[j + k] | Print vett[j + k] | ||
Next | Next | ||
Next | Next | ||
− | + | ||
'''End''' | '''End''' |
Versione delle 13:18, 16 mar 2017
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