Differenze tra le versioni di "Array: creazione, modifica e riempimento"

Da Gambas-it.org - Wikipedia.
 
(27 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Un ''array'', o ''vettore'', è una struttura ordinata, come una lista, di dati, appartenenti al <SPAN Style="text-decoration:underline">medesimo ''tipo''</span>.
+
Un ''array'', o ''vettore'', è una struttura ordinata - come una sorta di lista - di dati appartenenti al <SPAN Style="text-decoration:underline">medesimo ''tipo''</span>.
<BR>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.
+
<BR>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 <SPAN Style="text-decoration:underline">zero</span>. Infatti i dati dell'array sono immagazzinati in un'area di memoria in modo <SPAN Style="text-decoration:underline">contiguo</span>, ossia in modo tale che in memoria i dati dell'array - seguenti il primo appartenente a tale array - sono salvati l'uno immediatamente dopo l'altro senza alcuna soluzione di continuità.
 +
<TABLE border="1" cellspacing="0">
 +
  <TR><TD colspan=5 align=center>ARRAY</td></tr>
 +
  <TR><TD>Indice 0</td><TD>Indice 1</td><TD>Indice 2</td><TD>Indice 3</td><TD>etc......</td></tr>
 +
  <TR><TD>1° dato</td><TD>2° dato</td><TD>3° dato</td><TD>4° dato</td><TD>etc......</td></tr>
 +
</table>
 
   
 
   
  
 
In Gambas possiamo suddividere gli ''array'', o ''vettori'', sotto due profili:
 
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" (in questa pagina prenderemo in considerazione solo i vettori ad "una" dimensione).
* della definizione del numero della propria ''dimensione''.
+
* della definizione del numero dei propri "elementi";
  
Con riguardo al primo profilo possiamo ulteriormente suddividere i vettori in due tipi:
+
Con riguardo al secondo profilo possiamo ulteriormente suddividere i vettori in due tipi:
 
<BR>1) vettori con quantità <SPAN Style="text-decoration:underline">definita</span> dei propri elementi;
 
<BR>1) vettori con quantità <SPAN Style="text-decoration:underline">definita</span> dei propri elementi;
 
<BR>2) vettori con quantità <SPAN Style="text-decoration:underline">non definita</span> dei propri elementi.
 
<BR>2) vettori con quantità <SPAN Style="text-decoration:underline">non definita</span> dei propri elementi.
  
 
Il suddetto primo tipo può essere a sua volta distinto in:
 
Il suddetto primo tipo può essere a sua volta distinto in:
<BR>a) vettori con definizione ''esplicita'' dei valori presenti nei suoi elementi;
+
<BR>a) vettori con definizione ''esplicita'' dei valori presenti nei suoi elementi (''inizializzazione'');
 
<BR>b) vettori con definizione ''implicita'' dei valori presenti nei suoi elementi.
 
<BR>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.
 
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.
<BR>La definizione ''esplicita'' può essere fatta con la dichiarazione della variabile vettoriale:
+
<BR>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 Integrer[] = [1100, 2200, 3300, 4400]
+
  Dim vettore As Integer[] = [1100, 2200, 3300, 4400]
 
oppure successivamente:
 
oppure successivamente:
  Dim vettore As Integrer[]
+
  Dim vettore As Integer[]
 
  .....
 
  .....
 
  vettore = [11, 22, 33, 44]
 
  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''.
+
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( )''".
+
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()".
  
 
=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 dichiarato ponendo:
+
Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi può dichiarato ponendo:
* il nome indentificatore della variabile vettoriale;
+
* il nome identificatore della variabile vettoriale;
* il tipo di valore assunto dal vettore;
+
* 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:
  Dim vettore As Integer[]
+
  Dim vettore As Integer<FONT Color=#B22222><B>[]</b></font>
  
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'').
+
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'').
<BR>Infatti, per creare un array  (vettore) senza definizione del numero dei suoi elementi è necessario (come già accennato) utilizzate la parola-chiave ''New''.
+
<BR>Infatti, per creare (''istanziare'') un array  (vettore) senza definizione del numero dei suoi elementi è necessario (come già accennato) utilizzate la parola-chiave '''New'''.
 
<BR>Esempio:
 
<BR>Esempio:
 
  Dim vettore As <FONT Color=#B22222><B>New</b></font> Byte<FONT Color=#B22222><B>[]</b></font>
 
  Dim vettore As <FONT Color=#B22222><B>New</b></font> Byte<FONT Color=#B22222><B>[]</b></font>
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.
+
oppure successivamente nel corpo della routine:
 +
Dim vettore As Byte<FONT Color=#B22222><B>[]</b></font>
 +
 +
vettore <FONT Color=#B22222><B>= New</b></font> Byte<FONT Color=#B22222><B>[]</b></font>
 +
In maniera analoga in caso di dichiarazione di una variabile ''Globale'' di un vettore di dati:
 +
Private vettore As New Byte[]
 +
oppure successivamente nel corpo della routine:
 +
Private vettore As Byte[]
 +
 +
 +
Public Sub ......
 +
 +
  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===
 
===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.
+
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.
 
<BR>Esempio:
 
<BR>Esempio:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
Riga 53: Riga 71:
 
   For j = 0 To 9
 
   For j = 0 To 9
 
    
 
    
  <FONT color=gray>' ''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.''
+
  <FONT color=gray>' ''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.''
 
  ' ''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.''</font>
 
  ' ''Intanto al nuovo elemento attribuito al vettore viene contemporaneamente assegnato un valore.''</font>
Riga 64: Riga 82:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
  
 
=Creazione di un array monodimensionale con definizione del numero dei suoi elementi=
 
=Creazione di un array monodimensionale con definizione del numero dei suoi elementi=
Riga 69: Riga 88:
 
<BR>Esempio:
 
<BR>Esempio:
 
  Dim vettore As <FONT Color=#B22222><B>New</b></font> Byte<B><FONT Color=#B22222>[</font><FONT Color=blue>8</font><FONT Color=#B22222>]</font></b>
 
  Dim vettore As <FONT Color=#B22222><B>New</b></font> Byte<B><FONT Color=#B22222>[</font><FONT Color=blue>8</font><FONT Color=#B22222>]</font></b>
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''.
+
Se il vettore viene creato non contestualmente alla sua dichiarazione, è possibile definire numero degli elementi di un vettore anche impostando il suo valore tra parentesi "tonde", da porre alla destra delle due parentesi "quadre" (che devono ovviamente restare vuote):
 +
'''Public''' Sub Main()
 +
 +
  Dim ii As Integer[]
 +
 
 +
  ii = New Integer[]<FONT Color=#B22222>(32)</font>
 +
 
 +
  Print ii.Count
 +
 
 +
'''End'''
 +
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'':
 +
Dim vettore As Integer[] = [1100, 2200, 3300, 4400]
 +
 
 +
====Definizione del numero degli elementi di un vettore mediante una Funzione====
 +
E' possibile attribuire il numero degli elementi di un vettore anche attraverso una Funzione che ritorni un valore intero.
 +
 
 +
Esempio:
 +
'''Public''' Sub Main()
 +
 +
  Dim ii As Integer[]
 +
 
 +
  ii = New Integer[<FONT Color=#B22222>Elementi(8)</font>]
 +
 
 +
  Print ii.Count
 +
 +
'''End'''
 +
 +
'''Private''' Function Elementi(i As Integer) As Integer
 +
 
 +
  Return i * 8
 +
 
 +
'''End'''
  
 
===Incremento degli elementi===
 
===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.
+
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:
 
Esempio:
Riga 80: Riga 130:
 
   
 
   
 
  <FONT color=gray>' ''Verifica dello stato iniziale del numero degli elementi del vettore:''</font>
 
  <FONT color=gray>' ''Verifica dello stato iniziale del numero degli elementi del vettore:''</font>
  Print bb.Count
+
  Print bb.Count
 
   
 
   
 
  <FONT color=gray>' ''Variazione del numero degli elementi mediante il metodo "'''.Push()'''" (si può usare anhe il metodo '''.Add()''' ):''</font>
 
  <FONT color=gray>' ''Variazione del numero degli elementi mediante il metodo "'''.Push()'''" (si può usare anhe il metodo '''.Add()''' ):''</font>
  bb.<FONT color=#B22222>Push</font>(99)
+
  bb.<FONT color=#B22222>Push</font>(99)
 
    
 
    
 
  <FONT color=gray>' ''Verifica del risultato:''</font>
 
  <FONT color=gray>' ''Verifica del risultato:''</font>
  Print bb.Count
+
  Print bb.Count
 
    
 
    
 
  '''End'''
 
  '''End'''
Riga 94: Riga 144:
 
   Dim bb As New Byte[4]
 
   Dim bb As New Byte[4]
 
    
 
    
  Print bb.Count
+
  Print bb.Count
 
    
 
    
  bb = <FONT color=#B22222>[</font>1, 2, 3, 4, 5<FONT color=#B22222>]</font>
+
  bb = <FONT color=#B22222>[</font>1, 2, 3, 4, 5<FONT color=#B22222>]</font>
  Print bb.Count, bb[4]
+
  Print bb.Count, bb[4]
 
    
 
    
 
  '''End'''
 
  '''End'''
  
===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 - 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.
+
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 110: Riga 160:
 
   
 
   
 
  <FONT color=gray>' ''Verifica dello stato iniziale del numero degli elementi del vettore:''</font>
 
  <FONT color=gray>' ''Verifica dello stato iniziale del numero degli elementi del vettore:''</font>
  Print bb.Count
+
  Print bb.Count
 
    
 
    
 
  <FONT color=gray>' ''Variazione del numero degli elementi mediante "'''dichiarazione esplicita'''":''</font>
 
  <FONT color=gray>' ''Variazione del numero degli elementi mediante "'''dichiarazione esplicita'''":''</font>
  bb = [0, 1, 2, 3]
+
  bb = [0, 1, 2, 3]
  Print bb.Count
+
  Print bb.Count
 
    
 
    
 
  <FONT color=gray>' ''Variazione in incremento del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
 
  <FONT color=gray>' ''Variazione in incremento del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
  bb.<FONT Color=#B22222>Resize</font>(8)
+
  bb.<FONT Color=#B22222>Resize</font>(8)
  Print bb.Count, bb[6]
+
  Print bb.Count, bb[6]
 
    
 
    
 
  <FONT color=gray>' ''Variazione in diminuzione del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
 
  <FONT color=gray>' ''Variazione in diminuzione del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
  bb.<FONT Color=#B22222>Resize</font>(3)
+
  bb.<FONT Color=#B22222>Resize</font>(3)
  Print bb.Count, bb[2]
+
  Print bb.Count, bb[2]
 
    
 
    
 +
'''End'''
 +
 +
==Creazione di un array monodimensionale ''annidato''==
 +
Similmente per le matrici annidate <SUP>&#091;[[#Note|Nota 1]]&#093;</sup> un array monodimensionale ''annidato'' non può essere locale, e pertanto va dichiarato prima della routine, all'esterno, e senza la parola-chiave "New". La dimensioni ed il numero degli elementi del vettore ''annidato'' sono definiti con la notazione: variabile[n] .
 +
 +
Esempio:
 +
Private annidato[8] As Integer
 +
 +
'''Public''' Sub Main()
 +
 
 +
  Dim i As Integer
 +
 
 +
  For i = 0 To 7
 +
<FONT Color=gray>' ''Assegna un valore a ciascun elemento del vettore annidato:''</font>
 +
    annidato[i] = 1000 * i
 +
  Next
 +
 
 
  '''End'''
 
  '''End'''
  
Riga 132: Riga 199:
 
Più in particolare, con riferimento ad un vettore privo di definizione del numero dei propri elementi l'attribuzione può avvenire:
 
Più in particolare, con riferimento ad un vettore privo di definizione del numero dei propri elementi l'attribuzione può avvenire:
 
<BR>1) all'atto della esplicitazione degli elementi;
 
<BR>1) all'atto della esplicitazione degli elementi;
<BR>2) contestualmente e mediante l'incremento del numero dei propri elementi mediante i previsti Metodi ''.Add( )'' o ''Push( ).
+
<BR>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:
 
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:
Riga 144: Riga 211:
 
    
 
    
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Note=
 +
[1] Per gli array annidati vedere questa pagina: [[Array_annidati|Array annidati]]

Versione attuale delle 01:24, 2 mag 2023

Un array, o vettore, è una struttura ordinata - come una sorta di 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. Infatti i dati dell'array sono immagazzinati in un'area di memoria in modo contiguo, ossia in modo tale che in memoria i dati dell'array - seguenti il primo appartenente a tale array - sono salvati l'uno immediatamente dopo l'altro senza alcuna soluzione di continuità.

ARRAY
Indice 0Indice 1Indice 2Indice 3etc......
1° dato2° dato3° dato4° datoetc......


In Gambas possiamo suddividere gli array, o vettori, sotto due profili:

  • della definizione del numero della propria "dimensione" (in questa pagina prenderemo in considerazione solo i vettori ad "una" dimensione).
  • della definizione del numero dei propri "elementi";

Con riguardo al secondo 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()".

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[]

In maniera analoga in caso di dichiarazione di una variabile Globale di un vettore di dati:

Private vettore As New Byte[]

oppure successivamente nel corpo della routine:

Private vettore As Byte[]


Public Sub ......

 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]

Se il vettore viene creato non contestualmente alla sua dichiarazione, è possibile definire numero degli elementi di un vettore anche impostando il suo valore tra parentesi "tonde", da porre alla destra delle due parentesi "quadre" (che devono ovviamente restare vuote):

Public Sub Main()

 Dim ii As Integer[]
 
 ii = New Integer[](32)
 
 Print ii.Count
 
End

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:

Dim vettore As Integer[] = [1100, 2200, 3300, 4400]

Definizione del numero degli elementi di un vettore mediante una Funzione

E' possibile attribuire il numero degli elementi di un vettore anche attraverso una Funzione che ritorni un valore intero.

Esempio:

Public Sub Main()

 Dim ii As Integer[]
 
 ii = New Integer[Elementi(8)]
 
 Print ii.Count

End

Private Function Elementi(i As Integer) As Integer
 
 Return i * 8
 
End

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

Creazione di un array monodimensionale annidato

Similmente per le matrici annidate [Nota 1] un array monodimensionale annidato non può essere locale, e pertanto va dichiarato prima della routine, all'esterno, e senza la parola-chiave "New". La dimensioni ed il numero degli elementi del vettore annidato sono definiti con la notazione: variabile[n] .

Esempio:

Private annidato[8] As Integer

Public Sub Main()
 
 Dim i As Integer
 
 For i = 0 To 7
' Assegna un valore a ciascun elemento del vettore annidato:
   annidato[i] = 1000 * i
 Next
 
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


Note

[1] Per gli array annidati vedere questa pagina: Array annidati