3° Anno TEORIA 7. Metodologie di progettazione e programmazione | Page 17

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
2 . a ) Si supponga che inizialmente le variabili siano così valorizzate : x = 2 , y = 2 , z = 3
main ( ) FUNZIONE ChangeMe2 (…)
x
y
z
2
2
3
x
y
z
2
4
4
2 3 y � ChangeMe2 ( x , z )
4 RITORNA ( z )
VAL
REF
z
x
y
-
2
3
-
8
4
4
8
4
Ramo ALLORA
Dopo la prima chiamata
x
y
z
-10
12
4
4 4 x � ChangeMe2 ( z , y )
-10 RITORNA ( z )
VAL REF
z
x
y
-
4
4
-
2
12
-10
2
12
Ramo ALTRIMENTI
Dopo la seconda chiamata
Calcoli : 1 ° Chiamata ( nella funzione ChangeMe2 ) Test SE ( x < y ) ossia ( 2 < 3 ) VERO - RAMO ALLORA x � x + 2 * y ( x = 2 + 2 * 3 = 8 ) y � y + 1 ( y = 3 + 1 = 4 ) z � x – y ( z = 8 – 4 = 4 )
Calcoli : 2 ° Chiamata ( nella funzione ChangeMe2 )
Test SE ( x < y ) ossia ( 4 < 4 ) FALSO - RAMO ALTRIMENTI y � y + 2 * x ( y = 4 + 2 * 4 = 12 ) x � x – 2 ( x = 4 – 2 = 2 ) z � x – y ( z = 2 – 12 = -10 )
2 . b ) Si supponga che inizialmente le variabili siano così valorizzate : x = -1 , y = 3 , z = -2
PROCEDURA main ( ) FUNZIONE ChangeMe2 (…)
x
y
z
-1
3
-2
x
y
z
-1
1
-4
-1 -2 y � ChangeMe2 ( x , z )
1 RITORNA ( z )
VAL
REF
z
x
y
-
-1
-2
-
-3
-4
1
-3
-4
Ramo ALTRIMENTI
Dopo la prima chiamata
x
y
z
-4
2
-4
-4 1 x � ChangeMe2 ( z , y )
-4 RITORNA ( z )
VAL
REF
z
x
y
-
-4
1
-
-2
2
-4
-2
2
Ramo ALLORA
Dopo la seconda chiamata
Calcoli : 1 ° Chiamata ( nella funzione ChangeMe2 ) Test SE ( x < y ) ossia -1 < -2 FALSO -RAMO ALTRIMENTI y � y + 2 * x ( y = -2 + 2 *( -1 ) = -4 ) x � x – 2 ( x = -1 -2 = -3 ) z � x – y ( z = ( -3 ) – ( -4 ) = 1 )
Calcoli : 2 ° Chiamata ( nella funzione ChangeMe2 )
Test SE ( x < y ) ossia -4 < -1 VERO -RAMO ALLORA x � x + 2 * y ( x = -4 + 2 * 1 = -2 ) y � y + 1 ( y = 1 + 1 = 2 ) z � x – y ( z = -2 – 2 = -4 )
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it )
Pag . 17