3° Anno TEORIA 7.1 - Slide Procedure e Funzioni | Page 50

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?