Differenze tra le versioni di "Array multidimensionali con numero determinato di elementi"
Riga 4: | Riga 4: | ||
<BR>Un elemento della Matrice occupa la posizione individuata dall'intersezione tra la ''m''-esima riga e la ''n''-esima colonna della Matrice. | <BR>Un elemento della Matrice occupa la posizione individuata dall'intersezione tra la ''m''-esima riga e la ''n''-esima colonna della Matrice. | ||
<BR>Se la Matrice è formata da una riga ed una colonna, allora è considerata un ''Vettore''. Se la Matrice è formata da una sola riga e da più colonne, allora la Matrice è definita: "''Matrice riga''". Se la Matrice è formata da più righe, ma da una sola colonna, allora la Matrice è definita: "''Matrice colonna''". | <BR>Se la Matrice è formata da una riga ed una colonna, allora è considerata un ''Vettore''. Se la Matrice è formata da una sola riga e da più colonne, allora la Matrice è definita: "''Matrice riga''". Se la Matrice è formata da più righe, ma da una sola colonna, allora la Matrice è definita: "''Matrice colonna''". | ||
− | |||
=Dichiarazione ed inizializzazione delle Matrici= | =Dichiarazione ed inizializzazione delle Matrici= | ||
Riga 16: | Riga 15: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
...... | ...... | ||
+ | Nei casi sopra mostrati la dichiarazione l'<I>array multidimensionale</i> contiene tre ''array monodimensionali'' che a loro volta contengono un numero determinato di valori (''elementi'' ) di tipo ''Intero''. | ||
+ | <TABLE border="1" cellspacing="0"> | ||
+ | <TR><TD></td><TD colspan=5 align=center><B>ARRAY MULTIDIMENSIONALE</b></td></tr> | ||
+ | <TR><TD><FONT Size=1>1° array monodimensionale</font></td><TD>1° elemento</td><TD>2° elemento</td> | ||
+ | <TR><TD><FONT Size=1>2° array monodimensionale</font></td><TD>1° elemento</td><TD>2° elemento</td><TD>3° elemento</td><TD>4° elemento</td><TD>5° elemento</td></tr> | ||
+ | <TR><TD><FONT Size=1>3° array monodimensionale</font></td><TD>1° elemento</td><TD>2° elemento</td><TD>3° elemento</td><TD>4° elemento</td></tr> | ||
+ | </table> | ||
+ | |||
+ | ==Assegnare un valore a un ''Elemento'' di un array multidimensionale== | ||
+ | Per assegnare un valore ad un ''Elemento'' di array multidimensionale, si dovrà individuare l'<I>Elemento</i> da valorizzare, tenendo conto del suo numero d'<I>Indice</i>: | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim ar As New Integer[2, 2] | ||
+ | |||
+ | <FONT Color=#B22222>ar[0, 0] = 0 | ||
+ | ar[0, 1] = 1 | ||
+ | ar[1, 0] = 10 | ||
+ | ar[1, 1] = 11</font> | ||
+ | |||
+ | Print ar[0, 0] | ||
+ | Print ar[0, 1] | ||
+ | Print ar[1, 0] | ||
+ | Print ar[1, 1] | ||
+ | |||
+ | '''End''' | ||
+ | Di seguito un altro esempio, nel quale la valorizzazione e la lettura di verifica avverrà con un ciclo "FOR": | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim bb As New Byte[3, 2] | ||
+ | Dim x, y As Byte | ||
+ | |||
+ | <FONT Color=gray>' ''Poiché l'array è bidimensionale, ci serviamo di due cicli "FOR" per assegnare un valore a ciascun suo elemento:''</font> | ||
+ | For x = 0 To 2 | ||
+ | For y = 0 To 1 | ||
+ | bb[x, y] = x + y | ||
+ | Next | ||
+ | Next | ||
+ | |||
+ | <FONT Color=gray>' ''Infine legge i valori assegnati all'array:''</font> | ||
+ | For x = 0 To 2 | ||
+ | For y = 0 To 1 | ||
+ | Print bb[x, y] | ||
+ | Next | ||
+ | Print "------" | ||
+ | Next | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | ==Limite massimo del numero di dimensioni in un array multidimensionale== | ||
La ''dimensione'' di una Matrice in Gambas non può essere superiore ad otto. | La ''dimensione'' di una Matrice in Gambas non può essere superiore ad otto. | ||
− | + | ||
+ | Esempio: | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
− | |||
<Font Color=gray>' ''Viene dichiarata una matrice a 8 dimensioni:''</font> | <Font Color=gray>' ''Viene dichiarata una matrice a 8 dimensioni:''</font> | ||
Dim bb As New Byte[3, 4, 2, 2, 3, 20, 33, 5] | Dim bb As New Byte[3, 4, 2, 2, 3, 20, 33, 5] | ||
...... | ...... | ||
+ | |||
+ | ==Conoscere il numero delle dimensioni e degli elementi contenuti da un array multidimensionale== | ||
Per conoscere il numero delle dimensioni di un array multidimensionale, è possibile usare la Proprietà ".Bounds.Count": | Per conoscere il numero delle dimensioni di un array multidimensionale, è possibile usare la Proprietà ".Bounds.Count": | ||
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 51: | Riga 101: | ||
Print bb<FONT Color=#B22222>.Count['''1''']</font> | Print bb<FONT Color=#B22222>.Count['''1''']</font> | ||
Print bb<FONT Color=#B22222>.Count['''2''']</font> | Print bb<FONT Color=#B22222>.Count['''2''']</font> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''End''' | '''End''' |
Versione delle 08:20, 4 gen 2022
Introduzione
Una "Matrice" (o anche Vettore multidimensionale o array multidimensionale) è un insieme di numeri ordinati secondo righe e colonne di ordine m x n, tale da formare una tabella di elementi, ove m e n sono numeri interi e stabiliti. In particolare m è il numero delle righe e n il numero delle colonne.
Se m = n la Matrice viene definita: quadrata.
Un elemento della Matrice occupa la posizione individuata dall'intersezione tra la m-esima riga e la n-esima colonna della Matrice.
Se la Matrice è formata da una riga ed una colonna, allora è considerata un Vettore. Se la Matrice è formata da una sola riga e da più colonne, allora la Matrice è definita: "Matrice riga". Se la Matrice è formata da più righe, ma da una sola colonna, allora la Matrice è definita: "Matrice colonna".
Dichiarazione ed inizializzazione delle Matrici
In Gambas una Matrice può essere locale o globale e viene dichiarata impostando le sue dimensioni tra parentesi quadre alla destra del tipo di dato di appartenenza secondo la seguente sintassi:
DIM Identificatore AS [ NEW ] TipoDati [ dimensioni degli elementi della matrice ]
Esempio di array costituito da tre dimensioni, la prima delle quali è formata da 2 elementi, la seconda da 5 e la terza da 4:
Dim array As New Integer[2, 5, 4]
ovviamente nel caso di dichiarazione di una variabile array globale:
Private array As New Integer[2, 5, 4] Public Sub Main() ......
Nei casi sopra mostrati la dichiarazione l'array multidimensionale contiene tre array monodimensionali che a loro volta contengono un numero determinato di valori (elementi ) di tipo Intero.
ARRAY MULTIDIMENSIONALE | |||||
1° array monodimensionale | 1° elemento | 2° elemento | |||
2° array monodimensionale | 1° elemento | 2° elemento | 3° elemento | 4° elemento | 5° elemento |
3° array monodimensionale | 1° elemento | 2° elemento | 3° elemento | 4° elemento |
Assegnare un valore a un Elemento di un array multidimensionale
Per assegnare un valore ad un Elemento di array multidimensionale, si dovrà individuare l'Elemento da valorizzare, tenendo conto del suo numero d'Indice:
Public Sub Main() Dim ar As New Integer[2, 2] ar[0, 0] = 0 ar[0, 1] = 1 ar[1, 0] = 10 ar[1, 1] = 11 Print ar[0, 0] Print ar[0, 1] Print ar[1, 0] Print ar[1, 1] End
Di seguito un altro esempio, nel quale la valorizzazione e la lettura di verifica avverrà con un ciclo "FOR":
Public Sub Main() Dim bb As New Byte[3, 2] Dim x, y As Byte ' Poiché l'array è bidimensionale, ci serviamo di due cicli "FOR" per assegnare un valore a ciascun suo elemento: For x = 0 To 2 For y = 0 To 1 bb[x, y] = x + y Next Next ' Infine legge i valori assegnati all'array: For x = 0 To 2 For y = 0 To 1 Print bb[x, y] Next Print "------" Next End
Limite massimo del numero di dimensioni in un array multidimensionale
La dimensione di una Matrice in Gambas non può essere superiore ad otto.
Esempio:
Public Sub Main() ' Viene dichiarata una matrice a 8 dimensioni: Dim bb As New Byte[3, 4, 2, 2, 3, 20, 33, 5] ......
Conoscere il numero delle dimensioni e degli elementi contenuti da un array multidimensionale
Per conoscere il numero delle dimensioni di un array multidimensionale, è possibile usare la Proprietà ".Bounds.Count":
Public Sub Main() ' Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi: Dim bb As New Byte[3, 4, 2] Print bb.Bounds.Count End
Per conoscere la quantità complessiva degli elementi posseduti dall'array multidimensionale, si deve usare la Proprietà ".Count":
Public Sub Main() ' Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi: Dim bb As New Byte[3, 4, 2] Print bb.Count End
Per conoscere la quantità di una singola dimensione dell'array multidimensionale, si deve usare la Proprietà ".Count[indice_delle_dimensioni_della_matrice]":
Public Sub Main() ' Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi: Dim bb As New Byte[3, 4, 2] Print bb.Count[0] Print bb.Count[1] Print bb.Count[2] End