Differenze tra le versioni di "Utilizzare un Vettore al posto di una Matrice"
(Creata pagina con '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......') |
|||
(4 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 | + | 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. | ||
+ | <BR>Possiamo rappresentare visivamente questa ''Matrice'' nel modo seguente: | ||
+ | <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> | ||
+ | <TR><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td></tr> | ||
+ | <TR><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td></tr> | ||
+ | <TR><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></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> | ||
+ | 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: | ||
+ | <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> | ||
+ | <td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td><td width=20 bgcolor="#00FFFF"></td> | ||
+ | <td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td><td width=20 bgcolor="#FFFF00"></td> | ||
+ | <td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></td><td width=20 bgcolor="#00FF00"></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><td width=20 bgcolor="#0000FF"></td></tr> | ||
+ | </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": | ||
+ | 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 <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 |
Versione attuale delle 04:33, 10 giu 2024
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