Newsgroup: it.comp.java
Titolo: dilemma...perchè non si compila?

Premesso che ho iniziato da poco, cerco di compilare questo programma ma mi
da 4 errori: è un esempio preso dal libro è scritto correttamente ma non si
compila...perchè? Un'altra curiosità...quindi l'oggetto Random serve anche
per le password?
impot java.util.Random;
class NumeriCasuali{
    public static void main(String arguments[]) {
        Random r1, r2;
        r1 = new Random();
        System.out.println("Valore casuale 1: " + r1.nextDouble());
        r2 = new Random(8675309);
        System.out.println("Valore casuale 2: " + r2.nextDouble());
    }
}
*************************************************
Un'altro quesito...come Costo giornaliero totale mi dovrebbe dare: 2.16
invece mi da : 2.1599998 perchè?
Vi ringrazio tantissimo per la vostra pazienza...a risentirci, Elisa.
class AmebaMat {
    public static void main (String arguments[]) {
        int x = 8;
        short y = 2;
        float a = .12f;
        System.out.println("Si parte da " + x + " amebe.");
        System.out.println("\tDue novelli sposi si aggregano al gruppo.");
        x = x + 2;
        System.out.println("Ora ce ne sono " + x);
        System.out.println("\tAvviene una mitosi, che duplica il numero di
amebe.");
        x = x * 2;
        System.out.println("ora ce ne sono " + x);
        System.out.println("\tC'è un incendio e " + y + " amebe fuggono
via.");
        x = x - y;
        System.out.println("Ora ce ne sono " + x);
        System.out.println("Alla fine sopravvivono "+x+" amebe.");
        System.out.println("Costo giornaliero per ameba: lire " + a);
        System.out.println("Costo giornaliero totale: lire "+(a*x));
    }
}

         System.out.println("\tC'č un incendio e " + y + " amebe fuggono


}
sostituisci float a = .12f con double a = .12
vedrai che il risultato sara' 2.16 
non so come siano implementati i float in java ma e' 
probabile che il semplice calcolo a*x metta in "crisi" 
la cpu, ricorda che un calcolatore ha una capacita'
limitata di precisione nei conti con numeri decimali
e a volte moltiplicando un numero "grande" con
un numero "piccolo" l'aritmetica in virgola mobile
introduce arrotondamenti significativi
detto questo, mi sembra un po' strano 
che float dia problemi nel caso in esame 
ciao_O
Andrea
http://digilander.iol.it/schiele

Ciao Elisa, eccoti il sorgente leggermente corretto per la generazione
di numeri casuali...
import java.util.Random;
public class NumeriCasuali {
    public static void main(String arguments[]) {
        Random r1, r2;
        r1 = new Random();
        System.out.println("Valore casuale 1: " + r1.nextDouble());
        r2 = new Random(8675309);
        System.out.println("Valore casuale 2: " + r2.nextDouble());
    }
}
L'errore stava nella prima riga, perchè hai scritto impot invece di
import...
...la distrazione a volte fa seri danni ^_^
Per la questione dell'approssimazione è un discorso un po' lungo...se
non ricordo male quest'argomento è stato già trattato sullo stesso
ng...o cmq basta studiarsi un po' la rappresentazione macchina dei
numeri reali...
...Se ti interessa guardati la parte degli errori di "round-off"
inerenti al calcolo numerico...
Spero di esserti stato utile...
Bye bye e buono studio-lavoro... ^_^
Amedeo.





         System.out.println("\tC'è un incendio e " + y + " amebe fuggono
