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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}<br />

}<br />

ESERCIZI E PROGETTI DI PROGRAMMAZIONE E–17<br />

register.recordPurchase(8.37);<br />

register.enterPayment(10, 0, 0, 0, 0);<br />

System.out.println(“Dollars: “ + register.giveDollars());<br />

System.out.println(“Expected: 1”);<br />

System.out.println(“Quarters: “ + register.giveQuarters());<br />

System.out.println(“Expected: 2”);<br />

System.out.println(“Dimes: “ + register.giveDimes());<br />

System.out.println(“Expected: 1”);<br />

System.out.println(“Nickels: “ + register.giveNickels());<br />

System.out.println(“Expected: 0”);<br />

System.out.println(“Pennies: “ + register.givePennies());<br />

System.out.println(“Expected: 3”);<br />

** <strong>Esercizi</strong>o P4.12. Nei Consigli pratici 4.1 abbiamo rappresentato lo stato del <strong>di</strong>stributore automatico<br />

<strong>di</strong> francobolli me<strong>di</strong>ante il saldo in centesimi: una scelta astuta, ma forse non quella più<br />

ovvia. Diversamente, si può memorizzare la quantità introdotta dall’utente, in dollari, e il saldo<br />

rimanente dopo aver emesso i francobolli <strong>di</strong> tipo “fi rst class”. Realizzare <strong>di</strong> nuovo il <strong>di</strong>stributore<br />

usando questa strategia, senza, ovviamente, mo<strong>di</strong>fi care la sua interfaccia pubblica.<br />

*** <strong>Esercizi</strong>o P4.13. Scrivete un programma che legge un numero intero e lo scompone in una serie<br />

<strong>di</strong> cifre singole, in or<strong>di</strong>ne inverso. Per esempio, il numero 16384 verrà visualizzato come:<br />

4<br />

8<br />

3<br />

6<br />

1<br />

Potete ipotizzare che il numero non abbia più <strong>di</strong> cinque cifre e che non sia negativo. Progettate<br />

la classe DigitExtractor:<br />

public class DigitExtractor<br />

{<br />

/**<br />

Costruisce un estrattore <strong>di</strong> cifre che restituisce le cifre<br />

<strong>di</strong> un numero intero in or<strong>di</strong>ne inverso.<br />

@param anInteger il numero intero da scomporre in cifre<br />

*/<br />

public DigitExtractor(int anInteger) { ... }<br />

}<br />

/**<br />

Restituisce la prossima cifra estratta.<br />

@return la prossima cifra<br />

*/<br />

public double nextDigit() { ... }<br />

Nella classe <strong>di</strong> collaudo, DigitPrinter, scrivete cinque volte l’enunciato System.out.<br />

println(myExtractor.nextDigit()).<br />

** <strong>Esercizi</strong>o P4.14. Realizzate una classe QuadraticEquation il cui costruttore riceve i coeffi cienti<br />

a, b e c dell’equazione <strong>di</strong> secondo grado ax 2 + bx + c = 0. Progettate i meto<strong>di</strong> getSolution1 e<br />

getSolution2 che restituiscono le soluzioni, usando la formula nota. Scrivete una classe <strong>di</strong> collaudo<br />

QuadraticEquationTester che costruisce un oggetto <strong>di</strong> tipo QuadraticEquation e visualizza le<br />

due soluzioni.<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!