Prova scritta del 1 luglio 2019 di Fondamenti di Programmazione / Fondamenti di Informatica I Per studenti di Ing. Elettronica e Ing. Gestionale immatricolati negli anni accademici 2016-17 e precedenti DURATA DELLA PROVA: 2 ore
A pena di annullamento immediato della prova:
1) Non è possibile consultare libri o appunti (in qualunque forma) né utilizzare calcolatrici, telefoni cellulari, ecc.
2) Non è consentito comunicare (con qualunque mezzo) 3) Non è consentito uscire dall’aula
Lo studente è tenuto a scrivere, correggere, compilare ed eseguire su computer (a casa o in laboratorio) gli esercizi di
programmazione prima della prova orale. Alla prova orale lo studente deve portare una memory pen USB contenente i sorgenti dei programmi corretti e le stampe dei relativi file.
Esercizio 1 (17 punti)
Un file contiene i tragitti e gli orari dei treni che partono da una certa località (Valpisello di sotto, nell’esempio). Il formato del file prevede una riga per ogni stazione in cui il treno si ferma e può essere dedotto dal seguente esempio:
Treno FX27728, 4 fermate:
Valpisello di sotto, 8:10 Valpisello di sopra, 8:27 Arancini sottocolle, 9:45 Rangone, 10:27
Treno LZ12, 2 fermate:
Valpisello di sotto, 15:33 Arancini sottocolle, 16:40
Si scriva un programma che riceva sulla riga di comando il nome di un file siffatto e una destinazione e stampi i codici di tutti i treni che raggiungono tale destinazione in ordine di tempo di percorrenza (stampato anch’esso, in minuti).
Nell’esempio, per la destinazione Arancini sottocolle, il programma dovrà stampare:
LZ12 67 minuti FX27728 95 minuti
Se la destinazione cercata non fosse presente nel file il programma deve segnalare un errore
Esercizio 1 (13 punti)
Un file contiene la descrizione delle stanze di alcuni appartamenti, nel seguente formato (i nomi delle stanze sono sempre scritti su una sola parola):
1: ingresso 2x2, cucina 4.5x3, camera 3x4, bagno 2x1.5, soggiorno 3x3.
2: salone 4x4.3, camera 4x4, camera 3.7x3.3, bagno 2x2, bagno 2.5x2.4, cucina 4x3.5.
Il programma deve stampare il numero identificativo (quello all’inizio della riga) dell’appartamento più spazioso. In caso di appartamenti di uguali dimensioni il programma deve stampare soltanto il primo trovato.