Dopo aver parlato di tipi di dati, costanti e variabili, e prima di dedicarci alla programmazione vera e propria, dobbiamo ancora illustrare brevemente le procedure e le funzioni. In entrambi i casi si tratti di una sorta di "raggruppamento" di istruzioni che svolgono un'operazione comune. Come vedremo meglio più avanti, praticamente tutto il codice di un programma Visual Basic è contenuto all'interno di funzioni e procedure (chiamate genericamente routine).
La differenza fondamentale tra procedure e funzioni è che le seconde possono restituire dei valori, ad esempio il risultato di un'elaborazione oppure un valore di ritorno che determina se la routine ha avuto successo, mentre le procedure no.
Le procedure
Iniziamo esaminando la dichiarazione di una procedura:
Sub <nome>([Parametro As <Tipo>, ...]) ... End Sub
Tutte le dichiarazioni di procedura iniziano con la parole chiave Sub
. Segue il nome della routine, che deve rispettare le convenzione analizzate precedente a proposito delle costanti. Il nome deve essere seguito da parentesi, al cui interno è possibile inserire i parametri (opzionali) richiesti della procedura; non c'è limite al numero di parametri che si possono definire. Tali parametri possono essere visti come variabili (ritorneremo tra poco su questo punto).
La scritta End Sub è composta di parole riservate di VB e indica la fine di una procedura.
Vediamo ora un esempio di procedura, anche per illustrare meglio l'utilizzo dei parametri. Supponiamo di dover calcolare l'area di un cerchio: la formula è sempre la stessa, quello che cambia è solo la misura del raggio. Per tale motivo, invece di riscrivere ogni volta la formula, possiamo scrivere una procedura che richieda come parametro proprio la lunghezza del raggio:
Sub AreaCerchio(Raggio As Double)
...
End Sub
Supponiamo ancora di voler scrivere un programma che chiede all'utente la lunghezza del raggio e sulla base di questa calcola l'area del cerchio. Dopo aver definito la procedura come sopra descritto, ci basterà richiamarla passandogli come argomento la lunghezza del raggio; ad esempio:
Sub AreaCerchio(Raggio As Double) ... End Sub
Queste sono tre chiamate alla procedura con parametri diversi. Nel primo caso, Raggio varrà 5.4
, nel secondo 11
e nel terzo 6.9
. Ecco quindi come potrebbe risultare la procedura AreaCerchio
completa:
AreaCerchio 5.4 AreaCerchio 11 AreaCerchio 6.9
In questo esempio è stata usata la funzione MsgBox
, che visualizza un messaggio in una finestra di dialogo e attende che l'utente prema un tasto. A questo punto, utilizzando le tre chiamate sopra definite, otterremo questi risultati:
Le funzioni
Passiamo ora ad analizzare le funzioni, osservando che per esse vale la maggior parte delle considerazioni già fatte per le procedure. La dichiarazione di una funzione è questa:
Function <nome>([Parametro As <Tipo>, ...]) [As <Tipo>] ... End Function
Come si vede, in questo caso invece della parola chiave Sub
si usa Function
. La cosa nuova, cui si è già accennato, è che le funzioni possono restituire un valore. Nella dichiarazione, infatti, possiamo notare che, dopo l'elenco (opzionale) dei parametri c'è un ulteriore argomento opzionale, ancora una volta As <Tipo>
: esso indica il tipo di dato restituito dalla funzione. Come per le variabili, se non viene specificato tale parametro il valore restituito sarà di tipo Variant
.
Riprendiamo l'esempio di prima e trasformiamo la procedura AreaCerchio
in una funzione:
Function AreaCerchio(Raggio As Double) As Double AreaCerchio = Raggio * Raggio * 3.14 End Function
Quando si richiama questa funzione, AreaCerchio
contiene il valore dell'area del cerchio. Vediamo ora come si utilizzano le funzioni, basandoci come sempre sull'esempio.
Dim Area1 As Double, Area2 As Double, Area3 As Double Area1 = AreaCerchio(5.4) 'Area1 vale 91,5624 Area2 = AreaCerchio(11) 'Area2 vale 379,94 Area3 = AreaCerchio(6.9) 'Area3 vale 149,4954
Anzitutto abbiamo dichiarato tre variabili, Area1
, Area2
e Area3
, che conterranno i valori delle aree. Ad esse è stato poi assegnato il valore restituito dalla funzione AreaCerchio
.
Di fianco ad ogni istruzione è stato posto un commento; per inserire un commento in VB è necessario digitare un apice ('
): tutto quello che verrà scritto sulla stessa riga a destra dell'apice verrà considerato, appunto, come un commento, pertanto non verrà eseguito. Se adesso noi scrivessimo queste tre istruzioni:
MsgBox Area1 MsgBox Area2 MsgBox Area3
otterremo lo stesso risultato che è stato mostrato prima, cioè le tre finestre di messaggio contenenti rispettivamente 91,5624
, 379,94
e 149,4954
.
Prima di concludere questa panoramica, dobbiamo ancora presentare alcune istruzioni di VB che sono utilizzate praticamente in tutti i programmi: le strutture iterative, che saranno l'argomento della prossima lezione.