Programma chiamante
ChangeMe1( y, z, x)
ChangeMe1( z, y, x)
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: PROCEDURA
Programma chiamante
ALGORITMO Passaggio1 PROCEDURA main() x, y, z: INT INIZIO Leggi( x) Leggi( y) Leggi( z)
/* 1 ° chiamata */
ChangeMe1( y, z, x)
Scrivi( x) Scrivi( y) Scrivi( z)
/* 2 ° chiamata */
ChangeMe1( z, y, x)
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à)
2 ° param. ATTUALE nel 2 ° param. FORMALE 1 ° param. ATTUALE nel 1 ° param. FORMALE
PROCEDURA ChangeMe1( REF x: INT, VAL y: INT, REF z: INT) i: INT INIZIO PER i � 1 A z ESEGUI x � 2 * y – x + z y � 2 * x – y – z i � i + 1 FINE PER z � z- 1 RITORNA FINE
3 ° param. ATTUALE nel 3 ° param. FORMALE
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?