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

Da Gambas-it.org - Wikipedia.
 
(52 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 +
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 <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 possimo 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> (o ''esplicita'') 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:
 +
<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.
  
Descriveremo la creazione e l'assegnazione di valori a un array monodimensionale, o [http://it.wikipedia.org/wiki/Array vettore], con quantità di elementi non definita a priori, nonché i casi in cui la definizione della quantità degli elementi viene definita successivamente in modo esplicito o in modo dinamico.
+
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'' (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''.
  
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 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()".
  
Esso va dichiarato ponendo:
+
=Creazione di un array monodimensionale senza definizione del numero dei suoi elementi=
* il nome indentificatore della variabile vettoriale
+
Un array a una dimensione (monodimensionale) privo di definizione del numero dei suoi elementi può dichiarato ponendo:
* la parola chiave ''New'' (che determina la <SPAN Style="text-decoration:underline">creazione</span> di un nuovo oggetto Gambas);
+
* 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 con un vettore di tipo ''Byte'':  
+
Esempio:
  Dim vettore As New Byte[]
+
  Dim vettore As Integer<FONT Color=#B22222><B>[]</b></font>
  
 +
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 (''istanziare'') un array  (vettore) senza definizione del numero dei suoi elementi è necessario (come già accennato) utilizzate la parola-chiave '''New'''.
 +
<BR>Esempio:
 +
Dim vettore As <FONT Color=#B22222><B>New</b></font> Byte<FONT Color=#B22222><B>[]</b></font>
 +
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.
  
==Creazione di un array monodimensionale senza definizione del numero dei suoi elementi e loro riempimento==
+
===Incremento degli elementi===
Oltre alla dichiarazione dell'array (vettore), per ottenere l'incremento del numero di elementi interni, e dunque l'assegnazione di un determinato valore a ciascun nuovo elemento, bisognerà creare l'array utilizzando la parola ''New''. Un nuovo elemento verrà generato (incrementando così il numero di elementi dell'array in quel momento) aggiungendo un nuovo valore all'array mediante i Metodi ''.Add( )'' o ''Push( ).
+
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.
  '''Public''' Sub Button1_Click()
+
<BR>Esempio:
 +
  '''Public''' Sub Main()
 
   
 
   
   Dim bb As <FONT color=#B22222>New</font> Byte<FONT color=#B22222>[]</font>  <FONT color=gray>' ''All'interno delle parentesi quadre non è indicato alcun valore''</font>
+
   Dim bb As <FONT color=#B22222>New</font> Byte<FONT color=#B22222>[]</font>  <FONT color=gray>' ''All'interno delle parentesi quadre "non" è indicato alcun valore''</font>
 
   Dim j As Byte
 
   Dim j As Byte
 
   
 
   
Riga 34: 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 47: Riga 84:
  
  
 +
=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.
 +
<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>
 +
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.
  
==Modifica successiva del numero di elementi di un Vettore==
+
Esempio:
La definizione della quantità di elementi di un Vettore può essere modificata successivamente in codice con varie modalità.
+
'''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===
 +
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.
  
===Modifica della quantità degli elementi di un vettore con numero di elementi non definito===
+
Esempio:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
   Dim bb As New Byte[]
+
   Dim bb As New Byte<FONT color=#B22222>[</font>4<FONT color=#B22222>]</font>
 
   
 
   
 
  <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>
 
  bb = [0, 1, 2]
 
  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.Push(99)
+
  bb.<FONT color=#B22222>Push</font>(99)
   Print bb.Count
+
 
 +
<FONT color=gray>' ''Verifica del risultato:''</font>
 +
  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
 
    
 
    
<FONT color=gray>' ''Variazione del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
+
  bb = <FONT color=#B22222>[</font>1, 2, 3, 4, 5<FONT color=#B22222>]</font>
  bb.Resize(5)
+
  Print bb.Count, bb[4]
  Print a.Count
 
 
    
 
    
 
  '''End'''
 
  '''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.
  
===Modifica della quantità degli elementi di un vettore con numero di elementi già definito===
+
Esempio:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
   Dim bb As New Byte[3]
+
   Dim bb As New Byte[4]
 
   
 
   
 
  <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 del numero degli elementi mediante il metodo "'''.Push()'''" (si può usare anhe il metodo '''.Add()''' ):''</font>
 
  bb.Push(99)
 
  Print bb.Count
 
 
    
 
    
  <FONT color=gray>' ''Variazione 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.Resize(3)
+
  bb.<FONT Color=#B22222>Resize</font>(8)
  Print b.Count
+
  Print bb.Count, bb[6]
 +
    
 +
<FONT color=gray>' ''Variazione in diminuzione del numero degli elementi mediante il metodo "'''.Resize()'''":''</font>
 +
  bb.<FONT Color=#B22222>Resize</font>(3)
 +
  Print bb.Count, bb[2]
 
    
 
    
 
  '''End'''
 
  '''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:
==Definizione esplicita ''successiva'' della quantità degli elementi==
+
Private annidato[8] As Integer
In questo caso la quantità di elementi di un array non è definita con la dichiarazione, ma lo diviene successivamente. Si provvede, insomma, a stabilire il numero definito degli elementi dell'array semplicemente in una fase successiva e non preliminarmente.
+
 
 
Nella dichiarazione della variabile di tipo vettoriale ovviamente non sarà fatta alcuna determinazione del numero di elementi del vettore medesimo. Tale definizione avverra successivamente in routine: si provvederà alla creazione della variabile vettoriale e, quindi, alla definizione del numero dei suoi elementi.
 
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
  Dim ii As Integer[]  <FONT color=gray>' ''dichiara l'array, ma senza definirne la quantità degli elementi''</font>
 
 
   Dim i As Integer
 
   Dim i As Integer
 
 
<FONT color=gray>' ''Il vettore assume la quantità di elementi definiti manualmente con l'"InputBox":''</font>
 
  <FONT color=B22222>ii = New Integer[<B>8</b>]</font>
 
 
    
 
    
    For i = 0 To ii.Max
+
  For i = 0 To 7
  <FONT color=gray>' ''Riempie ogni elemento dell'array, però, ovviamente fino al suo numero massimo definito:''</font>
+
  <FONT Color=gray>' ''Assegna un valore a ciascun elemento del vettore annidato:''</font>
      ii[i] = i
+
    annidato[i] = 1000 * i
      Print ii[i]
+
  Next
    Next
+
 
 
 
 
  '''End'''
 
  '''End'''
e similmente in un array multidimensionale.
 
  
  
====Definizione del numero degli elementi sulla base della dimensione di un file====
+
=Attribuzione dei valori agli elementi di un array=
Se il numero di elementi del vettore dovrà assumere il valore uguale al numero di byte che compongono un file, si potrà utilizzare la proprietà ''.Size'' della Classe ''Stat()'':
+
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:
 +
<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()".
 +
 
 +
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()
 
  '''Public''' Sub Main()
 
  Dim bb As Byte[]
 
  Dim fl As File
 
 
 
 
  fl = Open "<FONT color=gray>''/percorso/del/file''</font>" For Read
 
 
    
 
    
  bb = New Byte[<FONT color=B22222>Lof(fl)</font>]
+
  Dim vettore As New Short[4]
 
  bb.Read(fl)
 
 
    
 
    
   Print bb.ToString()
+
   vettore<FONT Color=#B22222>[</font>2<FONT Color=#B22222>] =</font> 1234
 
    
 
    
   fl.Close
+
   Print vettore[2]
 
    
 
    
 
  '''End'''
 
  '''End'''
 +
 +
 +
 +
=Note=
 +
[1] Per gli array annidati vedere questa pagina: [[Array_annidati|Array annidati]]

Versione attuale delle 00: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