Passaggio di un vettore come parametro di una funzione
In VB si può passare un intero vettore come parametro di una subroutine o di una funzione. Il passaggio avviene sempre per riferimento, cioè il sottoprogramma riceve in ogni caso il vettore originale e non una sua copia (qualsiasi modifica effettuata sul parametro della funzione si ripercuote sul contenuto del vettore originale).
Si consideri ad esempio la seguente funzione che trova il valore più grande fra quelli contenuti in un vettore di interi. Si noti come viene dichiarato il parametro A: si tratta di un vettore e non di una semplice variabile e dunque bisogna accompagnarne il nome con le parentesi tonde vuote.
Function Trovamax (A() As Integer) As Integer
Dim Max as Integer, I as Integer
For I=Lbound(A) to Ubound(A)
If A(I) < Max Then
Max = A(I)
End IF
Next I
Trovamax = Max
End Function
Naturalmente la funzione lavora correttamente solo se il vettore è completamente "pieno". Se invece non tutti gli elementi contengono valori validi, bisogna passare alla funzione anche il valore dell'indice massimo del vettore.
In VB una funzione può restituire come risultato un intero vettore. Per esempio la seguente funzione Lettere torna un vettore di stringhe contenente le lettere dell'alfabeto in ordine crescente (il numero di lettere è specificato dal parametro QuanteLettere).
Function Lettere(QuanteLettere As Integer) As String()
Redim Ris(QuanteLettere-1) As String
Dim Cnt as Integer
For Cnt = 0 to QuanteLettere-1
Ris(Cnt) = Chr(Asc("A")+Cnt)
Next Cnt
End Function
Si noti la dichiarazione di Lettere come As String() con le parentesi tonde: significa appunto che il risultato della funzione è un vettore di stringhe. La funzione Asc restituisce il codice Ascii di un dato carattere; la funzione Chr, al contrario, converte un codice Ascii in un carattere.
La funzione Lettere dev'essere chiamata per esempio così:
Dim Caratteri() as String
Caratteri() = Lettere(21)
Si noti che Caratteri è stato dichiarato come vettore dinamico: viene ridimensionato automaticamente alla chiamata della funzione (in questo caso con 21 elementi, numerati da 0 a 20).
Sito realizzato in base al template offerto da
http://www.graphixmania.it