2000/01 – Fase scolastica – 09

Considerate la seguente struttura di programma: Procedure h; Var x, y, z: Integer; Function f(Var x: Integer; y: Integer): Integer; Var z: Integer; Function g(x: Integer): Integer; Begin g:=x+y+z End; Begin z:=x; x:=g(y); f:=x+y End; Begin x:=1; y:=2; z:=3; z:=z+f(y, x) End; Quale è il contenuto della variabile z al termine dell’esecuzione della procedura h?

2000/01 – Fase scolastica – 11

Sia data una variabile dichiarata come var c: char; Ipotizzando che essa contenga un carattere compreso tra ‘0‘ e ‘9‘, come si trasferisce in una variabile intera v il valore decimale della cifra rappresentata da c? v:=c; v:=ord(c); v:=ord(c)-ord(‘0’); v:=c[1];

2000/01 – Fase scolastica – 12

Sia definita la seguente funzione: Function cond(a: Integer): Boolean; Begin cond:=cond(a) End; Problema 1 Cosa succede all’istruzione If(a > 0) Then If(cond(a)) Then Writeln(‘ciao’); al variare di a? Problema 2 Cosa succede all’istruzione If(cond(a)) Then If(a > 0) Then Writeln(‘ciao’);

2000/01 – Fase scolastica – 13

Sia dichiarato un array Var  a: Array[1..10] Of Integer; Cosa succede all’esecuzione del seguente codice: i:=0; Repeat  i:=i+1;  a[i]:=2 Until(i > 10); Tutto l’array viene inizializzato al valore 2 Si superano i limiti dell’array L’errore viene segnalato in fase di compilazione Si superano i limiti dell’array L’errore viene segnalato all’esecuzione del codice Si superano i … Leggi tutto

2000/01 – Fase scolastica – 14

Considerate il seguente frammento di codice: Var    i: …..;    j: …..;    a: Array […..] Of …..; … a[a[i]=j]:=a[a[j]=i]; È possibile completare le dichiarazioni di variabile in modo tale che l’assegnamento non dia luogo a errori di compilazione? Se sì, indicate i tipi delle variabili i, j e a.

2000/01 – Fase scolastica – 15

Dire quale dei programmi seguenti calcola in j l’indice dell’elemento massimo del vettore di interi positivi v contenente n elementi, posto che j sia inizializzato a 1: For i:=1 To n Do    If v[i] > j Then       j:=v[i]; For i:=1 To n Do    If v[i] > v[j] then     … Leggi tutto

2000/01 – Fase scolastica – 16

Dire quale dei programmi seguenti ordina il vettore di interi v contenente n elementi: For i:=1 To n Do   Begin      m:=i;      For j:=i+1 To n Do         If(v[j] < v[m]) Then m:=j;      t:=v[m];      v[m]:=v[i];      v[i]:=t   End; For i:=1 To n Do ... Leggi tutto

2000/01 – Fase scolastica – 18

Considerate la seguente funzione: Function f(x: Integer): Integer; Begin If(x = 0) Then f:=0 Else f:=(x Mod 2)+f(x Div 2); End; Tale funzione viene eseguita su tutti i valori di x compresi fra 100 e 500. Chiamate a il minimo valore ottenuto in queste esecuzioni, e b il massimo valore. Quanto valgono a e b?

2000/01 – Fase scolastica – 19

Considerate il seguente frammento di codice: Var i, f: Real; … f:=1/50; i:=0.0; While(i 1.0) Do Begin Write(‘A’); i:=i+f End; Quale dei seguenti effetti ha il ciclo for indicato? Stampa 50 volte il carattere A; Stampa 51 volte il carattere A; Stampa 49 volte il carattere A; Il ciclo potrebbe non terminare, stampando infinite volte … Leggi tutto