Array multidimensionali con numero determinato di elementi

Da Gambas-it.org - Wikipedia.

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 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()
  ......

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]

 ......

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

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
  
' Esssendo bidimensionale l'array, 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