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 ?