Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ESERCIZI E PROGETTI DI PROGRAMMAZIONE E–43<br />
(Paragrafo 9.1) per elaborare un insieme <strong>di</strong> quiz, visualizzando il punteggio me<strong>di</strong>o e il quiz con<br />
il punteggio massimo, sia in lettere che in numeri.<br />
* <strong>Esercizi</strong>o P9.3. Progettate una classe Person: una persona è caratterizzata da un nome e un’altezza<br />
in centimetri. Usate la seconda realizzazione della classe DataSet (Paragrafo 9.4) per elaborare<br />
un insieme <strong>di</strong> oggetti <strong>di</strong> tipo Person, visualizzando l’altezza me<strong>di</strong>a delle persone e il nome della<br />
persona più alta.<br />
* <strong>Esercizi</strong>o P9.4. Mo<strong>di</strong>fi cate la prima realizzazione della classe DataSet (quella che elabora oggetti<br />
<strong>di</strong> tipo Measurable vista nel Paragrafo 9.1) in modo che calcoli anche l’elemento <strong>di</strong> misura<br />
minima.<br />
* <strong>Esercizi</strong>o P9.5. Mo<strong>di</strong>fi cate la seconda realizzazione della classe DataSet (quella che usa oggetti <strong>di</strong><br />
tipo Measurer vista nel Paragrafo 9.4) in modo che calcoli anche l’elemento <strong>di</strong> misura minima.<br />
* <strong>Esercizi</strong>o P9.6. Usando un <strong>di</strong>verso oggetto <strong>di</strong> tipo Measurer, elaborate un insieme <strong>di</strong> oggetti <strong>di</strong><br />
tipo Rectangle, trovando il rettangolo con il perimetro maggiore.<br />
*** <strong>Esercizi</strong>o P9.7. Migliorate la classe DataSet in modo che possa essere usata con un oggetto <strong>di</strong><br />
tipo Measurer oppure per elaborare oggetti <strong>di</strong> tipo Measurable. Suggerimento: fornite un costruttore<br />
senza parametri che crei un oggetto <strong>di</strong> tipo Measurer, il quale elabori oggetti <strong>di</strong> tipo Measurable.<br />
* <strong>Esercizi</strong>o P9.8. Mo<strong>di</strong>fi cate il metodo <strong>di</strong>splay della classe LastDigitDistribution vista in<br />
Esempi completi 9.1 in modo che produca un istogramma, come questo:<br />
0: *************<br />
1: ******************<br />
2: *************<br />
Dimensionate le barre in scala, in modo che la più lunga sia composta da 40 caratteri.<br />
** <strong>Esercizi</strong>o P9.9. Progettate una classe PrimeSequence che realizzi l’interfaccia Sequence vista in<br />
Esempi completi 9.1, generando la sequenza dei numeri primi.<br />
* <strong>Esercizi</strong>o P9.10. Aggiungete all’interfaccia Sequence <strong>di</strong> Esempi completi 9.1 il metodo hasNext,<br />
che restituisca false se la sequenza non ha più valori. Progettate una classe MySequence che produca<br />
una sequenza <strong>di</strong> dati reali, a vostra scelta, come la popolazione <strong>di</strong> città o nazioni, valori <strong>di</strong><br />
temperatura o quotazioni <strong>di</strong> borsa. Ricavate i dati da Internet e inseriteli in un array, restituendo<br />
un valore <strong>di</strong>verso ad ogni invocazione <strong>di</strong> next, fi no all’esaurimento dei dati stessi. La vostra classe<br />
SequenceDemo deve visualizzare la <strong>di</strong>stribuzione dell’ultima cifra <strong>di</strong> tutti i valori della sequenza.<br />
* <strong>Esercizi</strong>o P9.11. Progettate una classe FirstDigitDistribution che funzioni come la classe<br />
LastDigitDistribution vista in Esempi completi 9.1, tranne per il fatto <strong>di</strong> prendere in esame la<br />
prima cifra <strong>di</strong> ciascun valore, anziché l’ultima. È ben noto che le prime cifre <strong>di</strong> valori casuali non<br />
hanno una <strong>di</strong>stribuzione uniforme: questo fatto è stato usato per rilevare fro<strong>di</strong> bancarie, evidenziate<br />
da <strong>di</strong>stribuzioni anomale delle prime cifre <strong>di</strong> importi relativi a sequenze <strong>di</strong> transazioni.<br />
** <strong>Esercizi</strong>o P9.12. Defi nite un’interfaccia Filter in questo modo:<br />
public interface Filter<br />
{<br />
boolean accept(Object x);<br />
}<br />
Mo<strong>di</strong>fi cate la seconda realizzazione della classe DataSet (Paragrafo 9.4) in modo che usi sia un<br />
oggetto <strong>di</strong> tipo Measurer sia un oggetto <strong>di</strong> tipo Filter, elaborando soltanto oggetti accettati dal<br />
Cay Horstmann: Concetti <strong>di</strong> informatica e fondamenti <strong>di</strong> Java 5 a ed. - Copyright 2010 <strong>Apogeo</strong> srl