Anteprima
Vedrai una selezione di 10 pagine su 79
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 1 Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 2
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 6
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 11
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 16
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 21
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 26
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 31
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 36
Anteprima di 10 pagg. su 79.
Scarica il documento per vederlo tutto.
Soluzione temi desame Informatica Generale Settembre 2017/Aprile 2018 Pag. 41
1 su 79
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

X Y

- -

- 6 G(&y, &y)

Y X

- 6 &y &y

- 12 &y &y

- 13 &y &y

 26

- 26

- 26 G(&x, &x)

- 26 Y X

- 26 &x &x

- 26 &x &x

1 26 &x &x

 2

3 26

Autore: Cassandra Pagina 13

Quesito 4 (punteggio 4)

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 COUNT(*)

FROM (SELECT MAX(Ret) AS M FROM Consulenti GROUP BY PIVA) A,

(SELECT MIN(Ret) AS M FROM Consulenti GROUP BY CF) B

WHERE A.M > B.M

TABELLA A

M

1000

5000

Autore: Cassandra Pagina 14

TABELLA B

M

1000

5000

1000

TABELLA A X B

A.M B.M

1000 1000

1000 5000

1000 1000

5000 1000

5000 5000

5000 1000

TABELLA FINALE

COUNT(*)

2

Autore: Cassandra Pagina 15

Esercizio 1 (9 punti)

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

verifica

3. definisce la funzione con parametri:

 int;

a di tipo vettore di 100

 int;

b di tipo

La funzione deve restituire con un’istruzione return la posizione i di un qualsiasi elemento del

vettore a tale a[i-1] + a[i+1] = b e a[i+1] > a[i-1]; in caso contrario la funzione deve restituire con

un’istruzione return il valore -1.

main

4. nella funzione x

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

y

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

x;

VII. inserire 100 valori letti da standard input nel vettore

VIII. ripetere le seguenti operazioni fino a quando viene scritto un valore maggiore di 5 in ogni

posizione del vettore y:

a. inserire in una variabile di nome t un valore letto da standard input;

verifica x

b. eseguire la funzione applicata al vettore e al numero letto da

standard input inserendo il risultato nel vettore y.

int verifica (int a[100], int b){

int i=0;

int vero=0;

do{ if(a[i-1] + a[i+1] == b && a[i+1] > a[i-1]){

vero=1;

}

i++;

} while (i<100 && vero == 0);

if( vero == 1){

return i--;

}

Autore: Cassandra Pagina 16

else { return -1;

}

}

int main() {

int x[100];

int y[100];

int i;

int t;

int ris;

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

scanf("%d", &x[i]);

}

i=0;

do{ scanf("%d", &t);

ris=verifica(x, t);

if(ris>5){

y[i]=ris;

i++;

}

}while(i<100);

system ("PAUSE");

return 0;

Autore: Cassandra Pagina 17

}

Esercizio 2 (4 punti)

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

x

1. definisce un vettore contenente 100 numeri interi; x;

2. legge da standard input 100 numeri interi e li inserisce nel vettore

x

3. visualizza su standard output le posizioni di ove compaiono numeri pari e modivica tali valori

moltiplicandoli per 10.

int main() {

int x[100];

int i;

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

scanf("%d", &x[i]);

}

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

if(x[i]%2 == 0){

printf("%d", &x[i]);

x[i]=x[i]*10;

}

}

system ("PAUSE");

return 0;

}

Autore: Cassandra Pagina 18

Esercizio 3 (7 punti)

Il sistema informatico di una nota azienda elettrica utilizza un database per gestire le fatture emesse. Nel

database sono presenti le seguenti relazioni:

Fornitori (ID, PIVA, Indirizzo)

Vendite(IDProdotto, DataA, DataV, Importo)

Fornitori ID PIVA Vendite

dove nella relazione gli attributi e formano una chiave. Nella relazione

IDProdotto DataA IDProdotto

gli attributi e formano una chiave e l'attributo è chiave esterna per la

Fornitori. Vendite

relazione Ogni tupla della relazione elenca i prodotti venduti; in ogni tupla

DataA DataV

l'attributo rappresenta la data di acquisto del prodotto, l'attributo rappresenta la data di

Importo

vendita del prodotto e l'attributo rappresenta il prezzo di vendita.

1. scrivere l'istruzione SQL che visualizza la partita iva (PIVA) dei fornitori i cui tutti prodotti sono

stati tutti venditi entro 7 giorni dalla data di acquisto (utilizzare la funzione

TIMESTAMPDIFF(DAY,DataA ,DataV) per eseguire la differenza tra due date);

2. scrivere l'istruzione SQL che visualizza il valore medio dell’importo delle vendite emesse nel 2016;

3. scrivere l'istruzione SQL che visualizza le partite iva (PIVA) di chi fornisce più di un prodotto

venduto;

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

Fornitori

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

SUM(Importo) Vendite.

proiezione dell'operatore dalla relazione

Query 1

SELECT PIVA

FROM Fornitori AS F1, Vendite AS V1

WHERE ID = IDProdotto AND TIMESTAMPDIFF(DAY,DataA ,DataV) < 7

GROUP BY PIVA

HAVING COUNT(*) = (SELECT COUNT(*)

FROM Fornitori AS F2, Vendite AS V2

WHERE ID = IDProdotto AND TIMESTAMPDIFF(DAY,DataA ,DataV) < 7 AND F2.PIVA = F1.PIVA

GROUP BY PIVA) A

Autore: Cassandra Pagina 19

Query 2

SELECT AVG(Importo)

FROM Vendite

WHERE DataV BETWEEN 01-01-2016 AND 31-12-2016

Query 3

SELECT PIVA

FROM Fornitori, Vendite

WHERE ID = IDProdotto

GROUP BY PIVA

HAVING COUNT(*)>1

Query 4

SELECT *

FROM Fornitori, (SELECT SUM (Importo)

FROM Vendite) X

Autore: Cassandra Pagina 20

Esame Informatica Generale 05/02/2018 – Fila A

Quesito 1 (punteggio 2)

Si considerino le seguenti dichiarazioni di variabili e prototipo di funzione:

int x[10];

double y;

void esame(int[], int, double*); /* versione puntatori */

void esame(int[], int, double&); /* versione riferimenti */

indicare gli errori presenti nella seguente espressione.

esame(x[9], x[y] + 1, y + 1.5);

Come primo parametro la funzione richiede un intero vettore, ma viene

passato un solo valore. Dovrebbe essere semplicemente x invece di x[9]

Nel secondo parametro viene passato x[y], ma l’indice deve essere intero

non un valore double

Come ultimo parametro viene richiesto un puntatore, mentre viene passata

una variabile normale. Dovrebbe essere &y, invece che solo y.

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 F(int* x) { int F(int& x) {

x = 2 + x;

*x = 2 + *x; return x;

}

return *x; int G(int& y, int x) {

} x = 1 + F(y);

y = y + 1;

return y + x;

int G(int* y, int x) { }

Autore: Cassandra Pagina 21

x = 1 + F(y); int main() {

int x, y;

*y = *y + 1; x = 2;

y = G(x, F(x));

return *y + x; return 0;

} }

int main() {

int x, y;

x = 2;

y = G(&x, F(&x));

return 0;

}

Main

X Y

- -

2 - F(&x)

2 - X

2 - &x

4 - &x  4

G(&x, 4)

4 - Y X

4 - &x 4

4 - &x 4 F(&x)

Autore: Cassandra Pagina 22

4 - &x 4 X

4 - &x 4 &x

6 - &x 4 &x  6

6 - &x 7

7 - &x 7

 14

7 14

Quesito 4 (punteggio 4)

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 A.M, B.M, COUNT(*) AS C

FROM (SELECT COUNT(*) AS M FROM Consulenti) A,

Autore: Cassandra Pagina 23

(SELECT AVG(Ret) AS M FROM Consulenti GROUP BY CF) B

GROUP BY A.M, B.M

TABELLA A

M

4

TABELLA B

M

1500

5000

1500

TABELLA A X B

A.M B.M

4 1500

4 5000

4 1500

TABELLA FINALE

A.M B.M C

4 1500 2

4 5000 1

Autore: Cassandra Pagina 24

Esercizio 1 (9 punti)

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

sostituisci

5. definisce la funzione con parametri:

 int;

a di tipo vettore di 100

 int;

b di tipo vettore di 30

 int;

c di tipo puntatore/riferimento ad un

Si suppone che il vettore b contenga solo numeri negativi. La funzione deve sostituire al più 30

valori positivi o nulli contenuti nel vettore a con i valori presenti nel vettore b. Attenzione ogni

valore del vettore b può essere utilizzato solamente per una sostituzione.

Inoltre, la funzione deve scrivere nell’area di memoria puntata/riferita da c il numero di sostituzioni

effettuate e restituire con un’istruzione return il numero 1 se sono stati sostituiti tutti i numeri

positivi o nulli del vettore a, 0 in caso contrario.

main

6. nella funzione x int y int;

IX. dichiarare un vettore di nome di 100 e un vettore di nome di 30

t int n int;

X. dichiarare una variabile di nome di tipo e una variabile di nome di tipo

y.

XI. inserire 30 valori letti da standard input nel vettore Durante l’esecuzione inserire solo

numeri negativi;

XII. ripetere le seguenti operazioni fino a quando, dopo l’esecuzione della funzione

sostituisci, in ogni posizione del vettore x è presente un numero negativo:

x;

a. inserire 100 valori letti da standard input nel vettore

sostituisci x

b. eseguire la funzione applicata al vettore e al vettore nel

vettore y, utilizzando le variabili t e n per i risultati.

int sostituisci (int a[100], int b[30], int *c){

int i,j=0;

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

if(a[i]>=0 && j<30){

a[i]=b[j];

j++;

}

}

*c=j;

Autore: Cassandra Pagina 25

if(i==100){

return 1;

}

else{ return 0;

}

}

int main() {

int x[100];

int i;

int y[30];

int n;

i=0;

do{ scanf("%d", &n);

if(n<0){ y[i]=n;

i++;

}

}while(i<30);

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

scanf("%d", &x[i]);

}

Autore: Cassandra Pagina 26

n=sostituisci(x, y, &t);

}while(t!=0);

system ("PAUSE");

return 0;

}

Esercizio 2 (4 punti)

Descrivere un algoritmo codificato in linguag

Dettagli
Publisher
A.A. 2017-2018
79 pagine
2 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.