Differenze tra le versioni di "Array: creazione, modifica e riempimento"
Riga 28: | Riga 28: | ||
=Creazione di un array monodimensionale senza definizione del numero dei suoi elementi= | =Creazione di un array monodimensionale senza definizione del numero dei suoi elementi= | ||
Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi può dichiarato ponendo: | Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi può dichiarato ponendo: | ||
− | * il nome | + | * il nome identificatore della variabile vettoriale; |
− | * il tipo di | + | * il tipo di dato assunto dal vettore; |
* due parentesi quadre prive al loro interno di qualsiasi carattere. | * due parentesi quadre prive al loro interno di qualsiasi carattere. | ||
Esempio: | Esempio: |
Versione delle 09:42, 10 ott 2020
Un array, o vettore, è una struttura ordinata, come una lista, di dati, appartenenti al medesimo tipo.
Ogni elemento costitutivo di tale struttura di dati omogenei ha un ordine preciso all’interno della lista, ed è identificato da un indice univoco che inizia da zero.
In Gambas possiamo suddividere gli array, o vettori, sotto due profili:
- della definizione del numero dei propri elementi;
- della definizione del numero della propria dimensione.
Con riguardo al primo profilo possiamo ulteriormente suddividere i vettori in due tipi:
1) vettori con quantità definita dei propri elementi;
2) vettori con quantità non definita dei propri elementi.
Il suddetto primo tipo può essere a sua volta distinto in:
a) vettori con definizione esplicita dei valori presenti nei suoi elementi (inizializzazione);
b) vettori con definizione implicita dei valori presenti nei suoi elementi.
Nel vettore con definizione esplicita dei valori la quantità degli elementi è definita in modo esplicito ed evidente ponendo fra parentesi quadre e saparati da virgole i valori medesimi.
La definizione esplicita (inizializzazione) può essere fatta con la dichiarazione della variabile vettoriale (l'array può essere dichiarato e inizializzato allo stesso tempo):
Dim vettore As Integer[] = [1100, 2200, 3300, 4400]
oppure successivamente:
Dim vettore As Integer[] ..... vettore = [11, 22, 33, 44]
Nel caso in cui i valori non sono esplicitati, essi potranno essere attribuiti a ciascun elemento in modo dinamico mediante i Metodi ".Add( )" o ".Push( )" tipici dell'Oggetto Array.
Ad ogni modo, un vettore, sia con numero definito di elementi, sia con numero non definito di elementi, è suscettibile di incrementare, ogni qualvolta lo preveda il codice, la quantità dei propri elementi mediante i predetti appositi Metodi ".Add( )" e ".Push( )".
Indice
Creazione di un array monodimensionale senza definizione del numero dei suoi elementi
Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi può dichiarato ponendo:
- il nome identificatore della variabile vettoriale;
- il tipo di dato assunto dal vettore;
- due parentesi quadre prive al loro interno di qualsiasi carattere.
Esempio:
Dim vettore As Integer[]
La sola e mera dichiarazione dell'array (vettore) non è sufficiente per la creazione (istanziazione) dell'array, e dunque con il conseguente uso delle previste sue risorse native (Proprietà e Metodi).
Infatti, per creare (istanziare) un array (vettore) senza definizione del numero dei suoi elementi è necessario (come già accennato) utilizzate la parola-chiave New.
Esempio:
Dim vettore As New Byte[]
oppure successivamente nel corpo della routine:
Dim vettore As Byte[] vettore = New Byte[]
Più in particolare con la parola-chiave New viene creato (istanziato) un Oggetto di tipo Array, per la complessa organizzazione interna del quale Gambas alloca in sostanza la necessaria memoria.
Incremento degli elementi
La parola-chiave New è necessaria, dunque, per poter effettuare l'incremento del numero dei suoi elementi interni mediante i Metodi .Add( ) o Push( ), che avviene con la contestuale assegnazione di un determinato valore a ciascun nuovo elemento incrementato.
Esempio:
Public Sub Main() Dim bb As New Byte[] ' All'interno delle parentesi quadre "non" è indicato alcun valore Dim j As Byte ' Allo stato iniziale in questo caso il numero degli elementi del vettore è uguale a zero: Print bb.Count For j = 0 To 9 ' Ad ogni ciclo mediante il metodo ".Push()" (si può usare anhe il metodo .Add() ) viene incrementato di una unità il numero degli elementi del vettore. ' Pertanto viene creato un nuovo elemento di indice successivo all'ultimo che era stato generato. ' Intanto al nuovo elemento attribuito al vettore viene contemporaneamente assegnato un valore. bb.Push(j) Next ' Al termine il numero degli elementi del vettore è incrementato. In tal caso è uguale a 10. Print bb.Count End
Creazione di un array monodimensionale con definizione del numero dei suoi elementi
Un array monodimensionale con definizione del numero dei suoi elementi sarà creato in maniera analoga a quella degli array senza definizione del numero dei suoi elementi, con la differenza, però, che all'interno delle parentesi quadre sarà specificato il numero degli elementi che compongono il vettore.
Esempio:
Dim vettore As New Byte[8]
Va sottolineato che con la definizione esplicita dei valori, contenuti dal vettore, la creazione dell'Oggetto Array avviene automaticamente, non risultando così necessaria in tal caso l'uso della parola-chiave New.
Incremento degli elementi
Anche nel caso di array con dichiarazione del numero degli elementi, l'incremento del loro numero avviene mediante i Metodi .Add( ) o Push( ), che avviene con la contestuale assegnazione di un determinato valore a ciascun nuovo elemento incrementato.
Esempio:
Public Sub Main() Dim bb As New Byte[4] ' Verifica dello stato iniziale del numero degli elementi del vettore: Print bb.Count ' Variazione del numero degli elementi mediante il metodo ".Push()" (si può usare anhe il metodo .Add() ): bb.Push(99) ' Verifica del risultato: Print bb.Count End
L'incremento avvenire anche con successiva esplicitazione degli elementi:
Public Sub Main() Dim bb As New Byte[4] Print bb.Count bb = [1, 2, 3, 4, 5] Print bb.Count, bb[4] End
Variazione del numero degli elementi di un array mediante il Metodo .Resize( )
La variazione - in incremento e in decremento - del numero degli elementi di un array può avvenire mediante il Metodo ".Resize( )" dell'Oggetto Array. Se la variazione è in incremento, allora i nuovi elementi risulteranno istanziati a zero.
Esempio:
Public Sub Main() Dim bb As New Byte[4] ' Verifica dello stato iniziale del numero degli elementi del vettore: Print bb.Count ' Variazione del numero degli elementi mediante "dichiarazione esplicita": bb = [0, 1, 2, 3] Print bb.Count ' Variazione in incremento del numero degli elementi mediante il metodo ".Resize()": bb.Resize(8) Print bb.Count, bb[6] ' Variazione in diminuzione del numero degli elementi mediante il metodo ".Resize()": bb.Resize(3) Print bb.Count, bb[2] End
Attribuzione dei valori agli elementi di un array
l'attribuzione di valori agli elementi è possibile solo se è stato creato, nelle modalità sopra esposte, l'Oggetto Array.
Più in particolare, con riferimento ad un vettore privo di definizione del numero dei propri elementi l'attribuzione può avvenire:
1) all'atto della esplicitazione degli elementi;
2) contestualmente e mediante l'incremento del numero dei propri elementi mediante i previsti Metodi .Add( ) o Push( ).
Con riferimento invece agli array aventi un numero definito di elementi, e comunque in ogni caso in cui l'array abbia almeno un elemento, l'attribuzione di un valore avvenire mediante assegnazione del medesimo all'indice relativo all'elemento:
Public Sub Main() Dim vettore As New Short[4] vettore[2] = 1234 Print vettore[2] End