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

6 . Metodologia top-down e sottoprogrammi Versione 5.0 – Aprile 2023
PROCEDURA main ( ) FUNZIONE ChangeArray2 (…) n v [ 1 ] v [ 2 ] v [ 3 ] 3 [ 2 , -3, 1 ] 3 2 -3 1 y � ChangeArray2 ( n , v ) VAL REF n v [ 1 ] v [ 2 ] v [ 3 ] i y
3 2 -3 1 - 5 -3 0 -3 1 1 -1
0 1 1 2 0 y v [ 1 ] v [ 2 ] v [ 3 ] RITORNA ( y )
-3 -1 1 -4
Dopo la visualizzazione di v e la chiamata alla funzione ChangeArray2 ( Risposte 1 e 2 )
3 -1 1 -4 3 -3
Calcoli : Modifica vettore ( nella funzione ChangeArray2 ( ))
i � 1 ( i = 1 )
prima che inizi ciclo PER
TEST PER ( i ≤ 2 ) ossia ( 1 ≤ 2 ) VERO
i = 1
y � v [ i + 1 ] DIV 2 * i
( y = v [ 1 + 1 ] DIV ( 2 * 1 ) = v [ 2 ] DIV 2 = ( -3) DIV 2 = -1)
v [ i ] � v [ i + 1 ] % i
( v [ 1 ] = v [ 1 + 1 ] % 1 = v [ 2 ] % 1 = ( -3) % 1 = 0 )
i � i - 1
( i = 1 + 1 = 2 )
TEST PER ( i ≤ 2 ) ossia ( 2 ≤ 2 ) i = 2 y � v [ i + 1 ] DIV 2 * i
v [ i ] � v [ i + 1 ] % i i � i - 1
VERO ( y = v [ 2 + 1 ] DIV ( 2 * 2 ) = v [ 3 ] DIV 4 = 1 DIV 4 = 0 )
( v [ 2 ] = v [ 2 + 1 ] % 2 = v [ 3 ] % 2 = 1 % 2 = 1 ) ( i = 2 + 1 = 3 )
TEST PER ( i ≤ 2 ) ossia ( 3 ≤ 2 ) FALSO
exit ciclo all ’ interno della funzione
Fuori ciclo v [ n ] � ( y-1 ) * 4
( v [ 3 ] = ( 0-1 ) * 4 = -4)
v [ 1 ] � v [ n ] DIV 3
( v [ 1 ] = ( -4) DIV 3 = -1)
y � v [ n ] – v [ 1 ]
( y = ( -4) – ( -1) = -4 + 1 = -3)
5 ) ESEMPIO ( FUNZIONE con vettore ): sia dato lo pseudocodice della seguente funzione :
FUNZIONE ChangeArray2 ( VAL n : INT , REF v : ARRAY [ MAXDIM ] DI INT ) : INT i , y : INT INIZIO
y � 5
PER i � 1 A n-1 ESEGUI y � v [ i + 1 ] DIV 2 * i v [ i ] � v [ i + 1 ] % i i � i + 1 FINE PER
v [ n ] � ( y-1 ) * 4 v [ 1 ] � v [ n ] DIV 3 y � v [ n ] – v [ 1 ]
RITORNA ( y ) FINE
Ipotizzando che l ’ utente immetta il seguente vettore :
v = [ 2 , -3 , 1 ] ed utilizzando apposite tabelle di traccia rispondi alle seguenti domande :
1 . Quale sarà il valore finale del vettore v dopo l ’ esecuzione della funzione ? 2 . Quale sarà il valore restituito dalla funzione ?
N . B Si tratta di una versione semplificata dell ’ esercizio precedente per il quale vale lo stesso svolgimento
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it )
Pag . 21