Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    [java] Number format Exception

    ecco il sorgente file:
    codice:
    import java.io.*;
    import pack.*;
    
    class Area_by_Gauss {
    	
    	private int numero_vertici;
    	private Float area;
    	
    	final String descrizione = "Con questo piccolo programma si sarà in grado di calcolare l'area di un qualsiasi poligono avendo tutte le coordinate dei suoi punti rispetto a un generico piano cartesiano. NB= L'unità di misura del risultato sarà come quella inserita e ovviamente elevata alla seconda.";
    	
    	public static void main(String args[]){
    		Area_by_Gauss risultato = new Area_by_Gauss();
    	}
    
    	public Area_by_Gauss(){
    		System.out.println(this.descrizione);
    		System.out.println();
    		System.out.println("Formula: 1/2 * sommatoria[Ni * (Xi+1 - Xi-1])");
    		System.out.println("Inserisci il numero dei vertici della figura");
    		
    		try {
            setNVertici();
            } catch (IOException e) {
    		System.out.println(e);
    		}
    		
    		Poligono figura = new Poligono(this.numero_vertici);
    	}
    	
    	public void setNVertici() throws IOException {
    		int n_caratteri_x_n_vertici = 10;
    		byte[] b = new byte[n_caratteri_x_n_vertici];
    		char[] numeri = new char[n_caratteri_x_n_vertici];
    		
    		BufferedInputStream buffer = new BufferedInputStream(System.in);
    		buffer.read(b);
    		
    		System.out.println();
    		
    		int i = 0;
    		while( i < n_caratteri_x_n_vertici) { 
    			numeri[i] = (char)b[i];
    		i++;
    		}
    		
    		this.numero_vertici = Integer.parseInt(String.valueOf(numeri));
    		
    		System.out.println("Il poligono è formato da " + this.numero_vertici +" vertici");
    		
    	}
    	
    }
    ecco il risultato digitando qualsiasi numero:
    Con questo piccolo programma si sarÓ in grado di calcolare l'area di un qualsias
    i poligono avendo tutte le coordinate dei suoi punti rispetto a un generico pian
    o cartesiano. NB= L'unitÓ di misura del risultato sarÓ come quella inserita e ov
    viamente elevata alla seconda.

    Formula: 1/2 * sommatoria[Ni * (Xi+1 - Xi-1])
    Inserisci il numero dei vertici della figura
    3

    Exception in thread "main" java.lang.NumberFormatException: For input string: "3

    "
    at java.lang.NumberFormatException.forInputString(Unk nown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at Area_by_Gauss.setNVertici(Area_by_Gauss.java:46)
    at Area_by_Gauss.<init>(Area_by_Gauss.java:22)
    at Area_by_Gauss.main(Area_by_Gauss.java:12)
    come devo modificare il codice??

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    codice:
    import java.io.*;
    class Area_by_Gauss {
    	
    	private int numero_vertici;
    	private Float area;
    	
    	final String descrizione = "Con questo piccolo programma si sarà in grado di calcolare l'area di un qualsiasi poligono avendo tutte le coordinate dei suoi punti rispetto a un generico piano cartesiano. NB= L'unità di misura del risultato sarà come quella inserita e ovviamente elevata alla seconda.";
    	
    	public static void main(String args[]){
    		Area_by_Gauss risultato = new Area_by_Gauss();
    	}
    
    	public Area_by_Gauss(){
    		System.out.println(this.descrizione);
    		System.out.println();
    		System.out.println("Formula: 1/2 * sommatoria[Ni * (Xi+1 - Xi-1])");
    		System.out.println("Inserisci il numero dei vertici della figura");
    		
    		try {
            setNVertici();
            } catch (IOException e) {
    		System.out.println(e);
    		}
    		
    		Poligono figura = new Poligono(this.numero_vertici);
    	}
    	
    	public void setNVertici() throws IOException {
    		this.numero_vertici = leggiNumero("Inserisci il numero dei vertici: ");
    		System.out.println("Il poligono e' formato da " + this.numero_vertici +" vertici");
    	}
    	
    	private int leggiNumero(String messaggio){
    		System.out.println(messaggio);
    		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    		String num = "";
    		while(true){
    			try{
    				num = reader.readLine();
    				return Integer.parseInt(num);
    			}
    			catch(NumberFormatException exc){
    				System.out.println("Il valore inserito non è un numero.");
    				System.out.println("Rpeti l'inserimento: ");
    			}
    			catch(IOException exc){
    				System.out.println(exc);
    			}
    		}
    	}
    	
    }

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    wow funziona alla meraviglia..era proprio quello che volevo fare...thanks anx721...cmq era così tanto sbagliato come avevo fatto io? non riesco a capire tutt'ora xkè il codice scritto da me in precedenza sia errato

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    this.numero_vertici = Integer.parseInt(String.valueOf(numeri));
    numero_vertici è un int
    numeri credo che avesse un ritorno a capo come ultimo char

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da floyd
    numeri credo che avesse un ritorno a capo come ultimo char
    L'errore era questo e quindi la stirnga non rappresentava un numero valido.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    diciamo che non ho capito molto bene questo errore...cmq volevo sottoporvi a un altro quesito:
    se lancio la my applicazione con un file per es un *.bat con quest codice (trovandosi nella stessa cartella):
    codice:
    java Area_by_Gauss
    l'applicazione parte, inserisco i dati ecc..ma quando deve farmi vedere il risultato esce dal promt. Come devo rimediare? ho provato a inserire anche System.exit(0); o (-1) o (1) ma è inutile. Inoltre vorrei che l'applicazione una volta che ha finito il suo corso chieda all'utente se vuole fare un'altro problema e quindi ricominciasse da 0. Come devo fare?

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    prova ad aggiungere, intanto, un blocco try/catch del tipo

    try {
    System.in.read();
    }
    catch (Exception e) {}
    Alla fine del main.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319
    Nel BAT aggiungi alla fine questa riga:
    codice:
    pause
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da Andrea1979
    prova ad aggiungere, intanto, un blocco try/catch del tipo

    try {
    System.in.read();
    }
    catch (Exception e) {}
    Alla fine del main.
    Originariamente inviato da LeleFT
    Nel BAT aggiungi alla fine questa riga:
    codice:
    pause
    Ciao.

    e..soprattutto, a parte il Fernet Branca... ma perché non fai un jar eseguibile con l'applicazione? VVoVe:
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Inoltre vorrei che l'applicazione una volta che ha finito il suo corso chieda all'utente se vuole fare un'altro problema e quindi ricominciasse da 0. Come devo fare?
    Potresti anche scrivere una
    codice:
    getchar
    in fondo al codice Java che aspetta la pressione del tasto invio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.