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 13/11/2009 Cognome ________________________________ Matricola _______________________ Nome ________________________________ Firma _______________________ Istruzioni • Non separate questi fogli. Scrivete la soluzione solo 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 m atita (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 degli ese rcizi, voti parziali e voto finale: Esercizio 1 ( 2 punti ) __________ Esercizio 2 ( 2 punti ) __________ Esercizio 3 ( 2 punti ) __________ Esercizio 3 ( 4 punti ) __________ Esercizio 4 ( 4 punti ) __________ Totale: ( 14 punti ) _________ 2 Esercizio 1 - Algebra di Boole, Aritmetic a Binaria, Codifica delle Informazioni (2 punti) Si costruisca la tabella di verità della seguente espressione booleana. ( A and ( (not B) or C ) ) or ( A and C and B ) 3 Esercizio 2 – Algebra relazionale (2 punti) Il seguente schema descrive g li esami di una università italiana. Le chiavi sono sottolineate. Studente( Matr ,Nome,Cognome,DataNascita,Città,Telefono,email) Esame( CodCorso ,Matr ,Data,Voto,MatrDocente) Docente( MatrDocente ,NomeDocente,CognomeDocente,DataNascit a,Città,Telefono,email) Corso( CodCorso ,Titolo,Cfu,Semestre) 1) Estrarre Nome, cognome e matricola degli studenti che hanno preso 30 con un professore con il loro stesso cognome. 2) Estrarre matricola, data e voto relativamente al secondo esame sostenuto da ogn i studente che non abbia mai preso 30. 4 Esercizio 3 - Programmazione C (2 punti) Si scriva un programma C per la gestione di una scuola di ballo. Ogni classe consiste di un insieme di persone e di due istruttori. Ogni persona ha un nome, un cognome, un sess o e un’età. a) Si definiscano le strutture dati necessarie allo sviluppo del programma (strutture, enumerazioni, array, ecc.). b) Si implementi una funzione che presa in ingresso una struttura di tipo “classe” restituisce l’età media degli studenti di sesso ma schile l’età m edia degli studenti. 5 Esercizio 4 – Caccia al tesoro (4 punti) Definito il tipo punto typedef struct {int x; int y; int NMonete; } punto; scrivere una funzione che riceve in input una matrice M di p unti di dimensione N*N e due coordinate x, y. La funzione deve navigare la matrice, partendo dal punto indicato dalle coordinate x e y e spostarsi ogni volta nelle coordinate indicate dal punto raggiunto. Nello spostarsi la funzione deve sommare tutti i va lori di NMonete incontrati. La funzione procede allo stesso modo finché o non torna su un punto già toccato o trova coordinate non valide. A quel punto restituisce la somma delle monete raccolte. 6 Esercizio 5 - Programmazione C (4 punti) Implementare una fu nzione C per il lancio di dadi. (1) La funzione prenda in ingresso il numero di facce del dado, e il numero di lanci che si vuole effettuare. La funzione simula i lanci del dado e stampa a video quante volte è uscita ciascuna faccia del dado. Si faccia inolt re in modo che la stampa risulti ordinata per numero di volte che è uscita una faccia in senso crescente. Ad esempio, dopo 5 lanci con un dado a 6 facce in cui sono usciti i numeri (1, 1, 5, 4, 6), si stampi a video: La faccia 4 è uscita 1 volta La faccia 5 è uscita 1 volta La faccia 6 è uscita 1 volte La faccia 1 è uscita 2 volte Attenzione! Devono essere riportati sia il numero della faccia che il numero di volte che è uscita. Si supponga esista e dunque si faccia uso della funzione int rand(int inf, i nt sup); che restituisce un numero intero casuale compreso tra inf e sup. 7