• Non ci sono risultati.

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 4 febbraio 2015

N/A
N/A
Protected

Academic year: 2021

Condividi "Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 4 febbraio 2015"

Copied!
1
0
0

Testo completo

(1)

Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I

Prova scritta del 4 febbraio 2015

Esercizio 1 (14 punti)

Un file ASCII contiene la registrazione degli arrivi di una corsa ciclistica in tre tappe. Ogni riga riporta i tempi di ciascun concorrente nelle tre tappe, nel formato che si evince dal seguente esempio:

27 M 2h 12m 5s 1h 54m 15s 0h 56m 44s 341 F 2h 7m 52s 2h 8m 5s 1h 3m 48s 5 M 1h 45m 6s 2h 0m 30s 1h 4m 25s 12 M 2h 18m 23s 2h 2m 20s 1h 15m 0s 71 J 2h 52m 0s 2h 26m 3s 1h 55m 0s 71 F 2h 16m 6s 1h 56m 57s 1h 19m 3s

Il primo numero è il pettorale del concorrente, il carattere M, F o J indica la categoria (classifica maschile, femminile o junior), i successivi tre gruppi di valori indicano i tempi in ciascuna delle tre tappe.

Si scriva una funzione in linguaggio C che riceva il nome di un file siffatto e un carattere ('M', 'F' o 'J') che indica la categoria che si deve considerare. La funzione deve restituire il numero del pettorale del concorrente che ha vinto la gara nella categoria specificata dal relativo parametro, cioè quello che ha ottenuto il minor tempo totale nelle tre tappe. Nel caso in cui non sia presente nessun concorrente nella categoria specificata, la funzione deve restituire -1.

Esercizio 2 (16 punti)

Un file ASCII contiene le regole di conversione di alcune unità di misura nelle misure equivalenti del sistema metrico decimale (s.m.d.). Un esempio di tale file è riportato nel seguito (la massima lunghezza del file è 100 righe):

chilometri = miglia_nautiche * 1.852 centimetri = pollici * 2.54

metri = piedi * 0.3048 metri = iarde * 0.9144

litri = galloni_inglesi * 4.546 litri = galloni_americani * 3.785

Un secondo file contiene una serie di grandezze, una per riga, con le relative unità di misura. Per esempio:

12 chilometri

45 galloni_americani 6.3 piedi

8123 metri 7.9 iarde 9 palmi

12 centimetri

Si scriva un programma in linguaggio C che riceva sulla riga di comando i nomi di tre file: il primo sia il nome del file contenente le regole di conversione nel formato sopra descritto, il secondo il nome del file contenente le grandezze come nell’esempio precedente e il terzo il nome del file di uscita che il programma deve generare.

Il programma deve scrivere nel file di uscita le grandezze nel s.m.d. applicando, per le grandezze non appartenenti al s.m.d., le regole di conversione lette dal file. Se un’unità di misura non compare nel file di conversione a destra dell’uguale, nel file di uscita va riportata invariata.

Relativamente all’esempio di cui sopra, il file di uscita dovrà contenere i seguenti valori:

12 chilometri 170.325 litri 1.92024 metri 8123 metri 7.22376 metri 9 palmi

12 centimetri

Riferimenti

Documenti correlati

Si scriva una funzione in linguaggio C che riceva come argomenti un vettore di stringhe, contenenti ciascuna il nome di un file del tipo sopra descritto, e un

Si scriva una funzione che riceva come argomenti il nome del file di equivalenze sopra descritto, il nome di un file di grandezze (con i punti interrogativi) e il nome di un file

Si scriva una funzione in linguaggio C che riceva come argomenti il puntatore a un file di testo nel formato sopra descritto (il file è quindi già stato aperto dalla funzione

Al termine dell’esecuzione delle operazioni specificate nel file di ingresso il programma dovrà stampare i valori contenuti in tutte e sole le celle di memoria che

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di due file come quelli sopra descritti e stampi il numero delle repliche

Poiché gli identificatori (numeri) delle tessere sono univoci e nella griglia è presente una sola posizione vuota, ogni mossa può semplicemente essere indicata

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

Successivamente, per ogni cifra del tentativo non ancora utilizzata si cerca lo stesso valore tra le cifre non ancora utilizzate del numero segreto e, se lo si trova,