Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I
Prova scritta del 21 febbraio 2017
Esercizio 1 (15 punti)
Un ufficio di collocamento ha memorizzato in un file i profili professionali richiesti dalle aziende della zona. Ogni azienda, identificata da un codice (una sola parola), ha indicato uno o più profili (massimo 20 per ogni azienda). I nomi dei profili possono contenere spazi e sono separati da virgole. L’elenco dei profili è terminato da un punto. Il formato del file può essere dedotto dall’esempio seguente. Il numero massimo di profili diversi presenti nel file è 500. Non è invece noto il numero di aziende.
A fini statistici, si vuole calcolare da quante aziende è richiesto ciascun profilo. Per fare questo, si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file come sopra descritto e stampi l’elenco dei profili indicando per ciascuno quante richieste sono presenti nel file. L’ordine di stampa può essere qualsasi.
Utilizzando il file di esempio sopra riportato, il programma dovrà stampare quanto segue:
idraulico 1 perito chimico 1 ingegnere meccanico 2 programmatore java 2 ingegnere elettronico 3 programmatore C 1
Esercizio 2 (15 punti)
Una rete di sensori di temperatura registra i valori letti in dei file ASCII, uno per sensore. Il nome del file identifica in modo univoco il sensore. Per esempio, il file TNORD27.DAT contiene i dati del sensore TNORD27 nel formato riportato a lato. Si osservi che la prima riga del file contiene l’identificatore del sensore (lo stesso presente nel nome del file) e il numero di secondi che intercorre tra una lettura e l’altra (infatti alcuni sensori registrano la temperatura più frequentemente di altri).
Un secondo file contiene l’elenco dei sensori (e quindi dei file) disponibili.
Per esempio:
TNORD27 TSUD4 TNORD12
Si vuole calcolare il minimo tra le medie delle ultime temperature misurate da ciascun sensore in un determinato intervallo di tempo.
Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file contenente l’elenco dei sensori e un intero che rappresenta il numero N di ore sulle quali effettuare il calcolo. Il programma deve calcolare dai dati contenuti in ciascun file le medie delle temperature registrate nelle prime N ore (i cui valori sono memorizzati nel file a partire dall’inizio) e stampare sul monitor il minimo tra i valori così calcolati.
Si assuma che tutti i file dei sensori contengano un numero sufficiente di dati da permettere il calcolo della media dei valori per l’intero intervallo richiesto.
MET07: idraulico, perito chimico, ingegnere meccanico.
WEB223: programmatore java.
AUTO3: ingegnere elettronico.
AUTO4: ingegnere meccanico, ingegnere elettronico.
RETI122: programmatore C, programmatore java, ingegnere elettronico.
TNORD27 30 3.2
4.1 8.6 11.0 11.7 9.8