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

Full exam

Informatica A – a.a. 0 9/10 – Terzo Appello – 10 /09/20 10 Cognome ________________________________ Matricola _______________________ Nome ________________________________ _______ Istruzioni • Non separate questi fogli. Scr ive 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 uzione. • È 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: 2h:15m Valore degli eser cizi, voti parziali e voto finale: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 4 punti ) __________ Esercizio 3 ( 7 punti ) __________ Esercizio 4 ( 9 punti ) __________ Esercizio 5 ( 8 punti ) __________ Totale: ( 30 punti ) _________ Esercizio 1 - Algebra di Boole, Aritmetica Bina ria, Codifica delle Informazioni (2 punti) (a) Si costruisca la tabella di verità della seguente espressione booleana, badando alla precedenza tra gli operatori logici. Eventualmente si aggiungano le parentesi (1 punto). ( ( (not A ) and ( not B ) ) or ( not ( not C ) ) ) and ( A and C and B ) (b) Si stabilisca il minimo numero di bit sufficiente a rappresentare in complemento a due i numeri A = 125dec e B = –48 dec , li si converta , se ne calcolino 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). Esercizio 2 ( 4 punti ) La seguente base di dati descrive i dati di un concorso a premi . La tabella PUNTI memo rizza giorno per giorni i punti raccolti da ogni concorrente. CLIENTI( CODICE CLIENTE , NOME , COGNOME , INDIRIZZO , CITTA ’, NAZIONALITA ’) PUNTI (CODICE CLIENTE , DATA , PUNTI ) PRE MIO (CODICE PREMIO , PUNTI NECESSARI ) 1. Estrarre la somma dei punti accumulati da tutti i c lienti di Milano . 2. Estrarre il premio che richiede più punti . Esercizio 3 ( 7 punti ) Si consideri il seguente programma C, completando la definizione di MATR con la propria matricola . #define MATR "...... " int f( char * pcA , char * pcB , int * num ) { int valore=0; *n um = *n um + 1; if ( pcA >= pcB ) return *num ; else valore= f( pcA +1, pcB -1, n um ); if ( * pcA >= * pcB ) { pcA = pcB ; *n um = *n um + 10 ; } printf("%c", * pcA ); return *num ; } int main() { char mat ricola [7] = MATR; int cont = 0 , val=0 ; printf("%s - ", mat ricola ); val= f( mat ricola , mat ricola +5, &cont ); printf(" - %d - %d ", cont , val ); return 0; } Dire cosa stampa il programma. Esercizio 4 ( 9 punti ) Si consideri la seguente definizione di una lista : typedef struct EL { int dato; struct EL * next ; } nodo; typed ef nodo * lista; Implementare una funzione che, ricevut e in ingresso due list e di interi , restituisce la lista che contiene tutti gli elementi presenti in una delle due liste ma non in entrambe . Per semplicità si faccia l’ipotesi che le due liste non cont engono duplicati. Si consiglia di implementare funzioni di supporto. Esercizio 5 ( 8 punti ) Si consideri la seguente definizione di un albero binario: typedef struct EL { int dato; struct EL * left; struct EL * right; } node; typedef node * tree; Implementare una funzione che, ricevut i in ingresso due alber i binari TA e TB , restituisce 1 se la somma di tutti i nodi foglia di TA è uguale al valore di uno dei nodi di TB oppure se la somma di tutti i nodi fogl ia di TB è uguale al valore di uno dei nodi di TA.