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

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 ?