



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Temi svolti di informatica generale
Tipologia: Prove d'esame
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




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
} 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: