Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di Informatica Generale: Linguaggio C/C++, Gestione File, Database e Algoritmi - , Prove d'esame di Elementi di Informatica

Temi svolti di informatica generale

Tipologia: Prove d'esame

2018/2019

Caricato il 24/06/2019

martina-kewais
martina-kewais 🇮🇹

3

(5)

17 documenti

1 / 5

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Esame Informatica Generale
28/01/2019
Quesito 1 (punteggio 2)
Si considerino le seguenti istruzioni del linguaggio c/c++.
int x[100];
double y;
int fz(int[], double, double&); // riferimenti
Indicando a quale versione si fa riferimento (puntatori o riferimenti), indicare,
giustificando la risposta, gli errori della seguente espressione.
H=fz(x, x[2 + 3], y + x[y]) + 5.6; è Sbagliato solo il terzo elemento
perché non ha senso mettere un variabile double come contatore di un
vettore di numeri interi . il terzo elemento è sbagliato perché non
posso far passare una somma ad un riferimento ( un riferimento non
può essere condotto ad una somma) . un vettore non può avere un
indice double .
Quesito 2 (punteggio 2)
Descrivere la funzione del gestore dei file di un sistema operativo.
Quesito 3 (punteggio 2)
Descrivere la funzione del modem.
Quesito 4 (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 y) {
*x = y + *x;
return *x + 1;
}
int G(int* y, int x) {
*y = x + F(y, x);
return *y + x;
}
int F(int& x, int y) {
x = y + x;
return x + 1;
}
int G(int& y, int x) {
y = x + F(y, x);
return y + x;
}
3/4
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Esercizi di Informatica Generale: Linguaggio C/C++, Gestione File, Database e Algoritmi - e più Prove d'esame in PDF di Elementi di Informatica solo su Docsity!

Esame Informatica Generale 28/01/

Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; double y; int fz(int[], double, double&); // riferimenti Indicando a quale versione si fa riferimento (puntatori o riferimenti) , indicare, giustificando la risposta, gli errori della seguente espressione. H=fz(x, x[2 + 3], y + x[y]) + 5.6; è Sbagliato solo il terzo elemento perché non ha senso mettere un variabile double come contatore di un vettore di numeri interi. il terzo elemento è sbagliato perché non posso far passare una somma ad un riferimento ( un riferimento non può essere condotto ad una somma). un vettore non può avere un indice double.

Quesito 2 (punteggio 2) Descrivere la funzione del gestore dei file di un sistema operativo.

Quesito 3 (punteggio 2) Descrivere la funzione del modem.

Quesito 4 (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 y) { *x = y + *x; return *x + 1; }

int G(int* y, int x) { *y = x + F(y, x); return *y + x; }

int F(int& x, int y) { x = y + x; return x + 1; }

int G(int& y, int x) { y = x + F(y, x); return y + x; }

int main() { int x, y; x = 1; y = 2; y = G(&x, x);

return 0; }

int main() { int x, y; x = 1; y = 2; y = G(x, x);

return 0; }

int main () x y _ _ 1 _ int G () 1 2 &y x int F () 1 2 x main 1 &x y 1 2 x main 1 x main 1 1 2 x main 1 x main 1 2 2 x main 1 return 3 4 2 x main 1 4 2 return 5 4 5 return 0

Quesito 5 (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 NULL 2000 222 BBBBBB 28-10-2009 5000 111 CCCCCC 30-12-2007 2000 222 CCCCCC 28-10-2009 2000

Scrivere la tabella con il risultato della seguente query scrivendo inoltre le tabelle intermedie che si ottengono dalle sottoquery e dalle operazioni di prodotto cartesiano, selezione e proiezione: SELECT COUNT(*) AS C, SUM(B.D) AS S

IV.b. eseguire la funzione movesum applicata al vettore x e a valore contenuto nella variabile k inserendo il risultato nel vettore y e nella variabile h.

#include using namespace std; int movesum(int a[100], int b[100], int c) { int i, j, k, z; int somma; for (i = 0; i < 100; i++) { somma = 0; for (j = i - c; j < i + c + 1; j++) { if (j >= 0 && j <= 99) { somma = somma + a[j]; } } b[i] = somma; } int r = 0; for (i = 0; i < 100; i++) { if (b[i] > a[0]) { r = 1; }

} return r; } int main() { int x[100]; int y[100]; int h, k; int i; for (i = 0; i < 100; i++) { cin >>^ x[i]; } do { do { cin >> k; } while (k < 0); h = movesum(x, y, k);

} while (h != 1);

for (i = 0; i < 100; i++) { cout << endl << y[i]; } system("PAUSE"); return 0; }

Esercizio 2 (4 punti) Scrivere un algoritmo codificato in linguaggio C/ C++ che definisce un vettore di nome a contenente 100 int. Legge da standard input una sequenza di numeri interi e inserisce nel vettore a solo i numeri minori di 0. L’operazione deve terminare appena vengono inseriti 100 valori nel vettore a. #include using namespace std; do { cin >> n; if (n < 0) { a[i] = n; i++; } } while (i < 100);

Esercizio 3 (5 punti) Il sistema informatico dell’università utilizza un database per gestire il risultato dei test di ingresso nelle varie discipline. Nel database sono presenti le seguenti tabelle: Discipline (ID, Descrizione, Minimo) Esiti(CF, IDA, Data, Punti)

dove nella relazione Discipline l’attributo ID è una chiave. Nella relazione Esiti gli attributi CF,IDA e Data formano una chiave e l'attributo IDA è chiave esterna per la relazione Discipline. Ogni tupla della relazione Discipline memorizza il punteggio minimo (Minimo) necessario per il superamento del test nella disciplina specificata dall’attributo ID. Ogni tupla della relazione Esiti memorizza i punti (Punti) conseguiti nella disciplina (IDA) dal candidato (CF) nel test svolto nella data indicata dall’attributo Data. L’attributo data identifica il test che è composto da domande in varie discipline. Il test può essere sostenuto un numero arbitrario di volte anche se in qualche disciplina è stato raggiunto il punteggio minimo e, per ogni disciplina a cui il candidato ha partecipato, viene memorizzato il punteggio conseguito. Scrivere l'istruzione SQL che:

  1. aumenta di uno il valore dell’attributo Punti di tutte le tuple della relazione Esiti in cui il valore dell’attributo IDA è uguale a ’MAT’;
  2. per ogni candidato, visualizza il (CF), il numero di test svolti dal candidato e il numero di discipline a cui ha partecipato;
  3. traduce la seguente espressione dell’algebra relazionale: operazione di prodotto cartesiano tra la relazione Discipline e la relazione ottenuta da un’operazione di selezione applicata alla relazione Esiti con predicato di selezione Punti<>3.
  4. UPDATE Esiti SET Punti = Punti + 1 WHERE IDA = ‘MAT’
  5. SELECT CF , COUNT (DISTINCT Data ) as Esami sostenuti , COUNT DISTINCT (IDA) as numerodiscipline FROM Esiti GROUP BY CF
  6. SELECT* FROM Discipline , ( SELECT* FROM Esiti WHERE punti <> 3 ) A