- presentazione del sito
- Registrazione
- Eventi, mostre, convegni ed iniziative segnalate dalle aziende
- Recensioni ed articoli
- Le Mailing Lists
- La rivista Pc Ciechi
- Wiki
- Chi siamo
- Donazioni
- Un progetto degno di nota: Wintalbra
- Come navigare in questo sito
- rss
- Bancomat Accessibili sul territorio nazionale
- Contattaci
- I sostenitori di SpazioAusili
Corso visual basic script\Procedure e funzioni
Guido Ruggeri su winguidotecnica, 21\12\2009, h. 14.31.
Nel prossimo esercizio, il numero 4, cominceremo a rendere i
nostri programmini più interessanti, perché finalmente
introdurremo una forma di interazione con l'utente.
Prima però sarà bene tornare a parlare delle routine.
Routine è un termine ormai desueto, perché nella
programmazione a oggetti, la parola routine corrisponde al
termine: metodo.
Comunque, continueremo ad usare il termine routine, tranne
che quando tratteremo della programmazione a oggetti: lì
parleremo di metodi.
Quello che voglio dire adesso è che le routine, o metodi
che dir si voglia, si dividono in due categorie: procedure e
funzioni.
Finora abbiamo conosciuto soltanto la routine Msgbox, e
l'abbiamo usata come se fosse una procedura, anche se in
realtà vedremo più avanti che Msgbox è una funzione.
Una funzione è una routine che, al termine della sua
elaborazione, ci restituisce un valore di uscita.
La prima funzione con cui faremo la conoscenza sarà la
InputBox.
E' con questa che cominceremo a rendere i nostri programmi
interattivi.
Cosa fa la funzione InputBox?
Riporto integralmente la descrizione che è scritta in
MSDN, il sito della Microsoft di riferimento per i
programmatori:
"Visualizza un messaggio in una finestra di dialogo, attende
che l'utente immetta del testo o scelga un pulsante, quindi
restituisce una stringa che include il contenuto della
casella di testo."
Dunque InputBox, al pari di Msgbox, fa apparire un
messaggio. Però in più ha che ci restituisce, sotto
forma di stringa, ciò che l'utente ha scritto, in risposta
a quel messaggio, in un aposito campo di editazione.
Supponiamo quindi di voler usare la InputBox per invitare
l'utente a scrivere il suo nominativo.
Il modo di scrivere la chiamata è questo:
Nominativo = InputBox("Come ti chiami?")
In questo modo, otteniamo la risposta scritta dall'utente
nella variabile Nominativo.
Abbiamo quindi usato la routine come una funzione, cioè:
la chiamata alla routine è preceduta dal segno di uguale,
perché il risultato della funzione deve essere assegnato
ad una variabile;
il parametro che segue la chiamata alla routine è messo
tra parentesi.
Avremmo potuto usare la InputBox come una procedura?
Certamente. In quel caso avremmo scritto:
InputBox "Come ti chiami?"
Non c'è il segno di uguale e non ci sono le parentesi.
L'utente si sarebbe ugualmente visto apparire una finestra
con il messaggio "Come ti chiami?" e un campo di editazione
in cui scrivere la risposta.
Però in questo modo la risposta si sarebbe persa
all'uscita della routine. Quindi non avremmo potuto
utilizzarla.
Invece, chiamando InputBox come una funzione, la risposta
del'utente rimane memorizzata nella variabile Nominativo. E
quindi possiamo farne uso nelle successive elaborazioni.
Riepilogando: una funzione è una routine che, alla sua
conclusione, restituisce un valore, mentre una procedura non
lo fa.
Guido Ruggeri.
***
Ed ora, un po' di pubblicità
:d.
scusa Guido, potresti definire meglio le parole "funzione"
e "procedura"?
Risposta:
Tizio dice a Caio: "Caio, telefona a Sempronio e fagli gli
auguri per natale".
Caio esegue e telefona a Sempronio. Alla fine della
telefonata, Caio non ha nulla da riferire a Tizio, e la cosa
si è conclusa.
Altra storia.
Tizio dice a Caio: "Caio, telefona a Sempronio, e fatti dire
il numero di telefono di suo cognato."
Caio esegue e telefona a Sempronio. Alla fine delle
telefonata, Caio riferisce a Tizio: "Allora, il numero di
telefono del cognato di Sempronio è: ", eccetera eccetera.
La prima storia è una procedura.
La seconda è una funzione.
Una funzione è una routine che, alla sua conclusione,
resituisce un valore al programma chiamante.
Una procedura è una routine che, alla sua conclusione, non
riporta nulla al programma chiamante.