Differenze tra le versioni di "Array multidimensionali con numero determinato di elementi"
(Una versione intermedia di uno stesso utente non è mostrata) | |||
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''". | ||
+ | |||
+ | In Gambas vi è anche questo tipo di [[Array_multidimensionali_statici|''Array'']] (vettori), al quale viene in sede di definizione specificato il numero dei propri ''elementi'' costitutivi delle sue dimensioni. | ||
=Dichiarazione ed inizializzazione delle Matrici= | =Dichiarazione ed inizializzazione delle Matrici= | ||
Riga 13: | Riga 15: | ||
Private array As New Integer[2, 5, 4] | Private array As New Integer[2, 5, 4] | ||
− | + | Public Sub Main() | |
...... | ...... | ||
Nei casi sopra mostrati la dichiarazione prevede un ''array multidimensionale'' contenente tre ''array monodimensionali'', che a loro volta contengono un numero determinato di valori (''elementi'' ) di tipo ''Intero'': | Nei casi sopra mostrati la dichiarazione prevede un ''array multidimensionale'' contenente tre ''array monodimensionali'', che a loro volta contengono un numero determinato di valori (''elementi'' ) di tipo ''Intero'': | ||
Riga 25: | Riga 27: | ||
==Assegnare un valore a un ''Elemento'' di un array multidimensionale== | ==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>: | 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] | Dim ar As New Integer[2, 2] | ||
Riga 39: | Riga 41: | ||
Print ar[1, 1] | Print ar[1, 1] | ||
− | + | End | |
Di seguito un altro esempio, nel quale la valorizzazione e la lettura di verifica avverrà con un ciclo "FOR": | 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 bb As New Byte[3, 2] | ||
Riga 61: | Riga 63: | ||
Next | Next | ||
− | + | End | |
==Limite massimo del numero di dimensioni in un array multidimensionale== | ==Limite massimo del numero di dimensioni in un array multidimensionale== | ||
Riga 67: | Riga 69: | ||
Esempio: | Esempio: | ||
− | + | 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] | ||
Riga 75: | Riga 77: | ||
==Conoscere il numero delle dimensioni e degli elementi contenuti da un array multidimensionale== | ==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() | |
<Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | <Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | ||
Riga 82: | Riga 84: | ||
Print bb<FONT Color=#B22222>.Bounds.Count</font> | Print bb<FONT Color=#B22222>.Bounds.Count</font> | ||
− | + | End | |
Per conoscere la quantità complessiva degli elementi posseduti dall'array multidimensionale, si deve usare la Proprietà ".Count": | Per conoscere la quantità complessiva degli elementi posseduti dall'array multidimensionale, si deve usare la Proprietà ".Count": | ||
− | + | Public Sub Main() | |
<Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | <Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | ||
Riga 91: | Riga 93: | ||
Print bb<FONT Color=#B22222>.Count</font> | Print bb<FONT Color=#B22222>.Count</font> | ||
− | + | End | |
Per conoscere la quantità di una singola dimensione dell'array multidimensionale, si deve usare la Proprietà ".Count[<FONT Color=gray>indice_delle_dimensioni_della_matrice</font>]": | Per conoscere la quantità di una singola dimensione dell'array multidimensionale, si deve usare la Proprietà ".Count[<FONT Color=gray>indice_delle_dimensioni_della_matrice</font>]": | ||
− | + | Public Sub Main() | |
<Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | <Font Color=gray>' ''Viene dichiarata una matrice a 3 dimensioni, ciascuna delle quali ha un numero diverso di elementi:''</font> | ||
Riga 102: | Riga 104: | ||
Print bb<FONT Color=#B22222>.Bounds['''2''']</font> | Print bb<FONT Color=#B22222>.Bounds['''2''']</font> | ||
− | + | End |
Versione attuale delle 04:58, 19 dic 2023
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".
In Gambas vi è anche questo tipo di Array (vettori), al quale viene in sede di definizione specificato il numero dei propri elementi costitutivi delle sue dimensioni.
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 prevede un array multidimensionale contenente 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.Bounds[0] Print bb.Bounds[1] Print bb.Bounds[2] End