• Non ci sono risultati.

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

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 2 febbraio 2016"

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 2 febbraio 2016

Esercizio 1 (16 punti)

Un file di testo contiene le equivalenze tra unità di misura, nel formato che si evince dall’esempio a lato.

Le unità di misura sono sempre formate da una sola parola, il secondo elemento di ogni riga è sempre la freccia rappresentata con i caratteri “-->” e il quarto elemento è sempre un asterisco, ad indicare l’operazione di moltiplicazione necessaria per la conversione. Il file contiene al massimo 100 regole di traduzione.

Un secondo file, di lunghezza ignota, contiene delle grandezze che devono essere convertite, nel formato deducibile dall’esempio del riquadro a lato.

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 di uscita. La funzione deve copiare le righe del file di ingresso in quello di uscita sostituendo ai punti interrogativi i valori corretti.

Si assuma che per tutte le coppie di unità di misura utilizzate in ogni riga del file delle grandezze sia presente una regola di conversione nel file delle equivalenze (eventualmente da utilizzare invertita, come nei casi “9782 cmq

= ? mq” e “7 mm = ? m” dell’esempio). Quindi è sempre sufficiente cercare ed applicare una e una sola regola di conversione.

Relativamente agli esempi sopra riportati, al termine dell’esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.

NOTA: è accettabile che il formato numerico dei dati di ingresso cambi nel file di uscita. Per esempio, “9782 cmq

= ? mq” può anche diventare “9.782e3 cmq = 0.9782 mq” o “7 km = ? m” può diventare “7.0 km = 7000.0 m”, ecc.

Esercizio 2 (14 punti)

Due file di testo contengono due elenchi di nomi di lunghezza ignota. Ogni riga di ciascun file contiene uno e un solo nome, che può essere composto da più parole separate da spazi. I nomi in entrambi i file sono ordinati in ordine alfabetico e il formato in cui sono scritti

(spaziature, ecc.) è identico.

Si scriva un programma che riceva sulla riga di comando i nomi dei due file e stampi sul monitor i nomi che compaiono in entrambi i file.

Per esempio, se il contenuto dei due file è quello riportato nei riquadri a lato, il programma deve stampare il risultato che segue:

# nomi_in_entrambi_i_file autori_1.dat autori_2.dat Alessandro Baricco

Andy Weir Dan Brown

Herbert George Wells Matilde Asensi

m --> cm * 100 m --> mm * 1000 km --> m * 1000 mq --> cmq * 10000

7 km = ? m 123.56 m = ? cm 9782 cmq = ? mq 7 mm = ? m

7 km = 7000 m

123.56 m = 12356 cm 9782 cmq = 0.9782 mq 7 mm = 0.007 m

File autori_1.dat:

Alessandro Baricco Andrea Camilleri Andy Weir

Dan Brown

Herbert George Wells J. K. Rowling

Matilde Asensi

File autori_2.dat:

Alessandro Baricco Andy Weir

Dan Brown

Frank Schatzing Herbert George Wells Matilde Asensi

Umberto Eco

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 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

Si scriva un programma in linguaggio C che riceva sulla riga di comando il nome di un file di dizionario nel formato dell’esempio sopra riportato e il nome di un file

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,