• Non ci sono risultati.

Tipi Fondamentali Tipi Fondamentali

N/A
N/A
Protected

Academic year: 2021

Condividi "Tipi Fondamentali Tipi Fondamentali"

Copied!
43
0
0

Testo completo

(1)

1

Tipi Fondamentali Tipi Fondamentali

C. Horstmann

C. Horstmann

Fondamenti di programmazione e Java 2

Fondamenti di programmazione e Java 2

3^ edizione Apogeo

3^ edizione Apogeo

trad. Nicola Fanizzi

trad. Nicola Fanizzi

corso di Programmazione, CdS: Informatica TPS

corso di Programmazione, CdS: Informatica TPS

Dip. di Informatica, Università degli studi di Bari

Dip. di Informatica, Università degli studi di Bari

(2)

2 2

Obiettivi Obiettivi

 Capire numeri interi e a virgola mobile Capire numeri interi e a virgola mobile

 Riconoscere i limiti dei tipi numerici Riconoscere i limiti dei tipi numerici

 Tener conto delle cause di overflow ed errori di Tener conto delle cause di overflow ed errori di arrotondamento

arrotondamento

 Capire Capire l'uso indicato delle costanti l'uso indicato delle costanti

(3)

3 3

Obiettivi Obiettivi

 Scrivere Scrivere espressioni espressioni aritmetiche aritmetiche in Java in Java

 Usare il tipo Usare il tipo String String per definire e manipolare per definire e manipolare stringhe di caratteri

stringhe di caratteri

 Imparare a leggere l'input del programma ed a Imparare a leggere l'input del programma ed a produrre un output formattato

produrre un output formattato

(4)

4 4

Tipi Numerici Tipi Numerici

 int int : interi, nessuna parte decimale : interi, nessuna parte decimale

 double double : numeri a virgola mobile : numeri a virgola mobile (doppia precisione)

(doppia precisione)

1, -4, 0 1, -4, 0

0.5, -3.11111, 4.3E24, 1E-14

0.5, -3.11111, 4.3E24, 1E-14

(5)

5 5

Tipi Numerici Tipi Numerici

 Un calcolo numerico va in Un calcolo numerico va in overflow overflow se il risultato se il risultato ricade fuori dall'intervallo di valori del tipo numerico ricade fuori dall'intervallo di valori del tipo numerico

 Java: 8 tipi Java: 8 tipi primitivi primitivi quattro tipi interi e quattro tipi interi e

due tipi reali in virgola mobile due tipi reali in virgola mobile

int n = 1000000;

int n = 1000000;

System.out.println(n * n); // stampa -727379968

System.out.println(n * n); // stampa -727379968

(6)

6 6

Tipi Primitivi Tipi Primitivi

Tipo Tipo Descrizione Descrizione Intervallo Intervallo Dimensioni Dimensioni

int int Interi Interi –2,147,483,648 . . . 2,147,483,647 –2,147,483,648 . . . 2,147,483,647 4 byte 4 byte byte byte singolo byte singolo byte -128 -128 . . . . . . +127 +127 1 byte 1 byte short

short intero corto intero corto –32768 . . . 32767 –32768 . . . 32767 2 byte 2 byte long long intero lungo intero lungo –9,223,372,036,854,775,808 –9,223,372,036,854,775,808 8 byte 8 byte

. . . . . . +9,223,372,036,854,775,807 +9,223,372,036,854,775,807

(7)

7 7

Tipi Primitivi Tipi Primitivi

Tipo Tipo Descrizione Descrizione Dimensioni Dimensioni

double

double reali virgola mobile in doppia precisione reali virgola mobile in doppia precisione 8 byte 8 byte Intervallo

Intervallo ±10 ±10

308308

, , 15 15 cifre significative circa cifre significative circa float

float reali virgola mobile in singola precisione reali virgola mobile in singola precisione 4 byte 4 byte

Intervallo Intervallo ±10 ±10

3838

, 7 , 7 cifre significative circa cifre significative circa

char char caratteri nella codifica UNICODE caratteri nella codifica UNICODE 2 byte 2 byte boolean

boolean valori logici valori logici true true / false / false 1 byte 1 byte

(8)

8 8

Tipi Floating-point Tipi Floating-point

 Gli errori di arrotondamento accadono quando non è Gli errori di arrotondamento accadono quando non è possibile una conversione esatta tra numeri

possibile una conversione esatta tra numeri

 In Java è illegale assegnare una espressione In Java è illegale assegnare una espressione floating-point ad una variabile intera

floating-point ad una variabile intera

double f = 4.35;

double f = 4.35;

System.out.println(100 * f); // stampa 434.99999999999994 System.out.println(100 * f); // stampa 434.99999999999994

double balance = 13.75;

double balance = 13.75;

int dollars = balance; // Errore

int dollars = balance; // Errore

(9)

9 9

Tipi Floating-point Tipi Floating-point

Cast Cast : meccanismo usato per convertire un valore in : meccanismo usato per convertire un valore in un tipo diverso

un tipo diverso

Il cast taglia la parte frazionaria Il cast taglia la parte frazionaria

 Math.round Math.round : converte un numero floating-point : converte un numero floating-point all'intero più vicino

all'intero più vicino

int dollars = (int) balance; // OK int dollars = (int) balance; // OK

long rounded = Math.round(balance);

long rounded = Math.round(balance);

// se balance è 13.75, allora

// se balance è 13.75, allora

      // rounded è impostato a 14

      // rounded è impostato a 14

(10)

10 10

Sintassi 4.1: Cast Sintassi 4.1: Cast

    ( ( typeName typeName ) ) expression expression

Esempio Esempio : :

    (int) (balance * 100) (int) (balance * 100)

Scopo Scopo : :

Convertire un'espressione in un tipo differente

Convertire un'espressione in un tipo differente

(11)

11 11

Costanti:

Costanti: final final

 Una variabile Una variabile final final rappresenta una rappresenta una costante costante

 Una volta che il suo valore è stato impostato esso Una volta che il suo valore è stato impostato esso non non può può essere cambiato essere cambiato

 Le costanti dotate di nome rendono il programma Le costanti dotate di nome rendono il programma più facile

più facile da leggere e modificare da leggere e modificare

 Convenzione: si usano per le costanti identificatori Convenzione: si usano per le costanti identificatori fatti da sole lettere maiuscole

fatti da sole lettere maiuscole

final double QUARTER_VALUE = 0.25;

final double QUARTER_VALUE = 0.25;

final double DIME_VALUE = 0.1;

final double DIME_VALUE = 0.1;

final double NICKEL_VALUE = 0.05;

final double NICKEL_VALUE = 0.05;

final double PENNY_VALUE = 0.01;

final double PENNY_VALUE = 0.01;

payment = dollars + quarters * QUARTER_VALUE + dimes * payment = dollars + quarters * QUARTER_VALUE + dimes *

DIME_VALUE + nickels * NICKEL_VALUE + pennies * DIME_VALUE + nickels * NICKEL_VALUE + pennies * PENNY_VALUE;

PENNY_VALUE;

(12)

12 12

Costanti

Costanti static final static final

 Se occorrono valori costanti in molti metodi, meglio Se occorrono valori costanti in molti metodi, meglio dichiararle insieme ai campi della classe e segnalarle dichiararle insieme ai campi della classe e segnalarle

come

come static static e e final final

 Dichiarare Dichiarare public public le costanti le costanti static final static final abilita l'accesso da parte di altre classi

abilita l'accesso da parte di altre classi

public class Math public class Math { {

. . . . . .

public static final double E = 2.7182818284590452354;

public static final double E = 2.7182818284590452354;

public static final double PI = 3.14159265358979323846;

public static final double PI = 3.14159265358979323846;

} }

double circumference = Math.PI * diameter;

double circumference = Math.PI * diameter;

(13)

13 13

Sintassi 4.2:

Sintassi 4.2:

Definizione di Costanti Definizione di Costanti

 In un metodo: In un metodo:

final

final typeName typeName variableName variableName = = expression expression ; ;

 In una classe: In una classe:

accessSpecifier

accessSpecifier static final static final typeName typeName variableName

variableName = = expression expression ; ;

Esempio Esempio

final double NICKEL_VALUE = 0.05;

final double NICKEL_VALUE = 0.05;

public static final double public static final double

LITERS_PER_GALLON = 3.785;

LITERS_PER_GALLON = 3.785;

Scopo Scopo : definire una costante in un metodo o classe : definire una costante in un metodo o classe

(14)

14 14

CashRegister.java CashRegister.java

01: /**

01: /**

02: Registratore di cassa che cacola i totali della spesa 02: Registratore di cassa che cacola i totali della spesa

e il resto dovuto e il resto dovuto 03: */

03: */

04: public class CashRegister 04: public class CashRegister 05: {

05: {

06: /**

06: /**

07: Costruisce un registratore senza denaro.

07: Costruisce un registratore senza denaro.

08: */

08: */

09: public CashRegister() 09: public CashRegister() 10: {

10: {

11: purchase = 0;

11: purchase = 0;

12: payment = 0;

12: payment = 0;

13: } 13: } 14: 14:

15: /**

15: /**

16: Registra il prezzo d'acquisto di un pezzo.

16: Registra il prezzo d'acquisto di un pezzo.

17: @param amount il prezzo del pezzo 17: @param amount il prezzo del pezzo 18: */

18: */

19: public void recordPurchase(double amount) 19: public void recordPurchase(double amount) 20: {

20: {

21: purchase = purchase + amount;

21: purchase = purchase + amount;

22: }

22: }

(15)

15 15

CashRegister.java CashRegister.java

23:

23:

24: /**

24: /**

25: Inserisce il pagamento ricevuto dal cliente.

25: Inserisce il pagamento ricevuto dal cliente.

26: @param dollars numero di dollari 26: @param dollars numero di dollari

27: @param quarters numero di quarti di dollaro 27: @param quarters numero di quarti di dollaro 28: @param dimes numero di decimi di dollaro 28: @param dimes numero di decimi di dollaro

29: @param nickels numero di nichelini (5 cents) 29: @param nickels numero di nichelini (5 cents) 30: @param pennies numero di centesimi

30: @param pennies numero di centesimi 31: */

31: */

32: public void enterPayment(int dollars, int quarters, 32: public void enterPayment(int dollars, int quarters, 33: int dimes, int nickels, int pennies)

33: int dimes, int nickels, int pennies) 34: {

34: {

35: payment = dollars + quarters * QUARTER_VALUE 35: payment = dollars + quarters * QUARTER_VALUE

+ dimes * DIME_VALUE + dimes * DIME_VALUE

36: + nickels * NICKEL_VALUE + pennies 36: + nickels * NICKEL_VALUE + pennies

* PENNY_VALUE; * PENNY_VALUE;

37: } 37: } 38:

38:

(16)

16 16

39: /**

39: /**

40: Calcola il resto dovuto e resetta la macchina per 40: Calcola il resto dovuto e resetta la macchina per

il prossimo cliente. il prossimo cliente.

41: @return il resto dovuto al cliente 41: @return il resto dovuto al cliente 42: */

42: */

43: public double giveChange() 43: public double giveChange() 44: {

44: {

45: double change = payment - purchase;

45: double change = payment - purchase;

46: purchase = 0;

46: purchase = 0;

47: payment = 0;

47: payment = 0;

48: return change;

48: return change;

49: } 49: } 50: 50:

51: public static final double QUARTER_VALUE = 0.25;

51: public static final double QUARTER_VALUE = 0.25;

52: public static final double DIME_VALUE = 0.1;

52: public static final double DIME_VALUE = 0.1;

53: public static final double NICKEL_VALUE = 0.05;

53: public static final double NICKEL_VALUE = 0.05;

54: public static final double PENNY_VALUE = 0.01;55:

54: public static final double PENNY_VALUE = 0.01;55:

56: private double purchase;

56: private double purchase;

57: private double payment;

57: private double payment;

58: } 58: }

CashRegister.java

CashRegister.java

(17)

17 17

Collaudo di Collaudo di CashRegister.java CashRegister.java

01: /**

01: /**

02: This class tests the CashRegister class.

02: This class tests the CashRegister class.

03: */

03: */

04: public class CashRegisterTester 04: public class CashRegisterTester 05: {

05: {

06: public static void main(String[] args) 06: public static void main(String[] args) 07: {

07: {

08: CashRegister register = new CashRegister();

08: CashRegister register = new CashRegister();

09: 09:

10: register.recordPurchase(0.75);

10: register.recordPurchase(0.75);

11: register.recordPurchase(1.50);

11: register.recordPurchase(1.50);

12: register.enterPayment(2, 0, 5, 0, 0);

12: register.enterPayment(2, 0, 5, 0, 0);

13: System.out.print("Change=");

13: System.out.print("Change=");

14: System.out.println(register.giveChange());

14: System.out.println(register.giveChange());

15: 15:

(18)

18 18

Collaudo di Collaudo di CashRegister.java CashRegister.java

16: register.recordPurchase(2.25);

16: register.recordPurchase(2.25);

17: register.recordPurchase(19.25);

17: register.recordPurchase(19.25);

18: register.enterPayment(23, 2, 0, 0, 0);

18: register.enterPayment(23, 2, 0, 0, 0);

19: System.out.print("Change=");

19: System.out.print("Change=");

20: System.out.println(register.giveChange());

20: System.out.println(register.giveChange());

21: } 21: }

22: } 22: }

Output Output

Change=0.25

Change=0.25

Change=2.0

Change=2.0

(19)

19 19

Assegnazione Assegnazione Incremento e Decremento Incremento e Decremento

 L'assegnazione si differenzia dall'uguaglianza L'assegnazione si differenzia dall'uguaglianza matematica:

matematica:

items = items + 1;

items = items + 1;

 items++ items++ equivale a equivale a items = items + 1 items = items + 1

 items-- items-- sottrae sottrae 1 1 da da items items

(20)

20 20

Assegnazione

Assegnazione

Incremento e Decremento

Incremento e Decremento

(21)

21 21

Operazioni Aritmetiche Operazioni Aritmetiche

 / è l' operatore di divisione / è l' operatore di divisione

 Se entrambi gli argomenti sono interi allora il risultato è un Se entrambi gli argomenti sono interi allora il risultato è un intero. Il resto viene tralasciato

intero. Il resto viene tralasciato

 7.0/4 7.0/4 dà dà 1.75 1.75 7/4 7/4 dà dà 1 1

 Si ottiene il resto con l'operatore Si ottiene il resto con l'operatore % % ( ( modulo modulo ) )

7%4 7%4 dà dà 3 3

(22)

22 22

Operazioni Aritmetiche Operazioni Aritmetiche

final int PENNIES_PER_NICKEL = 5;

final int PENNIES_PER_NICKEL = 5;

final int PENNIES_PER_DIME = 10;

final int PENNIES_PER_DIME = 10;

final int PENNIES_PER_QUARTER = 25;

final int PENNIES_PER_QUARTER = 25;

final int PENNIES_PER_DOLLAR = 100;

final int PENNIES_PER_DOLLAR = 100;

// calcola il totale in centesimi (penny) // calcola il totale in centesimi (penny)

int total = dollars * PENNIES_PER_DOLLAR + quarters int total = dollars * PENNIES_PER_DOLLAR + quarters * PENNIES_PER_QUARTER

* PENNIES_PER_QUARTER

+ nickels * PENNIES_PER_NICKEL + dimes * PENNIES_PER_DIME + nickels * PENNIES_PER_NICKEL + dimes * PENNIES_PER_DIME + pennies;

+ pennies;

// Usa la divisione intera per convertire in dollari, cents // Usa la divisione intera per convertire in dollari, cents int dollars = total / PENNIES_PER_DOLLAR;

int dollars = total / PENNIES_PER_DOLLAR;

int cents = total % PENNIES_PER_DOLLAR;

int cents = total % PENNIES_PER_DOLLAR;

(23)

23 23

The Math class The Math class

 Classe Classe Math Math : contiene metodi come : contiene metodi come sqrt sqrt e e pow pow

 Per calcolare Per calcolare x x n n , si scrive , si scrive Math.pow(x,n) Math.pow(x,n)

 Per calcolare Per calcolare x x 2 2 , Math.pow , Math.pow è significativamente più è significativamente più efficiente rispetto a calcolare semplicemente

efficiente rispetto a calcolare semplicemente x * x x * x

 Per estrarre la radice quadrata di un numero, si usa Per estrarre la radice quadrata di un numero, si usa Math.sqrt

Math.sqrt

 ad esempio: ad esempio: Math.sqrt(x) Math.sqrt(x)

(24)

24 24

The Math class The Math class

In Java In Java

si può rappresentare con si può rappresentare con

(-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a)

(-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a)

(25)

25 25

Metodi Matematici in Java Metodi Matematici in Java

 Math.sqrt(x) Math.sqrt(x) radice quadrata di x radice quadrata di x

 Math.pow(x,y) Math.pow(x,y) potenza x potenza x y y

 Math.exp(x) Math.exp(x) esponenziale e esponenziale e x x

 Math.log(x) Math.log(x) logaritmo naturale di x logaritmo naturale di x

 Math.sin(x) Math.sin(x) seno di x seno di x Math.cos(x)

Math.cos(x) coseno di x coseno di x Math.tan(x)

Math.tan(x) tangente di x tangente di x

 Math.round(x) Math.round(x) intero più vicino a x intero più vicino a x

 Math.min(x,y) Math.min(x,y) minimo tra x e y minimo tra x e y Math.max(x,y)

Math.max(x,y) massimo tra x e y massimo tra x e y

(26)

26 26

Analizzare un'Espressione

Analizzare un'Espressione

(27)

27 27

Chiamare Metodi

Chiamare Metodi static static

 Un metodo Un metodo static static non opera su un oggetto non opera su un oggetto

 I metodi I metodi static static sono definiti all'interno delle classi sono definiti all'interno delle classi

 Convenzione: I nomi delle classi iniziano con una Convenzione: I nomi delle classi iniziano con una maiuscola; quelli degli oggetti con una minuscola maiuscola; quelli degli oggetti con una minuscola

double x = 4;

double x = 4;

double root = x.sqrt(); // Errore double root = x.sqrt(); // Errore

Math Math

System.out

System.out

(28)

28 28

Sintassi 4.3:

Sintassi 4.3:

Chiamare Metodi

Chiamare Metodi static static

ClassName

ClassName . . methodName methodName ( ( parameters parameters ); );

Esempio Esempio

Math.sqrt(4) Math.sqrt(4)

Scopo Scopo : invocare un metodo statico fornendogli i : invocare un metodo statico fornendogli i parametri espliciti (non necessità di oggetto come parametri espliciti (non necessità di oggetto come

parametro implicito)

parametro implicito)

(29)

29 29

Stringhe Stringhe

 Una stringa è una sequenza di caratteri Una stringa è una sequenza di caratteri

 Le stringhe sono oggetti della classe Le stringhe sono oggetti della classe String String

 Costanti Costanti String String : :

 Variabili Variabili String String : :

 Lunghezza delle stringhe: Lunghezza delle stringhe:

 Stringa vuota: Stringa vuota:

"Hello, World!"

"Hello, World!"

String message = "Hello, World!";

String message = "Hello, World!";

int n = message.length();

int n = message.length();

""

""

(30)

30 30

Concatenazione Concatenazione

 Si usa l'operatore Si usa l'operatore + + : :

 Se uno degli argomenti dell'operatore Se uno degli argomenti dell'operatore + + è una è una stringa, l'altro viene convertito in stringa

stringa, l'altro viene convertito in stringa

String name = "Dave";

String name = "Dave";

String message = "Hello, " + name;

String message = "Hello, " + name;

// message è "Hello, Dave"

// message è "Hello, Dave"

String a = "Agent";

String a = "Agent";

int n = 7;

int n = 7;

String bond = a + n; // bond è “Agent7”

String bond = a + n; // bond è “Agent7”

(31)

31 31

Concatenazione Concatenazione nelle Istruzioni di Stampa nelle Istruzioni di Stampa

 Utili a ridurre il numero di istruizioni Utili a ridurre il numero di istruizioni System.out.print

System.out.print

si può scrivere: si può scrivere:

System.out.print("The total is ");

System.out.print("The total is ");

System.out.println(total);

System.out.println(total);

System.out.println("The total is " + total);

System.out.println("The total is " + total);

(32)

32 32

Conversione tra Stringhe-Numeri Conversione tra Stringhe-Numeri

 Convertire in numero: Convertire in numero:

 Convertire in stringa: Convertire in stringa:

int n = Integer.parseInt(str);

int n = Integer.parseInt(str);

double x = Double.parseDouble(x);

double x = Double.parseDouble(x);

String str = "" + n;

String str = "" + n;

str = Integer.toString(n);

str = Integer.toString(n);

(33)

33 33

Sottostringhe Sottostringhe

 Fornire le posizioni di Fornire le posizioni di inizio inizio e e dopo la fine dopo la fine

 Prima posizione Prima posizione 0 0

String greeting = "Hello, World!";

String greeting = "Hello, World!";

String sub = greeting.substring(0, 5); // sub is "Hello"

String sub = greeting.substring(0, 5); // sub is "Hello"

(34)

34 34

Sottostringhe Sottostringhe

 La lunghezza di una sottostringa è pari a La lunghezza di una sottostringa è pari a oltreLaFine - inizio

oltreLaFine - inizio

(35)

35 35

Alfabeti Internazionali Alfabeti Internazionali

Tastiera Tedesca

Tastiera Tedesca

(36)

36 36

Alfabeti Internazionali Alfabeti Internazionali

 Alfabeto Thai Alfabeto Thai

(37)

37 37

Alfabeti Internazionali Alfabeti Internazionali

 Menù con cratteri cinesi Menù con cratteri cinesi

(38)

38 38

Leggere l'Input Leggere l'Input

 System.in System.in ha un insieme di caratteristiche ha un insieme di caratteristiche minimali – può solo leggere un byte alla volta minimali – può solo leggere un byte alla volta

 Da Java 5.0, è stata aggiunta la classe Da Java 5.0, è stata aggiunta la classe Scanner Scanner per leggere l'input da tastiera in maniera utile

per leggere l'input da tastiera in maniera utile

 nextDouble nextDouble legge un double legge un double

 nextLine nextLine legge una riga di caratteri (fino all'Invio) legge una riga di caratteri (fino all'Invio)

 nextWord nextWord legge una word (fino ad un qualunque legge una word (fino ad un qualunque blank)

blank)

Scanner in = new Scanner(System.in);

Scanner in = new Scanner(System.in);

System.out.print("Enter quantity: ");

System.out.print("Enter quantity: ");

int quantity = in.nextInt();

int quantity = in.nextInt();

(39)

39 39

InputTester InputTester

01: import java.util.Scanner;

01: import java.util.Scanner;

02: 02:

03: /**

03: /**

04: Questa classe collauda l'input da console 04: Questa classe collauda l'input da console 05: */

05: */

06: public class InputTester 06: public class InputTester 07: {

07: {

08: public static void main(String[] args) 08: public static void main(String[] args) 09: {

09: {

10: Scanner in = new Scanner(System.in);

10: Scanner in = new Scanner(System.in);

11: 11:

12: CashRegister register = new CashRegister();

12: CashRegister register = new CashRegister();

13: 13:

14: System.out.print("Enter price: ");

14: System.out.print("Enter price: ");

15: double price = in.nextDouble();

15: double price = in.nextDouble();

16: register.recordPurchase(price);

16: register.recordPurchase(price);

17: 17:

(40)

40 40

InputTester InputTester

18: System.out.print("Enter dollars: ");

18: System.out.print("Enter dollars: ");

19: int dollars = in.nextInt();

19: int dollars = in.nextInt();

20: System.out.print("Enter quarters: ");

20: System.out.print("Enter quarters: ");

21: int quarters = in.nextInt();

21: int quarters = in.nextInt();

22: System.out.print("Enter dimes: ");

22: System.out.print("Enter dimes: ");

23: int dimes = in.nextInt();

23: int dimes = in.nextInt();

24: System.out.print("Enter nickels: ");

24: System.out.print("Enter nickels: ");

25: int nickels = in.nextInt();

25: int nickels = in.nextInt();

26: System.out.print("Enter pennies: ");

26: System.out.print("Enter pennies: ");

27: int pennies = in.nextInt();

27: int pennies = in.nextInt();

28: register.enterPayment(dollars, quarters,dimes, 28: register.enterPayment(dollars, quarters,dimes,

nickels, pennies); nickels, pennies);

29: 29:

30: System.out.print("Your change is ");

30: System.out.print("Your change is ");

31: System.out.println(register.giveChange());

31: System.out.println(register.giveChange());

32: } 32: }

33: }

33: }

(41)

41 41

InputTester InputTester

Enter price: 7.55 Enter price: 7.55 Enter dollars: 10 Enter dollars: 10 Enter quarters: 2 Enter quarters: 2 Enter dimes: 1

Enter dimes: 1 Enter nickels: 0 Enter nickels: 0 Enter pennies: 0 Enter pennies: 0

Your change is 3.05 Your change is 3.05

 Output Output

(42)

42 42

Leggere l'Input

Leggere l'Input

con una Dialog Box

con una Dialog Box

(43)

43 43

Leggere l'Input Leggere l'Input con una Dialog Box con una Dialog Box

 Converte stringhe in numeri se necessario: Converte stringhe in numeri se necessario:

 La conversione lancia un'eccezione se l'utente non La conversione lancia un'eccezione se l'utente non fornisce un numero (vedi cap. 15)

fornisce un numero (vedi cap. 15)

 Aggiungere Aggiungere System.exit(0) System.exit(0) al metodo al metodo main main di un programma che usi

di un programma che usi JOptionPane JOptionPane

String input = JOptionPane.showInputDialog(prompt) String input = JOptionPane.showInputDialog(prompt)

int count = Integer.parseInt(input);

int count = Integer.parseInt(input);

Riferimenti

Documenti correlati

La mantissa M è, nella forma normalizzata, un numero frazionario compreso fra 2 –1 e 1, ossia 0.5 ≤ M < 1 (M in pratica viene rappresentato in virgola fissa con la virgola

[r]

Nel sistema in Figura 5.99 la massa m 1 , libera di muoversi verticalmente, e la massa m 2 , libera di muoversi orizzontalmente, sono collegate da un filo inestensibile di lunghezza..

 In C, la differenza tra carattere e numero è sfumata: il tipo di dati char char è un valore intero rappresentato con un byte, che può essere utilizzato per memorizzare sia

Si può usare la virgola negli elenchi di nomi o aggettivi; per dividere le frasi, soprattutto se il soggetto delle frasi è sempre lo stesso1. Dopo la virgola si usa la

[r]

2.9 La gestione di una strategia in base alle opzioni reali: L’Option Space47 Capitolo 3: Il caso Dronox.. Valutazione di un progetto di ricerca e sviluppo

I metaboliti principali sono la benzoilecgonia, l’ecgonina e l’ecgonina metil-estere, sostanze inattive, prodotte ad opera di esterasi o per idrolisi spontanea e la