Anteprima
Vedrai una selezione di 14 pagine su 65
Soluzione temi d'esame 2017 Aprile Luglio Pag. 1 Soluzione temi d'esame 2017 Aprile Luglio Pag. 2
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 6
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 11
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 16
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 21
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 26
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 31
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 36
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 41
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 46
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 51
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 56
Anteprima di 14 pagg. su 65.
Scarica il documento per vederlo tutto.
Soluzione temi d'esame 2017 Aprile Luglio Pag. 61
1 su 65
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

GROUP BY CF ) X

Query 5

SELECT *

FROM Forniture, ( SELECT COUNT(*)

FROM Fatture) X 12

Esame Informatica Generale 06/07/2017 – Fila B

Quesito 1 (punteggio 2)

Si considerino le seguenti dichiarazioni di variabili e la seguente istruzione di assegnamento:

double x[10];

int y;

y = compra(&x[1], x[9], x); /* versione puntatori */

y = compra (x[1], x[9], x) /* versione riferimenti */

elabora. riferimenti

definite il prototipo (intestazione) della funzione Nella versione la funzione

x[1].

dovrà modificare la variabile

Int compra (double *, double, double []);

Quesito 2 (punteggio 2)

Descrivere la funzione del gestore dei file di un sistema operativo.

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 g(int x, double* y) int g(int x, double& y)

{ {

x = x + 1; x = x + 1;

*y = *y + x; y = y + x;

return x - 2; return x - 2;

} }

int main() int main()

{ { 13

double x; double x;

int y; int y;

y = 1; y = 1;

x = 2.4; x = 2.4;

while (x > 0) while (x > 0)

{ {

y = g(y, &x); y = g(y, x);

x = x - 3; x = x - 3;

} }

return 0; return 0;

} }

Main

X Y

- -

- 1

2.4 1 G(1, &x)

2.4 1 X Y

2.4 1 1 &x

2.4 1 2 &x

4.4 1 2 &x

 0

1.4 0 G(0,&x)

1.4 0 X Y

1.4 0 0 &x

1.4 0 1 &x 14

2.4 0 1 &x

 -1

2.4 -1

-0.6 -1

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 22-11-2009 2000

222 BBBBBB 28-10-2009 5000

111 CCCCCC 30-12-2007 1000

222 CCCCCC 30-12-2007 2000

stabilire il risultato della seguente query scrivendo le tabelle intermedie:

SELECT C.CF, T.M, COUNT(*)

FROM Consulenti C, (SELECT AVG(Ret) AS M FROM Consulenti GROUP BY PIVA) T

GROUP BY C.CF, T.M

HAVING SUM(Ret) > T.M 15

TABELLA T

M

1000

4500

TABELLA C X T

PIVA CF dataAss Ret M

111 AAAAAA 22-11-2009 1000 1000

222 AAAAAA 22-11-2009 2000 1000

222 BBBBBB 28-10-2009 5000 1000

111 CCCCCC 30-12-2007 1000 1000

222 CCCCCC 30-12-2007 2000 1000

111 AAAAAA 22-11-2009 1000 4500

222 AAAAAA 22-11-2009 2000 4500

222 BBBBBB 28-10-2009 5000 4500

111 CCCCCC 30-12-2007 1000 4500

222 CCCCCC 30-12-2007 2000 4500

TABELLA FINALE

C.CF T.M COUNT(*)

AAAAAA 1000 2

BBBBBB 1000 1

BBBBBB 4500 1

CCCCCC 1000 2 16

Esercizio 1 (9 punti)

Descrivere un algoritmo codificato in linguaggio C/C++ che:

check3

3. definisce la funzione con parametri:

 int;

a di tipo vettore di 100

 int.

b di tipo puntarore/riferimento ad una variabile di tipo

La funzione deve scrivere nell'area di memoria puntata/riferita da b il valore 1 se nel vettore a sono

presenti 3 valori diversi tra loro; in caso contrario la funzione deve scrivere nell'area di memoria

puntata/riferita da b il valore -1.

main

4. nella funzione x

IV. dichiarare un vettore di nome contenente 100 numeri interi;

V. ripetere le seguenti operazioni fino a quando due esecuzioni separate della funzione

check3 restituiscono i valori 1 e -1: x,

a. inserire 100 valori letti da standard input nel vettore

check3 x

b. eseguire la funzione applicata al vettore scrivendo il risultato nella

variabile t. 17

#include <stdio.h>

#include <stdlib.h>

void check3(int a[100], int *b){

*b=-1;

int i,j;

int conta=0;

for(i=0;i<100;i++){

for(j=0;j<100;j++){

if(a[i]!=a[j]) conta++;

}

}

if (conta>=3) *b=1;

}

int main(){

int x[100];

int i;

int t;

int conta1=0;

int contameno=0;

do{ for(i=0;i<100;i++) scanf("%d", &x[i]); 18

check3(x, &t);

if (t=1) conta1++;

else contameno++;

}while( conta1<1 && contameno<1);

system("PAUSE");

return 0;

}

Esercizio 2 (4 punti)

Descrivere un algoritmo codificato in linguaggio C/C++ che:

1. definisce un vettore di nome a contenente 1000 numeri interi;

2. modifica il vettore a inserendo in ogni sua posizione un valore letto da standard input;

3. successivamente al punto due, modifica il vettore a diminuendo ogni suo valore per il valore

massimo presente nel vettore a.

#include <stdio.h>

#include <stdlib.h>

int main(){

int a[1000];

int i;

int max;

for(i=0;i<1000;i++) scanf("%d", &a[i]);

max=a[1]; 19

for(i=0;i<1000;i++){

if(a[i]>max) max=a[i];

}

for(i=0;i<1000;i++) a[i]=a[i]-max;

system("PAUSE");

return 0;

}

Esercizio 3 (8 punti)

Il sistema informatico dell'azienda che gestisce i Telepass utilizza un database per gestire il transito dai

caselli. Nel database sono presenti le seguenti relazioni:

Apparati (ID, CF, Indirizzo)

Transito(CodiceTelepass, CodiceCasello, Data, Velocità)

Apparati ID Transito

dove nella relazione l'attributo è la chiave primaria. Nella relazione gli attributi

CodiceTelepass, CodiceCasello Data

e formano la chiave primaria e l'attributo

CodiceTelepass Transito. Transito

è chiave esterna per la relazione Ogni tupla della relazione

Velocità

elenca i passaggi dai caselli autostradali; in ogni tupla l'attributo rappresenta la velocità con cui

il veicolo è transitato dal casello.

data la seguente interrogazione SQL spiegare l’errore logico in essa contenuto (la query ha

1. sicuramente un errore):

SELECT *

FROM Apparati

WHERE ID IN (SELECT CodiceTelepass, Data FROM Transito)

2. scrivere l'istruzione SQL che visualizza, per gli utenti che hanno transitato almeno una volta in un

casello, il codice fiscale (CF) e la massima velocità a cui hanno transitato;

3. scrivere l'istruzione SQL che visualizza per ogni casello il numero totale di passaggi nel 2016;

4. scrivere l'istruzione SQL che visualizza i caselli che hanno registrato il maggiore numero di transiti

nel 2016;

5. scrivere l'istruzione SQL che traduce la seguente espressione dell’algebra relazionale: prodotto

Apparati

cartesiano fra la tabella e quella che si ottiene attraverso un'operazione di proiezione

MIN(Data) Transito.

dell'operatore dalla relazione 20

Query 1

Nella query interna dovrebbe essere estratto solo CodiceTelepass e non anche la data che non è

confrontabile con l’ID.

La versione corretta sarebbe:

SELECT *

FROM Apparati

WHERE ID IN (SELECT CodiceTelepass FROM Transito)

Query 2

SELECT CF, MAX(Velocità)

FROM Apparati, Transito

WHERE ID = CodiceTelepass

GROUP BY CF

Query 3

SELECT CodiceCasello, COUNT(*)

FROM Transito

WHERE Data BETWEEN ‘01/01/2016’ AND ‘31/12/2013’

GROUP BY CodiceCasello

Query 4

SELECT CodiceCasello

FROM Transito

WHERE Data BETWEEN ‘01/01/2016’ AND ‘31/12/2013’

GROUP BY CodiceCasello

HAVING COUNT(*)>= (SELECT MAX(Conteggio)

FROM (SELECT COUNT(*) AS Conteggio

FROM Transito

GROUP BY CodiceCasello) A ) B 21

Query 5

SELECT *

FROM Apparati, (SELECT MIN(Data)

FROM Transito) X 22

Esame Informatica Generale 15/06/2017 – Fila A

Quesito 1 (punteggio 2)

Si consideri il seguente frammento di programma in linguaggio C:

while (i <= j) {

i = i + a;

j = j / 2;

} do-while,

utilizzando il ciclo scrivere un frammento di programma equivalente.

Do{ I=i+a;

j=/2;

}while(i<=j);

Quesito 2 (punteggio 2)

Descrivere la funzione della memoria centrale. 23

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* y) { int f(int& y) {

*y = *y + 1; y = y + 1;

return *y + 1; return y + 1;

} }

int G(int* y) { int G(int& y) {

int x; int x;

x = 1 + f(y); x = 1 + f(y);

*y = *y + 1; y = y + 1;

return *y + x; return y + x;

} }

int main() { int main() {

int x, y; int x, y;

x = 0; x = 0;

y = G(&x) - 1; y = G(x) - 1;

return 0; return 0;

} } 24

Main

X Y

- -

0 - G(&x)

0 - Y X

0 - &x - F(&x)

0 - &x - Y

0 - &x - &x

1 - &x - &x  2

1 - &x 3

2 - &x 3

 5

2 4 25

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 2500

222 BBBBBB 22-11-2009 5000

111 CCCCCC 30-12-2007 1000

222 CCCCCC 28-10-2009 2500

scrivere il risultato della seguente query scrivendo tutte le tabelle intermedie:

SELECT B.K, COUNT(*), SUM(B.K)

FROM ( SELECT Ret, COUNT(DISTINCT dataASS) AS K

FROM Consulenti

GROUP BY PIVA, Ret

) A,

( SELECT PIVA, COUNT(*) AS K

FROM Consulenti

GROUP BY PIVA, Ret

) B

WHERE B.K <> A.K

GROUP BY B.K 26

TABELLA A

Ret K

1000 2

2500 1

5000 1

TABELLA B

PIVA K

111 2

222 2

222 1

TABELLA A X B

Ret A.K PIVA B.K

1000 2 111 2

2500 1 111 2

5000 1 111 2

1000 2 222 2

2500 1 222 2

5000 1 222 2

1000 2 222 1

2500 1 222 1

5000 1 222 1 27

TABELLA FINALE

B.K COUNT(*) SUM(B.K)

2 4 8

1 1 1

Esercizio 1 (9 punti)

Scrivere un algoritmo codificato in linguaggio C/C++ che:

Maggiori

5. definisce la funzione con parametri:

 a int;

di tipo vettore di 500

 b int;

di tipo vettore di 500

 d int.

di tipo puntatore/riferimento ad un d

Scrivere nell’area di memoria puntata/riferita da la posizione di un qualsiasi elemento del

a b.

vettore maggiore di ogni elemento del vettore Se tale elemento non esiste, la funzione deve

d

scrivere nell’area di memoria puntata riferita da il numero

-1. main

6. nella funzione x e z int.

VI. dichiara due vettori di 500

t int;

VII. dichiara una variabile di tipo x

VIII. inserisce in tutte le posizioni del vettore dei numeri interi letti da standard input.

IX. ripete le seguenti istruzioni che devono terminare quando l’esecuzione della funzione

Maggiori () t

inserisce nella variabile il valore -1: z

a. inserisce in tutte le posizioni del vettore dei numeri interi letti da standard

input. Maggiori () x z

b. eseguire la f

Dettagli
Publisher
A.A. 2017-2018
65 pagine
4 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher cassy14 di informazioni apprese con la frequenza delle lezioni di Informatica generale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Avellone Alessandro.