6
Data la seguente funzione
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function F(x: integer) → integer variable i: integer i ← 0 while x > 0 do if x MOD 2 = 0 then x ← x/2 else x ← x-1 end if i ← i+1 end while return i end function |
Qual è il valore minimo da passare ad F perché questa ritorni 5?
7
Dato il seguente programma
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
variable i: integer variable v: integer variable w: integer v ← [4,9,6,0,3,5,8,7,2,1] w ← [0,0,0,0,0,0,0,0,0,0] i ← 0 while i < 10 do w[v[i]] ← i i ← i+1 end while i ← 0 while i < 10 do output w[i] i ← i+1 end while |
Qual è il valore dell’ultimo intero che viene stampato durante l’esecuzione di questo programma?
8
Dato il seguente programma
1 2 3 4 5 6 7 8 9 10 11 12 13 |
variable i: integer variable s: integer variable t: integer i ← 0 s ← 2 t ← 0 while i < 8 do i ← i+1 s ← s×2 t ← t+s+i end while output t |
Cosa viene stampato al termine dell’esecuzione?
9
Date le seguenti funzioni:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function F(x: integer) → integer if x MOD 2 = 0 then return 0 else return 1+F((x-1)/2) end if end function function G(x: integer) → integer if x > 250 or x ≤ 0 then return 0 else return MAX(F(x), G(x/2)) end if end function |
Tenendo conto che la divisione restituisce un risultato intero (quindi, ad esempio, sia 4/2 che 5/2 restituiscono 2), qual è il massimo x tale per cui G(x)=2?
10
…
11
Dato il seguente programma:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function F(h: integer; i: integer) → integer if i=0 or i=h-1 then return 1 end if if i < 0 or i ≥ h then return 0 end if return F(h-1, i-1)+F(h-1, i) end function variable i: integer i ← 3 while i > 0 do output F(4,i) i ← i-1 end while |
Qual è l’ultimo valore che viene stampato dal programma?