Scrivere una Funzione: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 23: | Riga 23: | ||
'' <FONT color=#006500>' La routine Funzione contiene il proprio nome ed i parametri come variabili dei valori passati dalla routine chiamante, | '' <FONT color=#006500>' 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''. | '' ' e non prevede l'aggiunta della parola ''Sub''. | ||
'' ' Essa, poiché restituisce - in questo nostro esempio - un valore Integer, termina la dichiarazione con: As Integer.</font> | '' ' Essa, poiché restituisce - in questo nostro esempio - un valore Integer, termina la propria dichiarazione con: As Integer.</font> | ||
'''Public Function''' funzione_chiamata(aF As Integer, bF As Integer) As Integer | '''Public Function''' funzione_chiamata(aF As Integer, bF As Integer) As Integer | ||
Dim somma As Integer | Dim somma As Integer | ||
somma = aF + bF{[[#Note|1]]} | somma = aF + bF <FONT color=#006500>' {[[#Note|1]]}</font> | ||
''<FONT color=#006500>' Viene restituito il risultato alla routine chiamante:''</font> | ''<FONT color=#006500>' Viene restituito il risultato alla routine chiamante:''</font> | ||
| Riga 38: | Riga 38: | ||
<BR>Risultato di ritorno dalla funzione = 5 | <BR>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 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() ''<FONT color=#006500>' routine principale chiamante''</font> | |||
Dim risultato_di_ritorno As Integer[] | |||
Dim a, b As Integer | |||
a = 2 | |||
b = 3 | |||
''<FONT color=#006500>' 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":</font> | |||
risultato_di_ritorno = funzione_chiamata(a, b) | |||
''<FONT color=#006500>' Mostriamo il primo risultato (la somma) in console:</font> | |||
Print "Risultato (somma) di ritorno dalla funzione = "; risultato_di_ritorno[0] | |||
''<FONT color=#006500>' Mostriamo il secondo risultato (la differenza) in console:</font> | |||
Print "Risultato (differenza) di ritorno dalla funzione = "; risultato_di_ritorno[1] | |||
'''End''' | |||
'' <FONT color=#006500>' La routine Funzione, poiché restituisce - in questo nostro esempio - un valore Integer[], | |||
'' ' termina la propria dichiarazione con: As Integer[].''</font> | |||
'''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 | |||
'' <FONT color=#006500>' Nel primo campo dell'array inseriamo il valore contenuto dalla variabile Integer "somma":''</font> | |||
doppiorisultato.Add(somma) | |||
doppiorisultato[0] = somma | |||
'' <FONT color=#006500>' Nel secondo campo dell'array inseriamo il valore contenuto dalla variabile Integer "differenza":''</font> | |||
doppiorisultato.Add(differenza) | |||
doppiorisultato[1] = differenza | |||
''<FONT color=#006500>' Dunque ora la variabile Integer[] "doppiorisultato" contiene due valori. | |||
'' ' Tale duplice contenuto di questa variabile Integer[] viene restituito alla routine principale chiamante:''</font> | |||
Return doppiorisultato | |||
'''End''' | |||
Versione delle 17:17, 12 feb 2012
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.
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 ' {1}
' 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 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
Note
[1] La tipologia delle variabili aF e bF è stata già dichiarata all'interno dei parametri della Funzione: (aF As Integer, bF As Integer).