Differenze tra le versioni di "Scrivere una Funzione"
(→...e se la Funzione deve restituire due o più risultati ?) |
|||
Riga 1: | Riga 1: | ||
− | Una '''Funzione''' è una routine, chiamata da una routine principale, alla quale è delegato il compito di svolgere una serie di operazioni, e delle quali essa restituisce alla routine principale ''chiamante'' il risultato. | + | Una '''Funzione'''{[[#Note|1]]} è una routine, chiamata da una routine principale, alla quale è delegato il compito di svolgere una serie di operazioni, e delle quali essa restituisce alla routine principale ''chiamante'' il risultato. |
Esempio: | Esempio: | ||
Riga 28: | Riga 28: | ||
Dim somma As Integer | Dim somma As Integer | ||
− | somma = aF + bF <FONT color=#006500>' {[[#Note| | + | somma = aF + bF <FONT color=#006500>' {[[#Note|2]]}</font> |
''<FONT color=#006500>' Viene restituito il risultato alla routine chiamante:''</font> | ''<FONT color=#006500>' Viene restituito il risultato alla routine chiamante:''</font> | ||
Riga 101: | Riga 101: | ||
===Note=== | ===Note=== | ||
− | [1] La tipologia delle variabili ''aF'' e ''bF'' è stata già dichiarata all'interno dei parametri della Funzione: (aF As Integer, bF As Integer). | + | [1] «''La "funzione" di una cosa è ciò che la solo cosa può compiere.''» (Platone, ''La Repubblica'') |
+ | [2] La tipologia delle variabili ''aF'' e ''bF'' è stata già dichiarata all'interno dei parametri della Funzione: (aF As Integer, bF As Integer). |
Versione delle 09:36, 30 giu 2012
Una Funzione{1} è una routine, chiamata da una routine principale, alla quale è delegato il compito di svolgere una serie di operazioni, e delle quali essa restituisce alla routine principale chiamante il risultato.
Esempio:
Public Sub Button1_Click() ' routine principale chiamante Dim risultato_di_ritorno As Integer Dim a, b As Integer a = 2 b = 3 ' Chiama la Funzione, e le passa i due valori, affinché li elabori. ' Alla fine la Funzione restituirà il risultato che riempirà la variabile integer "risultato_di_ritorno": risultato_di_ritorno = funzione_chiamata(a, b) ' Mostriamo il risultato in console: Print "Risultato di ritorno dalla funzione = "; risultato_di_ritorno End ' La routine Funzione contiene il proprio nome ed i parametri come variabili dei valori passati dalla routine chiamante, ' e non prevede l'aggiunta della parola Sub. ' Essa, poiché restituisce - in questo nostro esempio - un valore Integer, termina la propria dichiarazione con: As Integer. Public Function funzione_chiamata(aF As Integer, bF As Integer) As Integer Dim somma As Integer somma = aF + bF ' {2} ' Viene restituito il risultato alla routine chiamante: Return somma End
In console avremo coerentemente:
Risultato di ritorno dalla funzione = 5
...e se la Funzione deve restituire due o più risultati ?
Per ottenere da una medesima Funzione due o più risultati (quindi senza dover utilizzare una variabile globale), possiamo utilizzare un array.
Facciamo un esempio di una Funzione che restituisce un duplice risultato:
Public Sub Button1_Click() ' routine principale chiamante Dim risultato_di_ritorno As Integer[] Dim a, b As Integer a = 2 b = 3 ' Chiama la Funzione, e le passa i due valori, affinché li elabori. ' Alla fine la Funzione restituirà il risultato che riempirà la variabile integer[] "risultato_di_ritorno": risultato_di_ritorno = funzione_chiamata(a, b) ' Mostriamo il primo risultato (la somma) in console: Print "Risultato (somma) di ritorno dalla funzione = "; risultato_di_ritorno[0] ' Mostriamo il secondo risultato (la differenza) in console: Print "Risultato (differenza) di ritorno dalla funzione = "; risultato_di_ritorno[1] End ' La routine Funzione, poiché restituisce - in questo nostro esempio - un valore Integer[], ' termina la propria dichiarazione con: As Integer[]. Public Function funzione_chiamata(aF As Integer, bF As Integer) As Integer[] Dim somma As Integer Dim differenza As Integer Dim doppiorisultato As New Integer[] somma = aF + bF differenza = bF - aF ' Nel primo campo dell'array inseriamo il valore contenuto dalla variabile Integer "somma": doppiorisultato.Add(somma) doppiorisultato[0] = somma ' Nel secondo campo dell'array inseriamo il valore contenuto dalla variabile Integer "differenza": doppiorisultato.Add(differenza) doppiorisultato[1] = differenza ' Dunque ora la variabile Integer[] "doppiorisultato" contiene due valori. ' Tale duplice contenuto di questa variabile Integer[] viene restituito alla routine principale chiamante: Return doppiorisultato End
In console avremo coerentemente:
Risultato (somma) di ritorno dalla funzione = 5
Risultato (differenza) di ritorno dalla funzione = 1
Note
[1] «La "funzione" di una cosa è ciò che la solo cosa può compiere.» (Platone, La Repubblica) [2] La tipologia delle variabili aF e bF è stata già dichiarata all'interno dei parametri della Funzione: (aF As Integer, bF As Integer).