Differenze tra le versioni di "Array multidimensionali statici"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "==Introduzione== Una "'''Matrice'''" (o anche ''Vettore multidimensionale'' o ''array multidimensionale'') è un insieme di numeri ordinati secondo righe e colonne di ordine <...")
 
Riga 98: Riga 98:
  
  
==Definizione successiva degli elementi di un identificatore di Matrice==
+
==Definizione degli elementi di una Matrice mediante una variabile==
Si può ottenere la determinazione ''successiva'' del numero degli elementi di un identificatore di una ''[http://it.wikipedia.org/wiki/Array#Array_multidimensionali Vettore multidimensionale]'', o ''[http://it.wikipedia.org/wiki/Matrice Matrice]''. Per ottenere ciò, bisognerà incrementare l'indicazione della quantità degli elementi all'atto della creazione della matrice.
+
Il numero di elementi di una Matrice (array multidimensionale) può essere definito - in sede di creazione della Matrice medesima - anche con una variabile.
<BR>Ogni dimensione andrà espressa da una variabile, il cui valore sarà di volta in volta incrementato. Il valore di partenza di detta variabile dovrà essere almeno pari a 1 (uno) .
 
  
Facciamo l'esempio di una ''Matrice'' bidimensionale, di cui intendiamo ''definire'' dinamicamente (ossia incrementare) il numero degli elementi solamente della prima dimensione (riga), per consentire conseguentemente di volta in volta così il loro utilizzo:
+
Mostriamo un esempio nel quale la definizione del numero degli elementi della prima dimensione di una Matrice ''annidata'' avviene assegnando un valore (che viene stabilito casualmente con un numero compreso tra 1 e 5) all'atto della creazione di una nuova variabile di Matrice cliccando su un ''Button'':
'''Private''' b As Byte
+
  Private bb As Byte[]
  '''Private''' bb As Byte[]
 
 
   
 
   
 
   
 
   
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
   
 
   
  Inc b
+
  Dim bb As Byte[]
 +
  Dim b As Byte
 
   
 
   
  <FONT color=gray>' ''Definiamo ora la quantità di righe della Matrice bidimensionale''
+
  b = Rnd(1, 6)
' ''(in questo esempio con un un'unità superiore alla quantità precedentemente definita'':</font>
+
 +
  <FONT color=gray>' ''Definiamo ora la quantità di righe della Matrice bidimensionale'':</font>
 
   bb = New Byte[<FONT color=#B22222>b</font>, 3]
 
   bb = New Byte[<FONT color=#B22222>b</font>, 3]
+
   
  bb[b - 1, 1] = b
+
   Print bb.Count
 
   Print bb.Count, bb[b - 1, 1]
 
 
   
 
   
 
  '''End'''
 
  '''End'''
 
In questo caso le eventuali assegnazioni precedenti di valori agli elementi della Matrice, verranno perse, in quanto ogni volta viene generato un nuovo oggetto variabile di tipo Matrice. Pertanto gli Array multidimensionali e le matrici sono ''statici''.
 
In questo caso le eventuali assegnazioni precedenti di valori agli elementi della Matrice, verranno perse, in quanto ogni volta viene generato un nuovo oggetto variabile di tipo Matrice. Pertanto gli Array multidimensionali e le matrici sono ''statici''.

Versione delle 04:47, 25 ago 2015

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".

La Matrice è sempre statica, cioè sia il numero delle sue dimensioni sia il numero degli elementi di ciascuna sua dimensione è sempre determinato.
Esempio di Matrice costituita da tre dimensioni, la prima delle quali è formata da 2 elementi, la seconda da 5 e la terza da 4:

matrix[2, 5, 4]


Dichiarazione ed inizializzazione delle Matrici

In Gambas una Matrice può essere locale o globale, e viene dichiarata secondo la seguente sintassi:

DIM Identificatore AS [ NEW ] TipoDati [ dimensioni degli elementi della matrice ]

Esempio:

Public Sub Main()

 Dim bb As New Byte[3, 4]

  ......

La dimensione di una Matrice in Gambas non può essere superiore ad otto.

Esempio:

Public Sub Main()

' Viene dichiarata una matrice con dimensione di 8 elementi:
 Dim bb As New Byte[3, 4, 2, 2, 3, 20, 33, 5]

  ......

Per conoscere il numero delle dimensioni di una matrice, è possibile usare la proprietà .Bounds.Count:

Public Sub Main()

 Dim bb As New Byte[3, 4, 2]

  Print bb.Bounds.Count

End


Dichiarazione ed inizializzazione delle Matrici annidate

Una Matrice annidata è una matrice che viene allocata direttamente all'interno di un oggetto. Essa non può essere locale, e pertanto va dichiarata prima della routine, all'esterno. Le dimensioni ed il numero degli elementi della matrice annidata sono definiti con la notazione variabile[m, n].

Esempio:

' Viene dichiarata la matrice e definite le sue dimensioni ed il numero degli elementi:
Private matrix[5, 5] As Integer


Public Sub Main()

' Qui viene usata la matrice "annidata":
   matrix[....
    ......

End


Creazione di una matrice annidata

' Definiamo una matrice "annidata" di due righe e due colonne per un totale di quattro elementi:
Private a[2, 2] As String


Public Sub Button1_Click()   ' Scrive la matrice "annidata"

 Dim x, y As Integer
 Dim b As String
 
 For x = 0 To 1
   For y = 0 To 1

' Immettiamo quattro nomi.
' Per esempio, i primi due potrebbero essere un nome di animale ed un nome di pianta che iniziano per "A";
' gli altri due potrebbero essere un nome di animale ed un nome di pianta che iniziano per "B":
     b = InputBox("Immetti un nome: ")
     a[x, y] = b
   Next
 Next

End


Public Sub Button2_Click()   ' legge la matrice "annidata"

 Dim c, d As Integer

  For c = 0 To 1
   For d = 0 To 1
     Print a[c, d]
   Next
  Print "------"
 Next

End


Definizione degli elementi di una Matrice mediante una variabile

Il numero di elementi di una Matrice (array multidimensionale) può essere definito - in sede di creazione della Matrice medesima - anche con una variabile.

Mostriamo un esempio nel quale la definizione del numero degli elementi della prima dimensione di una Matrice annidata avviene assegnando un valore (che viene stabilito casualmente con un numero compreso tra 1 e 5) all'atto della creazione di una nuova variabile di Matrice cliccando su un Button:

Private bb As Byte[]


Public Sub Button1_Click()

 Dim bb As Byte[]
 Dim b As Byte

  b = Rnd(1, 6)

' Definiamo ora la quantità di righe della Matrice bidimensionale:
  bb = New Byte[b, 3]
   
  Print bb.Count

End

In questo caso le eventuali assegnazioni precedenti di valori agli elementi della Matrice, verranno perse, in quanto ogni volta viene generato un nuovo oggetto variabile di tipo Matrice. Pertanto gli Array multidimensionali e le matrici sono statici.