continuazione lezione del 16-10 int h=w; //ERRORE PER ASSENZA DI CAST Problema dell'arrotondamento: System.out.println((int)w); System.out.println((int)Math.round(w)); problemi imprevisti dovuti a rappresentazione binaria approssimata (vedi libro) double f=4.35; System.out.println((int)(f*100)); Esempio del conto corrente richiede cifre realistiche, quindi discutiamo cosa si puo' fare: System.out.println(2000000000);//prova con 5miliardi int max=Integer.MAX_VALUE; System.out.println(max); System.out.println(max+3);//numero negativo! se siamo davvero ricchi: long verymax=Integer.MAX_VALUE; System.out.println(verymax+3); long money=5000000000L; System.out.println(money); int nomoney= money;//altro errore di cast long money= w;//altro errore di cast double in long double w=money; System.out.println(w);//rappresentazione esponenziale Esercizietto da fare da soli: abbiamo da calcolare il prezzo di quanto acquistiamo al supermercato: 3 pacchi di orecchiette 2 kili di pomodori prezzo di un pacco di orecchiette: lire 10.000 prezzo al kilo dei pomodori: lire 5.000 Scrivere una classe SuperMarket il cui metodo main calcoli e stampi il totale. modellare il problema utilizzando delle variabili opportunamente dichiarate con tipi adeguati. utilizzare una variabile anche per rappresentare il totale. indentare e commentare opportunamente il programma. rifare lo stesso esercizio con gli euro, cambiando i tipi delle variabili in maniera opportuna. In vista della prossima lezione: Prove con la classe console: Scaricare classe da sito Compilare in file senza caricarlo con textpad Mettere l'eseguibile nella directory corrente Presentazione classe console (vedi link su pagina web) Leggere una stringa e stamparla: System.out.println(Console.readLine("Dimmi cosa stampare:")) (sottolineare importanza del messaggio di richiesta all'utente). Leggere un intero e stamparlo. Provare a dare input sbagliati durante esecuzione. Assegnazione a variabile opportunamente dichiarata: int x; x = Console.readInt("dammi un numero"); System.out.println(x); etc con String e double.