2002/03 – Fase scolastica – 07

Considerate le seguenti sei funzioni, con argomento N (un intero non negativo). Ciascuna di esse calcola un qualche valore scelto tra: N, 2N , N2, N3, 2N, N!, NN. Dovete stabilire qual è il valore calcolato da ogni funzione. FUNCTION A(N: INTEGER): INTEGER; BEGIN IF N > 0 THEN A:=A(N-1)+A(N-1) ELSE A:=1 END; FUNCTION B(N: … Leggi tutto

2002/03 – Fase scolastica – 06

Cosa stampa il seguente programma Pascal? Program Stampa(input, output); Type  vett=array[0..4] of Integer; Var  N, M, I, bit, dim: Integer;  V : vett; Function F(Var W: vett; dim: Integer; bit: Integer): Integer; Var  I: Integer; Begin  I:=0;  While I < dim Do      Begin        W[I]:=W[I]+I;        bit:=1;     ... Leggi tutto

2002/03 – Fase scolastica – 05

Considerate il seguente frammento di programma, dove n contiene un intero non negativo (si noti che in Pascal l’operatore AND sugli interi funziona bit a bit, come in Turbo Pascal); che cosa viene stampato? IF(N MOD 2) (N AND 1) THEN    WRITELN(‘vero’) ELSE    WRITELN(‘falso’); Risposte: Viene stampato vero se n è pari, e … Leggi tutto

2002/03 – Fase scolastica – 04

Il vettore c contiene una stringa di n caratteri, alcuni dei quali sono spazi. La seguente funzione deve calcolare e restituire il numero di parole contenute nella stringa (una parola è una sequenza di caratteri consecutivi diversi da spazio che non si possa estendere né a sinistra né a destra mantenendo questa proprietà). Si assuma … Leggi tutto

2002/03 – Fase scolastica – 03

Un numero intero positivo è detto perfetto se è uguale alla somma dei suoi divisori propri (cioè, i divisori maggiori di 0 e minori del numero stesso). Il seguente programma deve stampare i primi 5 numeri perfetti. Aggiungete le istruzioni che mancano: Program perfect(Input, Output); Var  x, c: Integer; Function isPerfect(x: Integer): Boolean; Var  y, … Leggi tutto

2002/03 – Fase scolastica – 02

Considerate il seguente programma: Program dueVett(input, output); Type  vett=Array[1..10] Of Integer; Var  x, y: vett;  i, j: Integer;  b : Boolean; Procedure readV(Var x: vett); Var  i: Integer; Begin  For i:=1 To 10 Do     Read(x[i]) End; Begin  readV(x);  readV(y);  For i:=1 To 10 Do     Begin        j:=1;     … Leggi tutto

2001/02 – Fase scolastica bis – 09

Considerate il seguente frammento di programma Pascal: Var  x, a, b: Integer; Function f(x: Integer): Integer; Begin  x:=x*x;  f:=x; End; Function g(var x: Integer): Integer; Begin  x:=x*x;  g:=x; End; Begin  x:=3;  a:=f(x);  b:=g(x);  x:=x+a+b;  Writeln(x) End. Quale valore viene stampato?

2001/02 – Fase scolastica bis – 08

Supponete di dover memorizzare N numeri interi (con N <= 100), e di poterlo fare o usando un array di 100 integer, oppure utilizzando una lista, in cui ogni nodo contiene un intero e un puntatore al prossimo nodo. Assumendo che sia un integer che un puntatore occupino ciascuno 4 byte, qual è il massimo … Leggi tutto

2001/02 – Fase scolastica bis – 07

Considerate il seguente frammento di programma Pascal: Type  s=Set Of 0..100; Var  x, y, z: s;  i : 0..100; Begin  x:=[3, 4, 5, 6];  y:=[1, 2, 3, 4];  z:=x*y;  For i:=0 To 100 Do       If(i In z) Then Writeln(i) End. Quali valori vengono stampati? sono stampati nell’ordine: 3 4 5 6 8 … Leggi tutto

2001/02 – Fase scolastica bis – 06

Considerate il seguente frammento di programma Pascal: Type  r = Record       x, y: Integer;  End; Var  x, z: r; Begin  x.x:=1;  x.y:=2;  z.x:=3;  z.y:=4;  With x Do      Begin        x:=z.y;        z.x:=y;      End;    Writeln( x.x, ‘ ‘, x.y, ‘ ‘, z.x, ‘ ‘, … Leggi tutto