Differenze tra le versioni di "Matrici (Vettori multidimensionali) definite"
Riga 94: | Riga 94: | ||
− | == | + | ==Ridefinizione degli elementi di un identificatore di Matrice== |
− | + | In modo analogo al caso del Vettore, visto sopra, si può ottenere la rideterminazione 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. | |
+ | <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: | |
− | + | '''Private''' b As Byte | |
− | + | '''Private''' bb As Byte[] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '''Private''' b As | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '''Private''' | ||
− | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
− | + | Inc b | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | <FONT color=gray>' ''Definiamo la "nuova" quantità di righe della Matrice bidimensionale'' | ||
+ | ' ''con un nuovo valore superiore di un'unità rispetto al precedente:</font> | ||
+ | bb = New Byte[<FONT color=#B22222>b</font>, 3] | ||
− | + | bb[b - 1, 1] = b | |
− | + | Print bb.Count, bb[b - 1, 1] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''End''' | '''End''' | ||
− | + | Anche in questo caso le eventuali assegnazioni di valori agli elementi della Matrice, verranno perse, in quanto ogni volta viene generato un nuovo oggetto variabile di tipo Matrice. Dunque gli Array multidimensionali sono ''statici''. | |
− | |||
− | |||
− | |||
− |
Versione delle 07:56, 15 lug 2015
Indice
Introduzione
Una "Matrice" (o anche Vettore 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
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 ed inizializzata prima della routine, all'esterno. Gli elementi della matrice annidata sono inizializzati con la notazione variabile[m, n].
Esempio:
' Viene dichiarata ed inizializzata la matrice: 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
Ridefinizione degli elementi di un identificatore di Matrice
In modo analogo al caso del Vettore, visto sopra, si può ottenere la rideterminazione del numero degli elementi di un identificatore di una Vettore multidimensionale, o Matrice. Per ottenere ciò, bisognerà incrementare l'indicazione della quantità degli elementi all'atto della creazione della matrice.
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:
Private b As Byte Private bb As Byte[] Public Sub Button1_Click() Inc b ' Definiamo la "nuova" quantità di righe della Matrice bidimensionale ' con un nuovo valore superiore di un'unità rispetto al precedente: bb = New Byte[b, 3] bb[b - 1, 1] = b Print bb.Count, bb[b - 1, 1] End
Anche in questo caso le eventuali assegnazioni di valori agli elementi della Matrice, verranno perse, in quanto ogni volta viene generato un nuovo oggetto variabile di tipo Matrice. Dunque gli Array multidimensionali sono statici.