private char[] operations={'+','-','*','/'}; public double operation(String chaine) throws Exception { //On cherche à savoir de quelle opération il s'agit //Pas d'opération trouvée char operation=' '; //Place de l'opération int indice=-1; for(int i=0;(i<operations.length)&&(operation==' ');i++) { indice=chaine.indexOf(operations[i]); if(indice>0) operation=operations[i]; } //Si on a pas trouvé d'opération valide if(operation==' ') throw new Exception("Il n'y a pas d'opérateur valide"); //On regarde si le premier argument est un nombre double op1=0d; try { op1=Double.parseDouble(chaine.subString(0,indice).trim()); } cacth(Exception e) { throw new Exception("Le premier opérateur n'est pas un nombre"); } //On regarde si le premier argument est un nombre double op2=0d; try { op2=Double.parseDouble(chaine.subString(indice+1).trim()); } cacth(Exception e) { throw new Exception("Le second opérateur n'est pas un nombre"); } //Selon l'opération switch(operation) { case '+' : return op1+op2; case '-' : return op1-op2; case '*' : return op1*op2; case '+' : if(Math.abs(op2)<Double.MIN_VALUE) throw new Exception("Division par zéro"); return op1/op2; } throw new Exception("Probléme inconnu !"); }
public void analyse(String chaine) { try { afficheReponse(operation(chaine)); } catch(Exception e) { afficheErreur("Erreur : "+e.getMessage()); } }
// MiniCalculatrice : simuler une calculatrice import java.io.*; public class MiniCalculatrice { public static void main(String args[]) throws IOException { BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); int choix; do { afficherMenu(); choix =lireValiderEntier (0,4); switch (choix) { case 1 : additionner(); break; case 2 : soustraire(); break; case 3 : multiplier(); break; case 4 : deviser(); break; } } while (choix!=0); } //fin de main /*------------------------------------------------------------------------------*/ // methode permettant de lire et valider le choix public static int lireValiderEntier(int debut , int fin)throws IOException { int choix ; boolean valeur = false; BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); do { choix = Integer.parseInt(clavier.readLine()); if (choix>=0 &&choix <=4) valeur = true ; else {System.out.print(" \tRefaire le choix :");valeur= false ; } }while (!valeur ); return choix; } //fin de methode /*-----------------------------------------------------------------------------*/ // methode permettant de lire un entier static int lireNombreEntier()throws IOException { int nb ; BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); System.out.print("\n\nEntrez le nombre : "); nb = Integer.parseInt(clavier.readLine()); return nb; }// fin de methode /*------------------------------------------------------------------------------*/ // methode permettant d'afficher le menu static void afficherMenu() { System.out.println("\n\n\n\t\tMENU PRINCIPAL\n"); System.out.println("\t1. Additionner deux nombres\n"); System.out.println("\t2. Soustraire deux nombres\n"); System.out.println("\t3. Multiplier deux nombres\n"); System.out.println("\t4. Deviser deux nombres\n"); System.out.println("\t0. Quitter\n"); System.out.print("\tFaites votre choix : "); }//fin de methode /*----------------------------------------------------------------------------- */ // methode permettant d'additionner 2 entiers static void additionner() throws IOException { BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); int nb1,nb2, resultat; nb1=lireNombreEntier(); nb2=lireNombreEntier(); resultat = nb1 + nb2; System.out.println("\n\t" + nb1 + " + " + nb2 + " = " + resultat); }//fin de methode /*------------------------------------------------------------------------------ */ // methode permettant de soustraire un entier d'un autre entier static void soustraire()throws IOException { BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); int nb1,nb2, resultat; nb1=lireNombreEntier(); nb2=lireNombreEntier(); resultat = nb1 - nb2; System.out.println("\n\t" + nb1 + " - " + nb2 + " = " + resultat); }// fin de methode /*------------------------------------------------------------------------------------------------------ */ // methode permettant de multiplier 2 entiers static void multiplier()throws IOException { BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); int nb1,nb2, resultat; nb1=lireNombreEntier(); nb2=lireNombreEntier(); resultat = nb1 * nb2; System.out.println("\n\t" + nb1 + " * " + nb2 + " = " + resultat); }// fin de methode /*------------------------------------------------------------------------------*/ // methode permettant de deviser un entier par un autre static void deviser()throws IOException { BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in)); double nb1,nb2, resultat; nb1=lireNombreEntier(); nb2=lireNombreEntier(); if (nb2 != 0) { resultat = nb1 / nb2; System.out.println("\n\t" + nb1 + " / " + nb2 + " = " + resultat); } else System.out.println("\n\t le nombre 2 est nul, devision par 0 est impossible " ); } } // fin MiniCalculatrice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question