1
Sommario
Esame Informatica Generale ............................................................................................................................. 3
03/02/2017 – Tema A ........................................................................................................................................ 3
Soluzione tema A 03-02-2017 ........................................................................................................................... 7
Esame Informatica Generale ........................................................................................................................... 14
03/02/2017 – Tema B ...................................................................................................................................... 14
Soluzione tema B 03-02-2017.......................................................................................................................... 18
Esame Informatica Generale ........................................................................................................................... 25
03/02/2017 – Tema C ...................................................................................................................................... 25
Soluzione tema C 03-02-2017 .......................................................................................................................... 29
Esame Informatica Generale ........................................................................................................................... 36
03/02/2017 – Tema D ...................................................................................................................................... 36
Soluzione tema D 03-02-2017 ......................................................................................................................... 40
Esame Informatica Generale ........................................................................................................................... 47
17/02/2017 – Tema A ...................................................................................................................................... 47
Soluzione tema A 17-02-2017 ......................................................................................................................... 51
Esame Informatica Generale ........................................................................................................................... 56
17/02/2017 – Tema B ...................................................................................................................................... 56
Soluzione tema B 17-02-2017.......................................................................................................................... 60
Esame Informatica Generale ........................................................................................................................... 65
17/02/2017 – Tema C ...................................................................................................................................... 65
Soluzione tema C 17-02-2017 .......................................................................................................................... 69
Esame Informatica Generale ........................................................................................................................... 75
17/02/2017 – Tema D ...................................................................................................................................... 75
Soluzione tema D 17-02-2017 ......................................................................................................................... 78
2
Esame Informatica Generale
–
03/02/2017 Tema A
Quesito 1 (punteggio 2)
Descrivere il protocollo di rete TCP.
Quesito 2 (punteggio 2)
Descrivere la funzione dei registri di una CPU.
Quesito 3 (punteggio 2)
Scegliere uno dei seguenti algoritmi codificati in linguaggio C/C++ e scrivere la tabella di
esecuzione (trace table)
Puntatori Riferimenti
int F(int& a, int& b) {
int F(int* a, int* b) { b = 1 + a;
*b = 1 + *a; a = a + b;
return a;
*a = *a + *b; }
return *a; int G(int& x, int y) {
} int c;
c = x + F(x, x) + y;
return x + c;
}
int G(int* x, int y) { int main() {
int c; int x, y;
c = *x + F(x, x) + y; x = 1;
y = G(x, 2);
return *x + c; return 0;
} }
int main() { 3
int x, y;
x = 1;
y = G(&x, 2);
return 0;
}
Quesito 4 (punteggio 2)
Dati i seguenti schemi di relazione con le rispettive istanze:
Aziende(PIVA, Denominazione)
PIVA Denominazione
111 Pirelli
222 Zucchetti
Consulenti(PIVA,CF, dataAss, Ret)
PIVA CF dataAss Ret
111 AAAAAA 22-11-2009 1000
222 AAAAAA 28-10-2009 2000
222 BBBBBB 22-11-2009 5000
111 CCCCCC 30-12-2007 1000
222 CCCCCC 30-12-2007 2000
scrivere il risultato della seguente query scrivendo tutte le tabelle intermedie:
SELECT A.K, B.H, COUNT(*)
FROM ( SELECT COUNT(*) AS K, SUM(Ret) AS H
FROM Consulenti
GROUP BY PIVA, Ret
) A, 4
( SELECT COUNT(*) AS H
FROM Consulenti
GROUP BY PIVA
) B
GROUP BY A.K, B.H
Esercizio 1 (9 punti)
Scrivere un algoritmo codificato in linguaggio C/C++ che:
SoloSingoli
1. definisce la funzione con parametri:
a int;
di tipo vettore di 500
b int;
di tipo vettore di 10
c int.
di tipo puntatore/riferimento ad un
a 1 10.
Si suppone che nel vettore siano presenti solamente numeri compresi tra e La
b a
funzione deve copiare nel vettore i valori del vettore che non occorrono più di una
a c
volta nel vettore e scrivere nell’area di memoria puntata/riferita da il numero di valori
copiati. main
2. nella funzione x int y int z int;
I. dichiara due vettore di 500 e di 10 e una variabile di tipo
II. ripete le seguenti istruzioni fino a quando dopo la chiamata della funzione
SoloSingoli() y -1:
il vettore contiene tutti valori
x standard input;
a. riempire il vettore con valori letti da
y -1;
b. inserire in tutti i posti del vettore valore
SoloSingoli() x
c. eseguire la funzione applicata al vettore inserendo i
y z;
risultati nel vettore e nella variabile
Esercizio 2 (4 punti)
Scrivere un algoritmo codificato in linguaggio C/C++ che:
1. legge da standard input due numeri interi positivi che rappresentano valori espressi in ore
e inserisce il primo nella variabile P ed il secondo nella variabile S.
2. scrive nella variabile Mi il minore tra P ed S e nella variabile Ma il maggiore tra P ed S
3. legge da standard input una sequenza di numeri interi positivi che rappresentano dei
minuti. Per ogni numero della sequenza, se il valore in ore del numero letto è compreso tra
Mi Ma
e (estremi inclusi), tale valore deve essere visualizzato su standard output.
1
L'operazione termina quando viene letto da standard input il numero 5
Esercizio 3 (9 punti)
Il sistema informatico del Centro Sportivo Italiano (CSI) utilizza un base di dati per gestire i rimborsi
arbitrali per le gare di pallacanestro regionali. Nella base di dati è presente la seguente tabella:
Rimborsi (IDGara, IDArbitro, Chilometri, CostoKm, GettonePartita)
Rimborsi IDGara IDArbitro
dove nella relazione gli attributi e formano una chiave. Ogni
Rimborsi
tupla della relazione serve a memorizzare i dati relativi ai rimborsi degli arbitri. Per
GettonePartita
calcolare il rimborso si deve sommare il valore di con il valore ottenuto
Chilometri CostoKm.
moltiplicando il valore di e il valore di Le gare di pallacanestro sono
arbitrate da uno o più arbitri (solitamente due). Ogni arbitro designato per una partita riceve un
rimborso ed il numero di chilometri percorsi per raggiungere la località viene memorizzato
Chilometri.
nell’attributo
Scrivere l'istruzione SQL che: CostoKm CostoKm
1. aumenta di 0.2 il valore di di tutte le tuple in cui il valore di è
inferiore a 1.0. IDGara
2. visualizza il valore dell'attributo per tutte le gare in cui è stato pagato un solo
rimborso; IDArbitro
3. visualizza il valore dell’attributo degli arbitri che hanno percorso
complessivamente più chilometri;
IDArbitro
4. visualizza il valore dell’attributo di tutti gli arbitri che in qualche gara sono
stati gli unici a ricevere il rimborso;
5. traduce la seguente espressione in algebra relazionale: operazione di prodotto cartesiano
fra: Rimborsi
a. la relazione ottenuta da attraverso un'operazione di proiezione
IDArbitro
dell’attributo e
Rimborsi
b. la relazione ottenuta da attraverso un'operazione di proiezione degli
Chilometri GettonePartita.
attributi e 6
Soluzione tema A 03-02-2017
Quesito 3
Main
X Y
- -
1 -
1 - G(&x,2)
1 - X Y C
1 - &x 2
1 - &x 2 -
1 - &x 2 - F(&x,&x)
1 - &x 2 - A B
1 - &x 2 - &x &x
2 - &x 2 - &x &x
4 - &x 2 - &x &x
-->4
4 - &x 2 10
-->14
4 14 7
Quesito 4
TABELLA B
H
2
3
TABELLA A
K H
2 2000
3 9000
TABELLA A X B
A.K A.H B.H
2 2000 2
3 9000 2
2 2000 3
3 9000 3
TABELLA FINALE
A.K B.H COUNT(*)
2 2000 2
3 9000 2 8
Esercizio 1
#include <stdlib.h>
#include <stdio.h>
void SoloSingoli(int a[500], int b[10], int *c){
int i,j,k;
int conta=0;
int conteggio;
k=0;
for(i=0;i<500;i++){
conteggio=0;
for(j=0;j<500;j++){
if(a[i]==a[j]) conteggio++;
}
if(conteggio==1) {
b[k]=a[i];
k++;
conta++;
}
}
*c=conta;
} 9
int main(){
int x[500], y[10];
int z;
int conta;
int i;
while(conta<10){
for(i=0;i<500;i++){
scanf("%d",&x[i]);
}
for(i=0;i<10;i++) y[i]=-1;
SoloSingoli(x,y,&z);
conta=0;
for(i=0;i<10;i++){
if(y[i]==-1) conta++;
}
}
system("PAUSE");
return 0;
} 10
Esercizio 2
#include <stdlib.h>
#include <stdio.h>
int main(){
int P;
int S;
int Mi;
int Ma;
int m;
scanf("%d",&P);
scanf("%d",&S);
if (P>S){
Ma=P;
Mi=S;
}
else{ Ma=S;
Mi=P;
}
do{ scanf("%d",&m); 11
if(m>=Mi && m<=Ma) printf("Il numero è:%d\n",&m);
}while(m!=1);
system("PAUSE");
return 0;
}
Esercizio 3
Query 1
UPDATE Rimborsi
SET CostoKm = CostoKm + 0.02
WHERE CostoKm < 1.0
Query 2
SELECT IDGara
FROM Rimborsi
GROUP BY IDGara
HAVING COUNT(*)=1
Query 3
SELECT IDArbitro
FROM Rimborsi
GROUP BY IDArbitro
HAVING SUM(Chilometri) = (SELECT MAX(Somma)
FROM (SELECT SUM(Chilometri) AS Somma
FROM Rimborsi
GROUP BY IDArbitro) A 12
) B
Query 4
SELECT *
FROM (SELECT IDArbitro
FROM Rimborsi) A,
(SELECT Chilometri, GettonePartita
FROM Rimborsi) B 13
Esame Informatica Generale
–
03/02/2017 Tema B
Quesito 1 (punteggio 2)
Descrivere il protocollo di rete IP.
Quesito 2 (punteggio 2)
Descrivere la funzione del bus di sistema di una CPU.
Quesito 3 (punteggio 2)
Scegliere uno dei seguenti algoritmi codificati in linguaggio C/C++ e scrivere la tabella di
esecuzione (trace table)
Puntatori Riferimenti
int F(int& a, int& b) {
int F(int* a, int* b) { b = 1 + a;
*b = 1 + *a; a = a + b;
return a;
*a = *a + *b; }
return *a; int G(int& x, int y) {
} int c;
c = x + F(x, x) + y;
return x + c;
}
int G(int* x, int y) { int main() {
int c; int x, y;
c = *x + F(x, x) + y; x = 2;
y = G(x, 1);
return *x + c; return 0;
} }
int main() { 14
int x, y;
x = 2;
y = G(&x, 1);
return 0;
}
Quesito 4 (punteggio 2)
Dati i seguenti schemi di relazione con le rispettive istanze:
Aziende(PIVA, Denominazione)
PIVA Denominazione
111 Pirelli
222 Zucchetti
Consulenti(PIVA,CF, dataAss, Ret)
PIVA CF dataAss Ret
111 AAAAAA 22-11-2009 1000
222 AAAAAA 28-10-2009 2000
222 BBBBBB 22-11-2009 5000
111 CCCCCC 30-12-2007 1000
222 CCCCCC 30-12-2007 2000
scrivere il risultato della seguente query scrivendo tutte le tabelle intermedie:
SELECT COUNT(*), SUM(A.H), SUM(B.H)
FROM ( SELECT COUNT(*) AS K, SUM(Ret) AS H
FROM Consulenti
GROUP BY PIVA, Ret
) A, 15
( SELECT COUNT(*) AS H
FROM Consulenti
GROUP BY PIVA
) B
WHERE A.K > 1
Esercizio 1 (9 punti)
Scrivere un algoritmo codificato in linguaggio C/C++ che:
SonoSuperato
3. definisce la funzione con parametri:
a int;
di tipo vettore di 500
b int;
di tipo vettore di 499
c int.
di tipo puntatore/riferimento ad un i a,
La funzione deve svolgere la seguente operazione: per ogni posto del vettore il valore
a[i] b j
deve essere copiato nel vettore solo se esiste almeno una posizione maggiore di
i a[i]<a[j].
tale che La funzione deve inoltre scrivere nell’area di memoria
c
puntata/riferita da il numero di valori copiati.
main
4. nella funzione m int n int p
III. dichiara due vettore di 500 ed di 499 e una variabile di tipo
int;
IV. ripete le seguenti istruzioni fino a quando la chiamata della funzione
SonoSuperato() n
scrive in tutti i posti del vettore dei valori:
m standard input;
a. riempire il vettore con dei valori letti da
SonoSuperato () x
b. eseguire la funzione applicata al vettore
y z;
inserendo i risultati nel vettore e nella variabile
Esercizio 2 (4 punti)
Scrivere un algoritmo codificato in linguaggio C/C++ che:
1. legge da standard input un numero intero positivo che rappresenta una distanza espressa
in chilometri e lo inserisce nella variabile kmF.
2. Dichiara una variabile intera di nome kmT.
3. legge da standard input una sequenza di numeri interi non negativi che rappresentano
m
delle distanze espresse in metri. Per ogni numero della sequenza, calcola i chilometri
m kmF, kmT.
contenuti in e, se questa quantità è maggiore di la accumula nella variabile
0.
L'operazione termina quando viene letto da standard input il numero 16
Esercizio 3 (9 punti)
Il sistema informatico del Università Milano_Bicocca utilizza un base di dati per gestire i tutor per i
laboratori. Nella base di dati è presente la seguente tabella:
Coperture (Laboratorio, IDTutor, data, ore, costoOrario)
Coperture Laboratorio, IDTutor data
dove nella relazione gli attributi e formano
Coperture
una chiave. Ogni tupla della relazione serve a memorizzare i dati relativi alle ore
data
svolte dai tutor per calcolarne il compenso. In ogni tupla l’attributo memorizza il giorno in
ore
cui è stato svolto l’incarico, l’attributo memorizza il numero di ore dell’incarico e l’attributo
costoOrario memorizza il compenso orario.
Scrivere l'istruzione SQL che: costoOrario
6. elimina le tuple con valore di negativo.
IDTutor
7. visualizza il valore dell’attributo dei tutor che hanno lavorato il maggior numero
di ore; IDTutor
8. visualizza il valore dell'attributo per tutti i tutor cha hanno avuto solo un
incarico; IDTutor
9. vi
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Soluzione temi d'esame 2017 Aprile Luglio
-
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018
-
Soluzione Temi Esame Informatica Generale 2016
-
Soluzione Temi Esame Informatica generale - Aprile Settembre 2018