OliInfo
Tanto per completezza, scrivete un testo decente per l'esercizio dei bovini in modo che pure chi non ha fatto la gara sappia di cosa parlate?
Da quello che ho intuito (e soprattutto dalla correzione di Azarus) credo abbia ragione Boll...
Da quello che ho intuito (e soprattutto dalla correzione di Azarus) credo abbia ragione Boll...
Fondatore: [url=http://olimpiadi.dm.unipi.it/oliForum/viewtopic.php?t=8899]Associazione non dimenticatevi dei nanetti![/url]
Membro: Club Nostalgici
Sono troppo scarso in italiano per usare parole con la c o la q...
Membro: Club Nostalgici
Sono troppo scarso in italiano per usare parole con la c o la q...
Faccio un cut & paste dal forum a questo link: http://allenamenti.olimpiadi-informatica.it/
PARTE LOGICO-MATEMATICA
1) La risposta esatta vale 1 punto.
Se un uomo dipinge una stanza in 4 ore e un suo amico ne impiega 2, quanto tempo impiegherebbero dipingendola insieme? (Si assume che quando lavorano insieme ciascuno opera alla stessa velocità di quando lavora da solo).
a) 75 minuti
b) 80 minuti
c) 90 minuti
d) 180 minuti
=======================================================================
2) La risposta esatta vale 1 punto.
Se una gallina e mezza fa in media un uovo e mezzo in un giorno e mezzo, quante uova fanno in media 9 galline in 9 giorni?
Risposta aperta
=======================================================================
3) La risposta esatta vale 1 punto.
Quanti modelli di macchine di Formula 1 ha Mario se sono tutte Ferrari meno tre, sono tutte McLaren meno due ed ha anche una Williams?
a) 3
b) 4
c) 5
d) 6
=======================================================================
4) La risposta esatta vale 1 punto.
Una maestra ha una scatola di 1300 penne, e vuole distribuirle in modo equo ai suoi alunni. Inizialmente distribuisce ad ogni alunno un numero di penne pari al numero di alunni stessi. Dopo di che, visto che ne rimangono ancora molte, decide di darne altre due ciascuno. Alla fine nella scatola ne rimangono solo cinque, che ella tiene per sé. Quanti sono gli alunni?
Risposta aperta
=======================================================================
5) La risposta esatta vale 1 punto.
Al ritorno dalla guerra durata parecchi anni, un giovane torna a casa. Ad attenderlo trova la cognata del marito dell'unica sorella di sua madre. Dato che il marito non ha fratelli, chi e’ la donna che lo ha accolto?
a) madre
b) sorella
c) zia
d) nonna
=======================================================================
6) La risposta esatta vale 1 punto.
Fondendo una statua di bronzo alta 50 cm e piena internamente, realizzo con il bronzo fuso ottenuto tante statuette simili (cioè con le stesse proporzioni della statua originale), anch'esse internamente piene, ma dell'altezza di 10 cm. Quante statuette riesco a realizzare?
a) 5
b) 25
c) 50
d) 125
=======================================================================
7) La risposta esatta vale 1 punto.
A Policrate che gli domandava quanti erano i suoi allievi, così rispose Pitagora:
"I miei allievi possono essere suddivisi in insiemi disgiunti; in particolare
- la metà coltiva la matematica
- la quarta parte si dedica allo studio della natura
- la settima parte ascolta con religioso silenzio le mie parole
- inoltre ci sono tre allievi che non fanno nessuna delle cose precedenti"
Quanti erano gli allievi di Pitagora?
Risposta aperta
=======================================================================
La risposta esatta vale 1 punto.
Data una torre, costruita inserendo N = 23 mattoncini LEGO uno sopra l'altro, indicare il numero minimo di porzioni in cui suddividere la torre per essere sicuri che sia possibile prendere un qualsiasi numero (compreso fra 1 e 22, estremi inclusi) di mattoncini senza smontare le porzioni e selezionando un opportuno insieme di porzioni.
Ad esempio se N = 6 allora la risposta è 3. Infatti la divisione dei mattoncini in tre porzioni di dimensioni 1, 2 e 3 soddisfa i requisiti. Inoltre, non esiste una soluzione che divide i mattoncini in due sole porzioni; infatti, se si dividono 6 mattoncini in porzioni da 1 e 5 mattoncini non si riesce a formare un insieme di 2 (oppure di 3 o di 4) mattoncini; un analogo problema sorge se si dividono 6 mattoncini in due porzioni da 2 e 4 oppure in due porzioni da 3.
Se N = 23 qual’è il numero minimo di porzioni?
a) 4
b) 5
c) 6
d) 7
=======================================================================
9) La risposta esatta vale 2 punti.
Il direttore di un ristorante con capienza massima 150 posti non ricorda quante erano le persone da lui servite in occasione dello scorso cenone di fine anno.
Ricorda però che volendo sistemare tutte le persone servite in tavoli da 3 ne restava fuori esattamente una; inoltre, la stessa cosa succedeva sistemando tutte le persone in tavoli da 5 o tutte in tavoli da 7.
Quante erano le persone servite in occasione dello scorso cenone di fine anno?
Risposta aperta
=======================================================================
10) La risposta esatta vale 2 punti.
Siano A e B due variabili booleane. Quali delle seguenti espressioni è equivalente a
not (A or B) and (A or (A and B))
a) (not A and not B and A) or B
b) not A or (not B and A) or (A and B)
c) not A and not B and A and B
d) Nessuna delle risposte precedenti
=======================================================================
11) La risposta esatta vale 2 punti.
Un compito in classe inizia quando le lancette dell'orologio sono sovrapposte fra le 8 e le 9 e termina quando sono sovrapposte fra le 10 e le 11. Quanti minuti dura il compito?
a) esattamente 120
b) fra 120 e 124
c) fra 124 e 128
d) nessuna delle precedenti
=======================================================================
12) La risposta esatta vale 2 punti.
In un allevamento di bovini bisogna selezionare il più leggero fra 4 capi, avendo a disposizione un unico tipo di bilancia che, date due coppie di bovini, indica la coppia più leggera (si assuma che non esistano due coppie di bovini dello stesso identico peso).
Nota bene: la bilancia non permette di confrontare il peso di due bovini fra loro e non fornisce il peso di una coppia di bovini.
Dire quale delle seguenti affermazioni è vera:
a) 2 pesate sono sempre sufficienti
b) 2 pesate non sono sempre sufficienti e 3 pesate sono sempre sufficienti
c) ci sono casi in cui questo tipo di bilancia non permette di trovare il bovino più leggero
d) nessuna delle precedenti
PARTE LOGICO-MATEMATICA
1) La risposta esatta vale 1 punto.
Se un uomo dipinge una stanza in 4 ore e un suo amico ne impiega 2, quanto tempo impiegherebbero dipingendola insieme? (Si assume che quando lavorano insieme ciascuno opera alla stessa velocità di quando lavora da solo).
a) 75 minuti
b) 80 minuti
c) 90 minuti
d) 180 minuti
=======================================================================
2) La risposta esatta vale 1 punto.
Se una gallina e mezza fa in media un uovo e mezzo in un giorno e mezzo, quante uova fanno in media 9 galline in 9 giorni?
Risposta aperta
=======================================================================
3) La risposta esatta vale 1 punto.
Quanti modelli di macchine di Formula 1 ha Mario se sono tutte Ferrari meno tre, sono tutte McLaren meno due ed ha anche una Williams?
a) 3
b) 4
c) 5
d) 6
=======================================================================
4) La risposta esatta vale 1 punto.
Una maestra ha una scatola di 1300 penne, e vuole distribuirle in modo equo ai suoi alunni. Inizialmente distribuisce ad ogni alunno un numero di penne pari al numero di alunni stessi. Dopo di che, visto che ne rimangono ancora molte, decide di darne altre due ciascuno. Alla fine nella scatola ne rimangono solo cinque, che ella tiene per sé. Quanti sono gli alunni?
Risposta aperta
=======================================================================
5) La risposta esatta vale 1 punto.
Al ritorno dalla guerra durata parecchi anni, un giovane torna a casa. Ad attenderlo trova la cognata del marito dell'unica sorella di sua madre. Dato che il marito non ha fratelli, chi e’ la donna che lo ha accolto?
a) madre
b) sorella
c) zia
d) nonna
=======================================================================
6) La risposta esatta vale 1 punto.
Fondendo una statua di bronzo alta 50 cm e piena internamente, realizzo con il bronzo fuso ottenuto tante statuette simili (cioè con le stesse proporzioni della statua originale), anch'esse internamente piene, ma dell'altezza di 10 cm. Quante statuette riesco a realizzare?
a) 5
b) 25
c) 50
d) 125
=======================================================================
7) La risposta esatta vale 1 punto.
A Policrate che gli domandava quanti erano i suoi allievi, così rispose Pitagora:
"I miei allievi possono essere suddivisi in insiemi disgiunti; in particolare
- la metà coltiva la matematica
- la quarta parte si dedica allo studio della natura
- la settima parte ascolta con religioso silenzio le mie parole
- inoltre ci sono tre allievi che non fanno nessuna delle cose precedenti"
Quanti erano gli allievi di Pitagora?
Risposta aperta
=======================================================================
La risposta esatta vale 1 punto.
Data una torre, costruita inserendo N = 23 mattoncini LEGO uno sopra l'altro, indicare il numero minimo di porzioni in cui suddividere la torre per essere sicuri che sia possibile prendere un qualsiasi numero (compreso fra 1 e 22, estremi inclusi) di mattoncini senza smontare le porzioni e selezionando un opportuno insieme di porzioni.
Ad esempio se N = 6 allora la risposta è 3. Infatti la divisione dei mattoncini in tre porzioni di dimensioni 1, 2 e 3 soddisfa i requisiti. Inoltre, non esiste una soluzione che divide i mattoncini in due sole porzioni; infatti, se si dividono 6 mattoncini in porzioni da 1 e 5 mattoncini non si riesce a formare un insieme di 2 (oppure di 3 o di 4) mattoncini; un analogo problema sorge se si dividono 6 mattoncini in due porzioni da 2 e 4 oppure in due porzioni da 3.
Se N = 23 qual’è il numero minimo di porzioni?
a) 4
b) 5
c) 6
d) 7
=======================================================================
9) La risposta esatta vale 2 punti.
Il direttore di un ristorante con capienza massima 150 posti non ricorda quante erano le persone da lui servite in occasione dello scorso cenone di fine anno.
Ricorda però che volendo sistemare tutte le persone servite in tavoli da 3 ne restava fuori esattamente una; inoltre, la stessa cosa succedeva sistemando tutte le persone in tavoli da 5 o tutte in tavoli da 7.
Quante erano le persone servite in occasione dello scorso cenone di fine anno?
Risposta aperta
=======================================================================
10) La risposta esatta vale 2 punti.
Siano A e B due variabili booleane. Quali delle seguenti espressioni è equivalente a
not (A or B) and (A or (A and B))
a) (not A and not B and A) or B
b) not A or (not B and A) or (A and B)
c) not A and not B and A and B
d) Nessuna delle risposte precedenti
=======================================================================
11) La risposta esatta vale 2 punti.
Un compito in classe inizia quando le lancette dell'orologio sono sovrapposte fra le 8 e le 9 e termina quando sono sovrapposte fra le 10 e le 11. Quanti minuti dura il compito?
a) esattamente 120
b) fra 120 e 124
c) fra 124 e 128
d) nessuna delle precedenti
=======================================================================
12) La risposta esatta vale 2 punti.
In un allevamento di bovini bisogna selezionare il più leggero fra 4 capi, avendo a disposizione un unico tipo di bilancia che, date due coppie di bovini, indica la coppia più leggera (si assuma che non esistano due coppie di bovini dello stesso identico peso).
Nota bene: la bilancia non permette di confrontare il peso di due bovini fra loro e non fornisce il peso di una coppia di bovini.
Dire quale delle seguenti affermazioni è vera:
a) 2 pesate sono sempre sufficienti
b) 2 pesate non sono sempre sufficienti e 3 pesate sono sempre sufficienti
c) ci sono casi in cui questo tipo di bilancia non permette di trovare il bovino più leggero
d) nessuna delle precedenti
Ultima modifica di Azarus il 21 nov 2005, 18:08, modificato 1 volta in totale.
Ecco anche il resto:
ESERCIZI DI PROGRAMMAZIONE
1) La risposta esatta vale 1 punto.
Dopo l'esecuzione della seguente porzione di codice:
program principale;
var
a: integer;
b: integer;
procedure funzione(var a: integer; b: integer);
var
temp: integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
begin
a:=2;
b:=5;
funzione(a,b);
end.
Quanto valgono a e b?
Risposta aperta
=======================================================================2) La risposta esatta vale 1 punto.
Si consideri la seguente funzione.
function funzione() : integer;
var
contatore : integer;
sum : integer;
begin
contatore := 0;
sum := 0;
while ( contatore <= 4 ) do
begin
contatore := contatore + 1;
sum := sum + contatore;
end;
funzione := sum;
end;
Quale valore restituisce la funzione?
Risposte:
a) 10
b) 15
c) 16
d) Nessuna delle risposte precedenti
=======================================================================3) La risposta esatta vale 2 punti.
Si consideri la seguente funzione:
type sequenza = array[1..10] of integer;
procedure calcola(var vett:sequenza; n:integer);
var i,j,x,y: integer;
begin
for i := 1 to n do
begin
y := vett[1];
for j := 1 to n-1 do
begin
x := vett[j+1];
vett[j+1] := y;
y := x;
end;
vett[1] := y;
end;
end;
Assumendo che vett contenga il vettore [10,9,8,7,6,5,4,3,2,1], quali sono gli elementi di vett dopo l'esecuzione di calcola (usando 10 come secondo parametro)?
Risposte:
a) [1,2,3,4,5,6,7,8,9,10]
b) [10,9,8,7,6,5,4,3,2,1]
c) [1,3,5,7,9,2,4,6,8,10]
d) nessuna delle precedenti
=======================================================================4) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?
program cosa(input,output);
type vett=array[0..10] of integer;
var a,b,i: integer;
arr1,arr2: vett;
function funzione(arr: vett; dim: integer) : integer;
var i,t: integer;
begin
i:=0;
t:=0;
if ((dim mod 2)=1) then
while (i<dim) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end
else
while (i< (dim div 2) ) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end;
funzione:= arr[0];
end;
begin
for i:=0 to 9 do arr1:=i+1;
for i:=0 to 10 do arr2:=i+1;
a:=funzione(arr1,10);
b:=funzione(arr2,11);
writeln('a=',a,',b=',b);
end.
Risposte:
a) a=10,b=1
b) a=1,b=1
c) a=10,b=11
d) a=1,b=11
=======================================================================5) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?
program Test(input,output);
type vett=array[0..9] of integer;
var i,f,a,b :integer;
arr : vett;
function funzione1(arr: vett) :integer;
var i: integer;
begin
i:= 1;
while(arr <> -1) do i:= i * 2;
funzione1:=i;
end;
function funzione2(arr :vett; f: integer; k: integer) : integer;
var i,m,temp: integer;
begin
i:= 0; m:= 0;
temp:=-1;
while(i <= f) do
begin
m:= (i + f) div 2;
if(arr[m] = k) then temp:=m;
if((arr[m] = -1) or (arr[m] > k)) then
f:= m - 1
else
i:= m + 1;
end;
funzione2:= temp;
end;
begin
for i:=0 to 9 do arr:= -1;
arr[0]:=1;
arr[1]:=2;
arr[2]:=4;
arr[3]:=8;
f:=funzione1(arr);
a:=funzione2(arr,f,4);
b:=funzione2(arr,f,7);
writeln("a=",a,",b=",b);
end.
Risposte:
a) a=2,b=4
b) a=2,b=-1
c) a=-1,b=4
d) a=-1,b=-1
=======================================================================6) La risposta esatta vale 3 punti.
Data la seguente funzione che inizializza i valori di un array bi-dimensionale "matrice":
const N=5;
procedure inizializza( );
var
matrice : array [1..N, 1..N] of integer;
riga, colonna : integer;
begin
for riga := 1 to N do
for colonna := 1 to N do
begin
if ( riga = colonna ) then
matrice[riga, colonna] := 1
else if ( riga + colonna = N+1 ) then
matrice[riga, colonna] := 1
else if ( riga < colonna ) then
matrice[riga, colonna] := 0
else
matrice[riga, colonna] := matrice[colonna, riga]
end;
for riga := 1 to N do
begin
for colonna := 1 to N do
write( matrice[riga, colonna] );
writeln;
end
end;
Indicare quale tra le seguenti configurazioni vengono stampate dalla procedura "inizializza".
Risposte:
a)
1 1 1 1 1
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
1 1 1 1 1
b)
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
c)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
d)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
=======================================================================7) La risposta esatta vale 3 punti.
Sia data la seguente funzione ricorsiva:
function mistero(m : integer; n : integer) : integer;
begin
if ( m = 0 ) then
mistero := n
else if ( n=0 ) then
mistero := mistero( m-1, 1 )
else
mistero := mistero( mistero( m-1, n-1 ), n-1 )
end;
Calcolare quale tra le seguenti risposte corrisponde ai valori restituiti invocando:
writeln( mistero(0,3), ' ', mistero(1,3), ' ', mistero(2,3), ' ', mistero(3,3) );
Risposte:
a) 3 1 2 0
b) 3 2 1 0
c) 0 1 2 3
d) Nessuna delle risposte precedenti
=======================================================================
La risposta esatta vale 3 punti.
Si consideri la seguente funzione A.
function B(n:integer): integer;
forward;
function A(n:integer): integer;
begin
if (n>1) then
A:=n*B(n+1)
else
A:=1
end;
function B(n:integer): integer;
begin
if (n>1) then
B:=(n-1)*A(n-2)
else
B:=1
end;
Indicare quali sono i valori restituiti dalle invocazioni
A(1), A(2), A(3), A(4), A(5).
Risposte:
a) 1, 4, 24, 192, 1920
b) 1, 4, 36, 576, 14400
c) 1, 4, 16, 256, 65536
d) nessuna delle precedenti
ESERCIZI DI PROGRAMMAZIONE
1) La risposta esatta vale 1 punto.
Dopo l'esecuzione della seguente porzione di codice:
program principale;
var
a: integer;
b: integer;
procedure funzione(var a: integer; b: integer);
var
temp: integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
begin
a:=2;
b:=5;
funzione(a,b);
end.
Quanto valgono a e b?
Risposta aperta
=======================================================================2) La risposta esatta vale 1 punto.
Si consideri la seguente funzione.
function funzione() : integer;
var
contatore : integer;
sum : integer;
begin
contatore := 0;
sum := 0;
while ( contatore <= 4 ) do
begin
contatore := contatore + 1;
sum := sum + contatore;
end;
funzione := sum;
end;
Quale valore restituisce la funzione?
Risposte:
a) 10
b) 15
c) 16
d) Nessuna delle risposte precedenti
=======================================================================3) La risposta esatta vale 2 punti.
Si consideri la seguente funzione:
type sequenza = array[1..10] of integer;
procedure calcola(var vett:sequenza; n:integer);
var i,j,x,y: integer;
begin
for i := 1 to n do
begin
y := vett[1];
for j := 1 to n-1 do
begin
x := vett[j+1];
vett[j+1] := y;
y := x;
end;
vett[1] := y;
end;
end;
Assumendo che vett contenga il vettore [10,9,8,7,6,5,4,3,2,1], quali sono gli elementi di vett dopo l'esecuzione di calcola (usando 10 come secondo parametro)?
Risposte:
a) [1,2,3,4,5,6,7,8,9,10]
b) [10,9,8,7,6,5,4,3,2,1]
c) [1,3,5,7,9,2,4,6,8,10]
d) nessuna delle precedenti
=======================================================================4) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?
program cosa(input,output);
type vett=array[0..10] of integer;
var a,b,i: integer;
arr1,arr2: vett;
function funzione(arr: vett; dim: integer) : integer;
var i,t: integer;
begin
i:=0;
t:=0;
if ((dim mod 2)=1) then
while (i<dim) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end
else
while (i< (dim div 2) ) do
begin
t:=arr;
arr:=arr[dim-i-1];
arr[dim-i-1]:=t;
i:=i+1;
end;
funzione:= arr[0];
end;
begin
for i:=0 to 9 do arr1:=i+1;
for i:=0 to 10 do arr2:=i+1;
a:=funzione(arr1,10);
b:=funzione(arr2,11);
writeln('a=',a,',b=',b);
end.
Risposte:
a) a=10,b=1
b) a=1,b=1
c) a=10,b=11
d) a=1,b=11
=======================================================================5) La risposta esatta vale 3 punti.
Cosa stampa il seguente programma?
program Test(input,output);
type vett=array[0..9] of integer;
var i,f,a,b :integer;
arr : vett;
function funzione1(arr: vett) :integer;
var i: integer;
begin
i:= 1;
while(arr <> -1) do i:= i * 2;
funzione1:=i;
end;
function funzione2(arr :vett; f: integer; k: integer) : integer;
var i,m,temp: integer;
begin
i:= 0; m:= 0;
temp:=-1;
while(i <= f) do
begin
m:= (i + f) div 2;
if(arr[m] = k) then temp:=m;
if((arr[m] = -1) or (arr[m] > k)) then
f:= m - 1
else
i:= m + 1;
end;
funzione2:= temp;
end;
begin
for i:=0 to 9 do arr:= -1;
arr[0]:=1;
arr[1]:=2;
arr[2]:=4;
arr[3]:=8;
f:=funzione1(arr);
a:=funzione2(arr,f,4);
b:=funzione2(arr,f,7);
writeln("a=",a,",b=",b);
end.
Risposte:
a) a=2,b=4
b) a=2,b=-1
c) a=-1,b=4
d) a=-1,b=-1
=======================================================================6) La risposta esatta vale 3 punti.
Data la seguente funzione che inizializza i valori di un array bi-dimensionale "matrice":
const N=5;
procedure inizializza( );
var
matrice : array [1..N, 1..N] of integer;
riga, colonna : integer;
begin
for riga := 1 to N do
for colonna := 1 to N do
begin
if ( riga = colonna ) then
matrice[riga, colonna] := 1
else if ( riga + colonna = N+1 ) then
matrice[riga, colonna] := 1
else if ( riga < colonna ) then
matrice[riga, colonna] := 0
else
matrice[riga, colonna] := matrice[colonna, riga]
end;
for riga := 1 to N do
begin
for colonna := 1 to N do
write( matrice[riga, colonna] );
writeln;
end
end;
Indicare quale tra le seguenti configurazioni vengono stampate dalla procedura "inizializza".
Risposte:
a)
1 1 1 1 1
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
1 1 1 1 1
b)
1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
1 0 0 0 1
c)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
d)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
=======================================================================7) La risposta esatta vale 3 punti.
Sia data la seguente funzione ricorsiva:
function mistero(m : integer; n : integer) : integer;
begin
if ( m = 0 ) then
mistero := n
else if ( n=0 ) then
mistero := mistero( m-1, 1 )
else
mistero := mistero( mistero( m-1, n-1 ), n-1 )
end;
Calcolare quale tra le seguenti risposte corrisponde ai valori restituiti invocando:
writeln( mistero(0,3), ' ', mistero(1,3), ' ', mistero(2,3), ' ', mistero(3,3) );
Risposte:
a) 3 1 2 0
b) 3 2 1 0
c) 0 1 2 3
d) Nessuna delle risposte precedenti
=======================================================================
La risposta esatta vale 3 punti.
Si consideri la seguente funzione A.
function B(n:integer): integer;
forward;
function A(n:integer): integer;
begin
if (n>1) then
A:=n*B(n+1)
else
A:=1
end;
function B(n:integer): integer;
begin
if (n>1) then
B:=(n-1)*A(n-2)
else
B:=1
end;
Indicare quali sono i valori restituiti dalle invocazioni
A(1), A(2), A(3), A(4), A(5).
Risposte:
a) 1, 4, 24, 192, 1920
b) 1, 4, 36, 576, 14400
c) 1, 4, 16, 256, 65536
d) nessuna delle precedenti
E giusto come hai detto tu (in emtrambi i casi) (ho fatto la prova al compilatore)Boll ha scritto:Su programmazione non so propiro, a me sembrava scambiasse le variabili, ma potrei benissimo sbagliarmi, gli altri risultati ti tornano?
Prendiamo 4 bovini, di pesi 8 4 2 1
Trovami un metodo per trovare il minimo con una bilancia a bracci che pesa solo due coppie alla volta.
Poi è giusto il 15 nel secondo pascal!
Cavolo, i bovini!!
Comunque ho fatto 20-22 punti... Dovrei essere passato, spero...
(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
[url:197k8v9e]http://antrodimitch.wordpress.com[/url:197k8v9e]
Membro del fan club di Ippo_
Membro del fan club di Ippo_
Caro Mitchan credo proprio che ce l'hai fatta (a me sono passati 13 punti) comunque l'edizione di quest'anno non è confrontabile a quella dello scorso anno in quanto il punteggio massimo è passato da 60 a 35 e la difficoltà è diminuita notevolmente!mitchan88 ha scritto:Comunque ho fatto 20-22 punti... Dovrei essere passato, spero...
(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
In effetti mi sembrava che si siano abbassati i punteggi! (e che la prova sia diventata più facile!)davided87 ha scritto:Caro Mitchan credo proprio che ce l'hai fatta (a me sono passati 13 punti) comunque l'edizione di quest'anno non è confrontabile a quella dello scorso anno in quanto il punteggio massimo è passato da 60 a 35 e la difficoltà è diminuita notevolmente!mitchan88 ha scritto:Comunque ho fatto 20-22 punti... Dovrei essere passato, spero...
(con i puntegi dell'anno scorso il primo, che ora è all'università, ha fatto 28, dunque...)
Beh, per festeggiare la presunta vittoria sono andato ad ordinare Images And Words dei Dream Theater, arriverà fra dieci giorni (spero giusto per la conferma ufficiale )
[url:197k8v9e]http://antrodimitch.wordpress.com[/url:197k8v9e]
Membro del fan club di Ippo_
Membro del fan club di Ippo_
Effettivamente avevo frainteso, pensavo ingenuamente che si trattasse di sempli confronti (un bovino contro un bovino) e non di confronti con due bovini su ogni piatto.Boll ha scritto:Di tutta la tua risposta, CUCU, ho capito pochissimo, ma credo tu sia in errore se dici che bastano tre pesate, te lo dimostro.CUCU ha scritto:...Boll ha scritto:Su programmazione non so propiro, a me sembrava scambiasse le variabili, ma potrei benissimo sbagliarmi, gli altri risultati ...
(Si prega di rispondere nel forum informatica).
Prendiamo A, B,C e D, dobbiamo trovare il minimo e abbiamo A>B+C+D, poichè A da qualche parte dobbiamo metterlo avremo che la parte della bilancia dove si trova A è sempre più pesante dell'altra, comunque io disponga gli altri tre. Detto questo, come faccio ad avere informazioni su essi, visto che le uniche informazioni di cui dispongo sono date dalla bilancia stessa?
In tal caso non sembra possibile trovare il minimo.
Esercizio: dimostriamolo formalmente (soluzioni nel forum di Informatica).
- Ponnamperuma
- Messaggi: 411
- Iscritto il: 10 lug 2006, 11:47
- Località: Torino
Sono d'accordissimo... Tanto più che la mia conoscenza del Pascal si limita a quanto ho potuto apprendere in 3 ore di rivisitazione dei problemi della scorsa edizione... = non avevo praticamente alcun allenamento, solo ho capito cosa indica precisamente la sintassi del linguaggio...stefano88 ha scritto:Sbaglio o l'edizione di quest'anno era di una facilità assurda? Alcune domande erano punti regalati, e comunque ho la vaga impressione che con un po' di logica anche senza conoscere C o Pascal molti possano aver fatto buoni risultati.
E ho fatto tutti gli esercizi meno uno, sia in programmazione (il 5), sia in logica (il 10).
Il che, per essere stata una gara di un'ora sola di tempo, va oltre le mie aspettative...