Le funzioni
Le Funzioni sono blocchi di codice che possono essere richiamate più volte e da più locazioni del grafico. Una funzione è una subroutine che, a differenza di una procedura, al termine della sua esecuzione ritorna un valore.
Una funzione si dichiara esattamente come una procedura.
- Proc Nome(parametri)
Per esempio:
- Proc Prova(x)
"Proc" è la parola chiave che identifica sempre una procedura o una funzione. L'etichetta "Prova" è il nome della funzione. Il parametro "x" è il dato che viene passato al codice della funzione. I parametri di una funzione sono dichiarati come variabili locali della stessa.
In generale la struttura di una funzione è identica a quella di una procedura, pertanto fare riferimento anche al capitolo che parla delle Procedure. Affinché una procedura si trasformi in una funzione e ritorni un valore, al suo interno è necessario valorizzare la variabile "result".
Per esempio:
- Proc Prova(x)
- result = x*2
- EndProc
Una funzione, dato che ritorna un valore, può essere utilizzata come espressione nelle assegnazioni e nelle operazioni. Per esempio:
- I = Prova(30)
La variabile "I" contiene il valore 60, dato che la funzione "Prova" ritorna un valore e gli assegna il dato "x*2", in questo caso "30*2".
- I = Prova(30)+7
In questo caso la variabile "I" contiene il valore 67, perché prima dell'assegnazione viene effettuata un'operazione di addizione.
Una funzione può essere richiamata come una procedura. In questo caso il valore di ritorno viene ignorato.
Prova(4)
Una funzione può essere utilizzata come parametro di una procedura o di un'altra funzione. Per esempio:
- I = Prova(Prova(2))
Il valore assegnato a "i" sarà 8. La funzione "Prova" è stata utilizzata come parametro di se stessa.
Una procedura o una funzione possono richiamare loro stesse in un ciclo ricorsivo, diretto o indiretto. I cicli ricorsivi sono monitorati per evitare loop infiniti. Si può utilizzare la ricorsione fino a 256 volte.