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?

2009/10 – Fase scolastica – 06

Si consideri il seguente frammento di programma: Var   i, j: Integer; Begin   i:=3;   j:=0;   Repeat       i:=(i + 2*i) Mod 10;       j:=j+1   Until(i = 7);   Writeln(‘j=’,j) End. Cosa viene visualizzato a video dall’esecuzione del programma?

2009/10 – Fase scolastica – 04

Si consideri il seguente frammento di programma: Var   a, b, c: Integer; Begin   a:=3;   b:=2;   c:=a*b Div 4*(a Div b)*4 + a*(b Div 4*a) Div (b*4);   Writeln(‘c=’, c) End. Cosa viene visualizzato a video dall’esecuzione del programma principale?