Programma chiamante
Programma chiamato
Esercizio: Supponendo che inizialmente le variabili siano così valorizzate: x = 2, y = 2, z = 3 cosa verrà mostrato a video dopo ciascuna chiamata?
Esercizi svolti sul passaggio dei parametri: FUNZIONE
Programma chiamante
ALGORITMO Passaggio2 PROCEDURA main() x, y, z: INT INIZIO Leggi( x) Leggi( y) Leggi( z)
/* Prima chiamata */ y � ChangeMe2( x, z) Scrivi( x) Scrivi( y) Scrivi( z)
/* Seconda chiamata */ x � ChangeMe2( z, y) Scrivi( x) Scrivi( y) Scrivi( z) RITORNA FINE
N. B. Al momento della chiamata lo scambio di valori tra parametri ATTUALI e FORMALI, INDIPENDENTEMENTE DAL TIPO DI PASSAGGIO UTILIZZATO, avviene esclusivamente per POSIZIONE nel rispetto del TIPO posseduto senza assolutamente guardare il NOME del parametro( regole di visibilità). Occorre anche tenere presente il valore espressamente ritornato nel NOME della funzione che potrà essere utilizzato in un’ assegnazione o un’ espressione
2 ° param. ATTUALE nel 2 ° param. FORMALE 1 ° param. ATTUALE nel 1 ° param. FORMALE
FUNZIONE ChangeMe2( VAL x: INT, REF y: INT): INT z: INT INIZIO SE( x < y)
ALLORA x � x + 2 * y y � y + 1
ALTRIMENTI y � y + 2 * x x � x- 2 FINE SE z � x- y RITORNA( z) FINE
Tipo Valore Ritornato
Programma chiamato
Esercizio: Supponendo che inizialmente le variabili siano così valorizzate: x = 2, y = 2, z = 3 cosa verrà mostrato a video dopo ciascuna chiamata?