2008/09 – Fase scolastica – 03

Dato il seguente codice Var   a: Integer;   b: Integer;   x: Integer; Function foo(a: Integer; b: Integer ): Integer; Begin   foo:=b-a; End; Begin   a:=3;   b:=5;   x:=0;   x:=foo(b,a)+a-b; End. Quanto vale la variabile x alla fine dell’esecuzione? Risposte: 0 2 -4 nessuna delle precedenti. Soluzione: c (-4). Soluzione Soluzioni … Leggi tutto

2008/09 – Fase scolastica – 04

Si consideri il seguente frammento di codice: Const   DMAX = 5; Type   TMAT = Array[1..DMAX,1..DMAX] Of Integer; Var   M: TMAT;   i: Integer; Procedure esegui(Var M: TMAT; C, R1, R2: Integer); Var   i: Integer; Begin   For i:=1 To C Do       M[R1,i]:=M[R1,i]+M[R2,i]; End; Begin   For i:=1 To … Leggi tutto

2008/09 – Fase scolastica – 06

Si consideri la seguente funzione: Function ricorsiva(N: Integer): Integer; Begin   If(N > 1) Then       ricorsiva:=N*ricorsiva(N-1)   Else       ricorsiva:=1 End; Indicare qual è il valore restituito dall’invocazione di ricorsiva(5) Risposte: 5 20 120 nessuno dei precedenti. Soluzione: c (120). Soluzione Soluzioni commentate Dato un intero N non negativo, N! … Leggi tutto

2008/09 – Fase scolastica – 07

Si consideri la seguente funzione: Function foo(N: Integer): Integer; Var   i, R: Integer; Begin   R:=1;   For i:=1 To N Do       R:=R+R;   foo:=R End; Indicare qual è il valore restituito dall’invocazione di foo(6) Risposte: 32 64 128 nessuno dei precedenti. Soluzione: b (64). Soluzione Soluzioni commentate Possiamo facilmente verificare … Leggi tutto

2008/09 – Fase scolastica – 08

Si consideri la seguente funzione: Function foo(x: Integer): Integer; Var   y: Integer; Begin   y:=0;   While(x 0) Do       Begin         y:=y*10;         y:=y+x Mod 10;         x:=x Div 10;       End;   foo:=y; End; Dire cosa restituisce la chiamata … Leggi tutto

2008/09 – Fase scolastica – 09

Si consideri la seguente funzione: Function ricorsiva(x: Integer): Integer; Begin   If(x = 1) Then     ricorsiva:=x   else       ricorsiva:=ricorsiva(x-1)+2*x-1; End; Dire cosa restituisce l’invocazione di ricorsiva(10) Risposte: 28 99 101 nessuna delle precedenti. Soluzione: d (100). Soluzione Soluzioni commentate La funzione ricorsiva() calcola il quadrato di x; osserviamo infatti che … Leggi tutto

2008/09 – Fase scolastica – 10

Si consideri la seguente funzione: Const   N = 5; Procedure calcola(); Var   vett: Array[1..N] Of Integer;   i   : Integer; Begin   For i:=1 To N Do     vett[i] := i-1;   For i:=1 To N Do     vett[i]:=vett[((vett[i]*(i-1)) Mod N)+1]; End; Indicare il contenuto del vettore vett al termine … Leggi tutto

2008/09 – Fase scolastica – 08

Si consideri la seguente funzione: Function foo(x: Integer): Integer; Var   y: Integer; Begin   y:=0;   While(x 0) Do       Begin         y:=y*10;         y:=y+x Mod 10;         x:=x Div 10;       End;   foo:=y; End; Dire cosa restituisce la chiamata … Leggi tutto

2009/10 – Fase scolastica – 08

Si consideri il seguente frammento di programma: Const N = 15; Var i, j: Integer; frase: array [0..N-1] of char; t: char; Begin i:=1; Repeat For j:=0 To N-1 Do Begin t:=frase[j]; frase[j]:=frase[(j+i) Mod N]; frase[(j+i) Mod N] := t End; i:=i+1 Until(frase[8] = ‘ ‘); For j:=0 To N-1 Do Write(frase[j]) End. Quale tra … Leggi tutto

2009/10 – Fase scolastica – 07

È dato il seguente frammento di programma: Procedure ricorsiva(n: Integer); Var   m: Integer; Begin   m:=n Div 2;   If(m 0) Then       ricorsiva(m);   Write(n Mod 2) End; Begin   ricorsiva(729) End. Cosa viene visualizzato a video dall’esecuzione del programma?