Laboratorio di Calcolo
AA 2004/05
Prova individuale - terzo gruppo
Viene fornita una classe denominata convertitore che permette di
definire
oggetti caratterizzati da un numero double, il fattore di conversione,
che possiamo utilizzare per effettuare conversioni tra unita' di misura.
Sono disponibili 2 costruttori:
- in uno si fornisce direttamente il fattore
di conversione necessario per trasformare una quantita' espressa nella
prima
unita' di misura in una espressa nella seconda,
- nell'altro si fornisce il
valore di una quantita' di riferimento qualsiasi espresso sia
nella prima e nella seconda unita' di misura e il costruttore si calcola
il fattore di conversione.
E' poi disponibile il metodo converti che restituisce il valore nella
seconda
unita' di misura di una quantita' espressa nella prima unita' di misura.
0. create nel direttorio principale (/home/didxxx) il sottodirettorio
pind3_cognome. Spostatevici e
scaricate li' il file convertitore.h.
(punteggio 1)
1. Scrivete un programma main che utilizzi questa classe per costruire
un oggetto che potete chiamare Conv_s_h in grado di convertire
secondi in ore. Verificate che il programma compili e giri (anche se non
fara' nulla non deve dare errori!). Un'ora corrisponde a 3600 secondi.
(punteggio 2)
2. Utilizzate l'oggetto Conv_s_h per
stampare il valore in ore di un tempo espresso in secondi immesso
dall'utente.
Compilate, girate, controllate che il programma fornisca risultati
corretti.
(punteggio 2)
3. aggiungete alla classe un metodo che consenta di effettuare la
conversione
inversa (da ore a secondi): double converti_inv(double dato) e
provate ad usare anche questo dal programma principale per verificare
che
agendo sul tempo in ore ottenuto al punto 2 si riottenga quello in
secondi dal quale si era partiti.
(punteggio 2.5)
4. Come sapete non ha senso utilizzare valori numerici con un numero
troppo elevato di cifre significative.
Modificate la classe in modo tale che il metodo converti restituisca
sempre tempi misurati in ore con una sola cifra decimale dopo la
virgola.
Potete farlo in diversi modi
- aggiungendo alla classe un
metodo privato che, chiamato dal metodo
converti, abbia
il compito di trasformare il risultato in ore
in un risultato
con una sola cifra dopo la virgola.
- aggiungendo il suddetto
metodo non alla classe
convertitore
bensi' ad una classe derivata da essa e dedicata alle
conversioni con
un numero fisso di cifre decimali.
(punteggio 2.5)
NOTA: per ottenere un numero n di cifre dopo la virgola si moltiplica
il numero reale di partenza per 10 elevato alla n, lo si copia in un
numero
intero, che poi si ridivide per 10 elevato alla n.