Esercizio 1. Definire una classe Razionale che consenta di rappresentare numeri razionali; la classe deve avere come dati due interi, numeratore e denominatore, e fornire i seguenti metodi: - costruttore senza parametri (per default, impostare il numeratore a 0 e il denominatore a 1); - costruttore ad un parametro, nel quale si specifica solo il numeratore (denominatore a 1); - costruttore a due parametri; - metodi set e get per numeratore e denominatore; - un metodo double converti() che restituisca il double ottenuto dalla divisione di numeratore e denominatore; - un metodo void inverti() che inverta numeratore e denominatore (da 3/2 si passa a 2/3); - un metodo void stampa() che stampi il razionale sotto forma di frazione; - un metodo void riduci() che riduca il razionale ai minimi termini, ossia semplifica numeratore e denominatore per il loro MCD; - un metodo Razionale moltiplica(const Razionale& r) che effettui la moltiplicazione; - un metodo Razionale somma(const Razionale& r) che effettui la somma. -------------------------------------------------------------- Esercizio 2. Scrivere la definizione di una classe Orario, i cui dati siano tre interi, ore, minuti e secondi. La classe deve contenere almeno un costruttore senza parametri, e un costruttore che riceve tre interi, e deve consentire le seguenti operazioni: - impostare l'orario; - stampare l'orario; - incrementare l'orario di un secondo; - incrementare l'orario di un minuto; - incrementare l'orario di un'ora; - confrontare due orari per vedere se rappresentano lo stesso istante di tempo. -------------------------------------------------------------- Esercizio 3. Scrivere la definizione di una classe Termometro per rappresentare la temperatura rilevata giornalmente (attuale, minima e massima), sotto forma di numero intero. In relazione alla temperatura, vogliamo poter eseguire le seguenti operazioni: - assegnare un valore alla temperatura attuale (set); - conoscere la temperatura massima (get); - conoscere la temperatura minima (get); - conoscere la temperatura attuale (get); - stampare le temperature massima minima e attuale. Si noti che, nel momento in cui si cambia la temperatura attuale, e' possibile che debbano essere modificate anche la minima o la massima; percio' prevedere un metodo che consenta questo aggiornamento.