edutecnica

Esercizio 5                     

Realizza un programma che sia in grado di accettare da tastiera, indifferentemente, un numero reale o un numero immmaginario, usando il costrutto try-catch. Bisogna ricordare che un numero immaginario è un numero reale preceduto dalla lettera 'j'.


Il primo try, 'tenta' la conversione della stringa inserita in un numero, se non ci riesce, c'è il fondato sospetto si tratti di un numero immaginario. Il corrispondente catch tenta a sua volta di individuare la 'j' iniziale dell'eventuale numero immaginario. Se non la trova, viene stampata la stringa "impossibile". Per una questione di pigrizia, abbiamo lasciato il parseInt, ma se si tratta di numeri reali, ci vorrebbe un parseFloat.

import java.io.*;
class ins {
public static void main (String[] args) throws IOException{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader s= new BufferedReader(input);

String st;
int r=0,i=0;
System.out.print("ins.num:");
st=s.readLine().trim();

try{
     r=Integer.parseInt(st);
}catch(NumberFormatException e){
     if(st.charAt(0)=='j'){
         try{
              i=Integer.parseInt(st.substring(1, st.length()));          
            }catch(NumberFormatException w){
              System.out.println("impossibile");
            }
    
}else System.out.println("impossibile");
}//fine try-catch
if(r!=0)System.out.println("Numero Reale:"+r);
if(i!=0)System.out.println("Numero Immaginario:"+i);
}//fine main
}//fine class