Differenze tra le versioni di "Array: creazione, modifica e riempimento"
Riga 102: | Riga 102: | ||
===Variazione del numero degli elementi di un array mediante il Metodo ''.Resize( )''=== | ===Variazione del numero degli elementi di un array mediante il Metodo ''.Resize( )''=== | ||
− | La variazione 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. | + | 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: | Esempio: | ||
Riga 119: | Riga 119: | ||
bb.<FONT Color=#B22222>Resize</font>(8) | bb.<FONT Color=#B22222>Resize</font>(8) | ||
Print bb.Count, bb[6] | Print bb.Count, bb[6] | ||
+ | |||
+ | bb.<FONT Color=#B22222>Resize</font>(3) | ||
+ | Print bb.Count, bb[2] | ||
'''End''' | '''End''' |
Versione delle 05:40, 27 mar 2018
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;
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 può essere fatta con la dichiarazione della variabile vettoriale:
Dim vettore As Integrer[] = [11, 22, 33, 44]
oppure successivamente:
Dim vettore As Integrer[] ..... 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 dichiarato ponendo:
- il nome indentificatore della variabile vettoriale;
- il tipo di valore 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 dell'array, e dunque con il conseguente uso delle previste sue risorse native (Proprietà e Metodi).
Infatti, per creare 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[]
Più in particolare con la parola-chiave New viene creato 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) Print bb.Count ' 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.Push(83) Print bb.Count, bb[5] 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 del numero degli elementi mediante il metodo ".Resize()": bb.Resize(8) Print bb.Count, bb[6] bb.Resize(3) Print bb.Count, bb[2] End