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

Politecnico di Milano Dipartimento di Elettronica e Informazione 1 Informatica A – a.a. 0 7/0 8 – 16 /11 /20 07 Cognome _______________________________ Matricola ______________________ Nome ________________________________ Firma ______________________ Istruzioni  Non separate questi fogli. 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 uzione.  È possibi le scrivere a matita (e non occorre ricalcare al momento della consegna!).  È vietato utilizzare calcolatrici , telefoni o pc . Chi tenti di farlo ved rà annullata la sua prova.  È ammessa la consulta zion e di libri e appunti , purché con pacata discrezione e sen za 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 indic ativo degli esercizi, voti parziali e voto finale: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 3 punti ) __________ Esercizio 3 ( 5 punti ) __________ Esercizio 4 ( 4 punti ) __________ Totale: ( 14 punti ) __________ 2 Esercizio 1 - Algebra di Boole, Aritmetica Binaria , Codifica delle Informazioni (2 punti) (a) Si costruisca la tabella di verità della seguent e espressione booleana in quattro variabili , badando all a precedenz a tra gli operatori logici . Eventualmente si aggiungano le parentesi (1 punto). ( A or (not B) or C ) and ( (not A ) and C or B ) A B C RISULTATO FALSO FALSO FALSO FALSO FALSO FALSO VERO VERO FALSO VERO FALSO FALSO FALSO VERO VERO VERO VERO FALSO FALSO FALSO VERO FALSO VERO FALSO VERO VERO FALSO VERO VERO VERO VERO VERO (b) Si stabilisca il mi nimo numero di bit suff iciente a rappresentare in complemento a due i numeri A  115 dec e B  –37 dec , li si converta , se ne calcoli no la somma (A+B) e la differenza (A –B) in complemento a due e si indic hi se si genera riporto sulla colonna dei bit più signif icativi e se si verif ica overflow (1 punto). 115 dec =01110011 bin -37 dec =11011011 bin A+B=01001110 bin A-B dà overflow 3 Esercizio 2 - Puntatori - (3 punti ) Date le seguenti dichiarazioni e assegnamenti: int main(){ in t x, y, z; int *p1, *p2; int **pp1, **pp2; x=4; y=2*x; p1=&y; z=*p1+3; printf(“%d”,z); p2=&z; pp1=&p1; *p2=3; printf(“%d”,*p2); pp2=pp1; **pp2=*p1; printf(“%d”,**pp2); printf(“%d”,x); printf(“%d”,y); printf(“%d”,z); } Scrivere i valori stampati dalle sei chiamate alla funzione printf nel codice sovrastante. Output prima printf: ______ 11 _________________________________ Output seconda printf: _____ 3__________________________________ Output terza printf: ________ 8______________________________ Output quarta printf: ______ 4_________________________________ Output quinta printf: _______ 8________________________________ Output sesta printf: _________ 3______________________________ 4 Esercizio 3 - Linguaggio C (5 punti) Dato un array quo tX di 365 valori interi, che rappresentano le quotazioni nell’anno solare corrente del titolo azionario X, si vuole realizzare un programma i n linguaggio C in grado di: a) Inizializzare il contenuto dell’array quotX con valori letti da standard input che devo no essere compresi tra 1 e 100 (estremi inclusi), scartando eventuali valori fuori dall’intervallo (1 punto). b) Salvare in una opportuna/e variabile di tipo struttura (di cui si chiede anche la def inizione d el tipo) la quotazione massima e il primo giorno (espresso come posizione nell’array) in cui tale quotazione è stata memorizzata ( 2 punto) c) Determinare e stampare a video il numero di periodi dell’anno in cui il titolo si è mantenuto costante (ossia, quante volte la medesima quotazione si è presentata in gi orni successivi) (2 punti). o Ad esempio, se le quotazioni fossero 10 10 15 14 12 12 12 8 12 12 ….. il titolo avrebbe avuto 3 periodi di quotazione costante. #include #def ine MAX 10 typedef struct { int massimo; int giorno; } quotMax; int main () { int quot[MAX] , cont =0 ,i,inZona; quotMax qm; qm.massimo = -1; qm.giorno = -1; do { printf("Inserire l'elemento numero %d: ", cont); scanf("%d", "[cont]); if (quot[cont] >=0 && quot[cont]