Newsgroup: it.comp.java
Titolo: Esercizio

Ringrazio già da ora chi mi risponde.
Sono al primo anno di Informatica e come materia di programmazione ho Java.
Il prof ci ha dato un esercizio per esercitarci per la prova scritta:
Scrivere un Programma che:
1)immette numeri fino a quando non si inserisce -1, ovvero si blocca.
2)Quando si blocca, di quei numeri inseriti prima di -1 deve fare la media,
come si fa ????

Non sono molto esperto di java, comunque dovrebbe funzionare:
import java.io.*;
public class Esercizio {
     /** Creates a new instance of Esercizio */
     public Esercizio() {
     }
     /**
      * @param args the command line arguments
      */
     public static void main(String[] args) {
         // TODO code application logic here
         float num;
         float tot;
         int cont;
         num=0;
         tot=0;
         cont=0;
         while (num!=-1) {
             System.out.print("Inserire un numero (-1 per terminare) :");
             num=leggiNum();
             if (num!=-1) {
                 tot=tot+num;
                 cont++;
             }
         }
         System.out.println("La media č:" + Float.toString((tot/cont)));
     }
     private static float leggiNum() {
         try {
             DataInputStream leggi=new DataInputStream(System.in);
             return(Float.parseFloat(leggi.readLine()));
         }
         catch (Exception e) {
             System.out.println("Errore:" + e);
             System.exit(0);
             return(-1);
         }
     }
}


Per prima cosa lo scopo di un newsgroup non è quello di risolvere i tuoi 
esercizi.
Inoltre, lo scopo degli esercizi è dare un modo per mettere alla prova 
quello che si è studiato. Se non sei in grado di fare gli esercizi 
significa che non hai studiato abbastanza o che non hai capito quello 
che hai studiato.
Questi esercizi sono veramente banali e se non sai da che parte 
cominciare temo che tu non abbia neanche cominciato a studiare.
Chi ti ha postato la soluzione non ti ha certo fatto un favore.
Andrea

> Chi ti ha postato la soluzione non ti ha certo fatto un favore.
Sono daccordo con te, ma quando una persona inizia un nuovo linguaggio 
non è sempre facile "Rompere il ghiacchio". Ho postato la soluzione solo 
per invogliarlo a studiare meglio il tutto. Per far capire che non è poi 
una cosa cosi assurda. Anch'io ho iniziato da pochissimo a programmare 
in java, e ti assicuro che il senso di completo smarrimento è grande.
Ricorda che tutti dobbiamo iniziare. Non si nasce imparati!!!

Megasoft78 wrote:

Domanda secca: secondo te l'esercizio consiste nel trovare la soluzione 
o nel girellare alla ricerca di qualcuno che ti dia la soluzione? Anche 
questo è un esercizio, dipende da quello che uno deve imparare.
Al primo anno di informatica è normale non essere dei fenomeni della 
programmazione e questi esercizi non richiedono certo di essere dei 
geni. Penso che questo profondo senso di smarrimento arrivi il momento 
di farselo passare.


Hai ragione!!! Ho sbagliato!!! Spero solo che chi ha ricevuto la mia 
soluzione abbia il buon senso di prenderla come spunto per capire, e non 
si metta a copiare solamente.
Mi spiace si sia inteso il mio gesto in maniera cosi negativa.

             return(Float.parseFloat(leggi.readLine()));
Se avessi letto la documentazione (a meno che tu non sia fermo al JDK 1.0)
avresti visto che il metodo readLine della classe DataInputStream è
deprecato:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/DataInputStream.html#readLine()
Testualmente, la documentazione dice che questo metodo non è in grado di
convertire correttamente i byte ricevuti dallo stream interno in caratteri.
Per leggere righe di testo dalla console testuale è sempre meglio
utilizzare:
  BufferedReader leggi=new BufferedReader(new InputStreamReader(System.in));
  return(Float.parseFloat(leggi.readLine()));
Attenzione la prossima volta!
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

...


 Attenzione la prossima volta!
Scusami, ma sono nuovo di java e non mi destreggio ancora bene. Starò più
attento la prossima volta.
Ciao e grazie per la puntualizzazione.

          }
Non credo venga eseguito il return dopo il System.exit(0).
Io farei così:
private static float leggiNum() {
	float ret=-1;
	try {
		DataInputStream leggi=new DataInputStream(System.in);
             	ret=Float.parseFloat(leggi.readLine());
	} catch (Exception e) {
		System.out.println("Errore:" + e);
	}
        return ret;
}
-- 
Pietro	- 
http://www.pietroweb.tk
Linux Registered User #304991
Powered by MDK Linux Kernel 2.6.3