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

1 Informatica A - 12/11/20 10 Cognome ________________________________ Matricola _______________________ Nome ________________________________ Firma _______________________ Istruzioni • Non separate questi fogli. Scrivete la soluzione sol o sui fogli distribuiti , utilizzando il retro delle pagine in caso di necessità. Cancellate le parti di brutta (o ripudiate) con un tratto di penna . • Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione. • È possibile scrivere a matita (e non occorre ricalcare al momento della consegna!). • È vietato utilizzare calcolatrici, telefoni o pc . Chi tenti di farlo vedrà annullata la sua prova. • È ammessa la consultazione 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 30min Valore indicativo degl i esercizi, voti parziali e voto finale: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 4 punti ) __________ Esercizio 3 ( 4 punti ) __________ Esercizio 4 ( 4 punti ) __________ Totale: ( 14 punti ) _________ 2 3 Esercizio 1 (2 punti) Si costruisca la tabella di verità della s eguente espressione booleana. ( (not A) or ( B and C ) ) and ( A and (C or B) ) Si stabilisca il minimo numero di bit sufficiente a rappresentare in complemento a due i numeri A = 16 dec e B = –12 7dec , li si converta , se n e 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 . 4 Esercizio 2 (4 punti) Si considerino le seguenti dichiarazioni di t ipi e variabili, che definiscono le strutture dati per rappresentare dei rilevamenti meteorologici effettuati per gli 8000 comuni italian i nell’intero anno 2010. typedef struct { int giorno; /* tra 1 e 31 */ int mese; /* tra 1 e 12 */ float livelloP ioggia ; /* pioggia caduta in quel giorno */ } rilievo Giornaliero ; typedef struct { char comune[ 10 0]; /*nome del comune*/ rilievo Giornaliero rilievi[365]; /* 365 rilievi , i rilievi hanno cadenza giornaliera */ int n umero Rilievi; /* numero di rilievi e ffettivamente registrati in rilievi fino a oggi*/ } rilieviComune; /* dati monitorati nell’anno per un singolo comune */ typedef rilieviComune rilieviGlobali[ 800 0]; /* dati monitorati nell’anno per tutti gli 8000 comuni italiani */ Si definisca una funzio ne di prototipo int f(rilieviGlobali rg, float soglia); che restituisce il massimo numero di giorni in cui in uno stesso comune il livello della pioggia ha superato la soglia. Si consiglia di spezzare la soluzione del problema in più funzioni. 5 6 Eserc izio 3 (4 punti) Si scriv a una funzione che riceve in input due array di dimensione N (con N costante predefinita). void f( int a[], int b[]) Si definisce equibilatero un elemento di un vettore preceduto da tanti numeri pari più grandi quanti sono gli eleme nti dispari più piccoli che lo seguono. La funzione f deve copiare tutti gli element i equibilateri di a in b in posizioni contigue partendo dalla prima posizione di b senza lasciare buchi . Le posizioni finali di b che restano libere devono essere riempite di zeri. void f(int a[], int b[]) { int i,j =0 ; for(i=0;i