Differenze tra le versioni di "Array multidimensionali con numero determinato di elementi"

Da Gambas-it.org - Wikipedia.
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.
<BR>Esempio:
+
 
 +
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'''
 
 
===Esempio pratico===
 
Mostriamo un semplice esempio di uso di un array locale multidimensionale con numero determinato di elementi:
 
'''Public''' Sub Main()
 
 
 
  Dim bb As New Byte[3, 2]
 
  Dim x, y As Byte
 
 
 
<FONT Color=gray>' ''Esssendo bidimensionale l'array, 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'''
 
  '''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 monodimensionale1° elemento2° elemento
2° array monodimensionale1° elemento2° elemento3° elemento4° elemento5° elemento
3° array monodimensionale1° elemento2° elemento3° elemento4° 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