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.  Nome, Cognome, Matr ((S TUDENTE   ( voto=30 E SAME ))   MatrDocente=MatrDocente  Cognome=CognomeDocente D OCENTE ) Ipotizziamo per semplicità che non sia possibile registrare due esami nello stesso giorno, sic ché il primo esame è unico e univocamente definito M AI T RENTA = S TUDENTE   (  Matr E SAME –  Matr  voto=30 E SAME ) ESAME1=ESAME E SAME N ON P RIMO = E SAME   ESAME.Data>ESAME1.Data ESAME. Matr=ESAME1.Matr E SAME 1 ESAME NON PRIMO 1= ESAME NON PRIMO MAITRE NTA  ( ESAME NON PRIMO – ( ESAME NON PRIMO  ESAMENONPRIMO. Data > ESAMENONPRIMO1. Data  ESAMENONPRIMO. Matr= ESAMENONPRIMO1. Matr ESAME NON PRIMO 1 ) ) 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 sesso 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 maschile l’età m edia degli studenti. #define N 100 typedef enum {m, f} sesso typedef struct { char nome[N], cognome[N]; sesso s; int eta; } persona; typedef struct { persona studenti[N]; persona istruttori[ 2]; int nIscritti; } classe float f(classe c) { float media=0.0; int i=0;tot=0, quanti=0; for(i=0;i