logo
  • userLoginStatus

Welcome

Our website is made possible by displaying online advertisements to our visitors.
Please disable your ad blocker to continue.

Current View

Mathematical Engineering - Informatica A

First partial exam

Informatica A – a.a. 0 8/0 9 – Primo Appello – 18 /2/200 9 Cognome ________________________________ Matricola _______________________ Nome ________________________________ Firma _______________________ Istruzioni • Non separate questi fogl i. Scrive te la soluzione solo sui fogli distribuiti , utilizzando il retro delle pagine in caso di necessità . Cancella te le parti di brutta (o ripudiate) con un tratto di penna . • Ogni parte non cancellata a penna sarà considerata parte integrante della sol uz ione. • È possibile scrivere a matita (e non ricalcare al momento della consegna!). • È vietato utilizzare calcolatrici o telefoni . Chi tenti di farlo ved rà annullata la sua prova. • È ammessa la consulta zion e di libri e appunti , purché con pacata discrezione e senza disturbare. • Qualsiasi tentativo di comunicare con altri studenti comporta l’espulsione dall’aula. • È possibile ritirarsi senza penalità . • Non è possibile lasciare l’aula conservando il tema della prova in corso. • Tempo a disposizione: 2 h 30 m Valore degli esercizi, voti parziali e voto finale: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 5 punti ) __________ Esercizio 3 ( 6 punti ) __________ Esercizio 4 ( 6 punti ) __________ Esercizio 5 ( 6 punti ) __________ Esercizio 6 ( 5 punti ) __________ Totale: ( 30 punti ) _________ 2 Esercizio 1 - Algebra di Boole, Aritmetica Binaria, Codifica delle Informazioni (2 punti) (a) Si costruisca la tabella di verità della seguente espressione booleana in quattro variabili , badando all a precedenz a tra gli operatori logici. Eventualmente si aggiungano le pare ntesi (1 punto). ( A or not ( B or C ) ) and ( ( A or ( not C ) ) and B ) (b) Si stabilisca il minimo numero di bit sufficiente a rappresentare in complemento a due i numeri A = 64 dec e B = –112 dec , li si converta , se ne cal colino la somma (A+B) e la differenza (A –B) in complemento a due e si indichi se si genera riporto sulla colonna dei bit più significativi e se si verifica overflow (1 punto). 3 Esercizio 2 ( 5 punti ) Il seguente schema rappresenta le informazioni riguardo alla gestione del personale: DIPENDENTE ( Matricola , Cognome , Nome , Bonus ) ASSENZA ( Matricola , Data ) 1. Scrivere in tutti e tre i linguaggi formali e in SQL l’interrogazione che estrae per ogni dipendente l’ultima assenza . 2. Scrivere in SQL l’int errogazione che estrae il dipendente con più assenze nel gennaio 2009. 4 5 Esercizio 3 ( 6 punti ) Si consideri la seguente definizione di lista concatenata semplice i cui nodi contengono un carattere. typedef struct N { char c; struct N * next; } Nodo; typedef Nodo * Lista; La funzione "accoda" inserisce in fondo alla lista passata un nuovo nodo che contiene il carattere passato, e restituisce la nuova lista. Lista accoda(Lista a, char c){ if (a==NULL){ a = (Lista)malloc(sizeof(Nodo)); a->c = c; a->next = NULL; } else a->next = accoda(a ->next, c); return a; } Cosiderato il programma: #define MATR “......” void f(Lista a, int n) { int i = a ->c - '0'; Lista b=a; for (; i>0; i -- ) a=a ->next; printf("%c ",a ->c); if (a ->c==b ->c || nnext == NULL) a->next=b; else g(a ->next,b); } void h(Lista a) { g(a,a); } int main() { Lista a=NULL; int i; char *s = MATR ; for (i=0; i