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 Cognome ________________________________ Matricola _______________________ Nome ________________________________ Firma _______________________ Istruzioni • Non separate questi fogli. Scrive te la soluzione solo sui fogli d istribuiti , 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 no n 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 final e: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 4 punti ) __________ Esercizio 3 ( 8 punti ) __________ Esercizio 4 ( 12 punti ) __________ Esercizio 5 ( 6 punti ) __________ Totale: _________ 2 Esercizio 1 (2 punti) (a) Si costruisca la tabella di verità della seguente espressione booleana, bada ndo all a precedenz a tra gli operatori logici. (1 punto). not ( ( A and not B ) or ( not B and not C ) or ( C and A ) ) (b) Si stabilisca il minimo numero di bit sufficiente a rappresentare in complemento a due i numeri A = 126dec e B = –8dec , 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). 3 Esercizio 2 ( 4 punti ) Si consideri il seguente schema di base di dati, che descrive le vendite di bevande effettuate da una catena di punti vendita costituiti da soli distributori automatici. BEVANDA (Codice , nome, prezzo, qtaCL) VENDITA (CodPuntoVendita , NumMacchina , CodBevanda , Data , Ora , qtaZucchero) DISTRIBUTORE (CodicePuntoVendita , NumeroMacchina , capienzaCL, dataUltimoRifornimento, oraUltimoRifornimento) Dove le varie bevande possono essere “caffè”, “caffè lungo”, “cioccolata”, “tè al limone”, etc e qtaML esprime, in milli litri, la quantità di bevanda. L’attributo qtaZucchero specifica, su una scala da 0 a 5 la quantità di zucchero scelta dal cliente durante l’acquisto (0=senza zucchero, 5=dolcissimo) . Infine, NumeroMacchina identifica progress ivamente i diversi distributori di uno stesso punto vendita mentre capienza ML esprime, in mill ilitri, la capienza totale di bevande del distributore. Scrivere in SQL l’interrogazione che estrae il distributore che con più vendite nel 2015. 4 Si consideri il seguente schema di base di dati, che descrive le vendite di bevande effettuate da una catena di punti vendita costituiti da soli distributori automatici. BEVANDA (Codice , nome, prezzo, qtaCL) VENDITA (CodPuntoVendita , NumMacchina , CodBevanda , Data , Ora , qtaZucchero) DISTRIBUTORE (CodicePuntoVendita , NumeroMacchina , capienzaCL, dataUltimoRifornimento, oraUltimoRifornimento) Dove le varie bevande possono essere “caffè”, “caffè lungo”, “cioccolata”, “tè al limone”, etc e qta ML esprime, in milli litri, la quantità di bevanda. L’attributo qtaZucchero specifica, su una scala da 0 a 5 la quantità di zucchero scelta dal cliente durante l’acquisto (0=senza zucchero, 5=dolcissimo) . Infine, NumeroMacchina identifica progressivamente i diversi distributori di uno stesso punto vendita mentre capienza ML esprime, in mill ilitri, la capienza totale di bevande del distributore. Scrivere in SQL l’interrogazione che estrae le macchinette in cui nessuno ha mai preso nel 2015 bevande senza zucch ero. 5 Esercizio 3 ( 8 punti ) Una riga di una matrice si definisce equib ilatera se contiene almeno un elemento (interno alla riga, non su uno dei due estremi) che è uguale sia alla somma degli elementi che lo precedono sia alla somma degli elementi che l o seguono . Si scriva una funzione f che riceve in input una matrice M di dimensione NxN (con N costante predefinita) e restituisce il numero di righe equibilatere di M . int f(int M[][N]) 6 7 Esercizio 4 ( 12 punti ) Si considerino le seguenti definizio ni di tipi di dati typedef struct n { int info; struct n *next; } nodo; typedef nodo * Lista; typedef struct li { Lista lis; struct li *next; } lisNodo; typedef lisNodo * ListaDiListe; Si codifichi in C una funzione ListaDiListe spezza( Lista L, int k) che riceve come parametri una lista di interi L e un intero k, e alloca e restituisce una lista di liste contenenti gli stessi valori di L, distribuiti (ordinatamente) nel numero minimo di sottoliste che si ottengono “spezzando” L in modo tale che la s omma degli elementi di ogni sottolista sia