31.05.2013 Views

Esercizi e progetti di programmazione - Apogeo

Esercizi e progetti di programmazione - Apogeo

Esercizi e progetti di programmazione - Apogeo

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!