Array multidimensionali con numero determinato di elementi: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
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 09: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