Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
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