esercizi pascal

Download Esercizi Pascal

If you can't read please download the document

Upload: mauro-piazza

Post on 27-Jan-2016

218 views

Category:

Documents


5 download

DESCRIPTION

Esercizi per il linguaggio Pascal

TRANSCRIPT

Selezioni italiane IOI 2001 - Linguaggio Pascal

Selezioni italiane IOI 2001 - Prima fase

Linguaggio Pascal

[3 punti] Cosa stampa il seguente programma?

type r = record

x,y: integer

end;

var x,z: integer;

y: r;

begin

z:=3;

with y do

begin

x:=3;

y:=5;

z:=5

end;

x:=4;

writeln(x+y.x+z)

end.

Risposta: ..............................................

[1 punto] Determinare quale la relazione che assume valore vero quando x esterno all'intervallo [A,B] e y interno allo stesso intervallo? (xB) and (y>=A) and (y=A) and (y=A) or (y=A) or (y=A) or (y=A) and (y0) then

if (b>0) then writeln('ok')

else writeln('ok');

Discutere l'effetto dell'esecuzione di tale istruzione al variare di a e b.

Risposta:...................................................................... ........................................................................................ ........................................................................................ ........................................................................................

[3 punti] Considerate il seguente frammento di codice; cosa stampa?

var a,b: set of 1..200;

i,j: integer;

begin

a:=[]; b:=[]; j:=0;

for i:=1 to 50 do

begin

if (i*i0) then if (cond(a)) then writeln('ciao'); al variare di a? Cosa succede all'istruzione if (cond(a)) then if (a>0) then writeln('ciao'); al variare di a?

Risposta: 1 ................................................................... ......................................................................................... 2 ...................................................................................... .........................................................................................

[2 punti] 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 limiti dell'array. All'accesso all'undicesimo elemento, il sistema operativo assegna altro spazio all'array a e l'esecuzione prosegue.

Risposta: ..............................................

[3 punti] 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.

Risposta:........................................................................ ........................................................................................ ........................................................................................ ........................................................................................

[2 punti] 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 j := i;for i:=1 to n do if v[j]>i then j:= i;

Risposta: ..............................................

[2 punti] 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]