Exemple03a_Equ2DegreRetourTélécharger Calcul de l'équation du second degré en utilisant un Terminal Exemple03a.java // Calcul de l'équation du second degré en utilisant un Terminal public class Exemple03a { public static void main(String a_args[]) { Terminal.ecrireStringln("Resolution d'une équation du 2 degré"); double a,b,c; while (true) { // Saisie des coefficients // Terminal.ecrireString("Saisir a : "); a = Terminal.lireDouble(); Terminal.ecrireString("Saisir b : "); b = Terminal.lireDouble(); Terminal.ecrireString("Saisir c : "); c = Terminal.lireDouble(); // Creation de l'objet qui contient la methode // de resolution Equ2Degre equ = new Equ2Degre(); // Resolution de l'equation equ.resoudre(a,b,c); // Le resultat est dans l'objet equ // Afficage du resultat // if (equ.erreur != null) Terminal.ecrireStringln(equ.erreur); else { Terminal.ecrireStringln("Solutions : " + equ.x1 + " " + equ.x2); // On verifie que le calcul de resolution est correct // en injectant les solutions dans l'equation // Terminal.ecrireStringln("Verification:"); double y1,y2; y1 = a * equ.x1 * equ.x1 + b * equ.x1 + c; y2 = a * equ.x2 * equ.x2 + b * equ.x2 + c; Terminal.ecrireStringln("y1 = " + y1); Terminal.ecrireStringln("y2 = " + y2); } } } } // Classe qui contient le calcul de resolution d'une equation du 2er degre // class Equ2Degre { public String erreur; // non null si erreur de resolution public double x1; // solution 1 de l'equation public double x2; // solution 2 de l'equation // Methode de resolution qui prend en entree les coefficients. // Les resultats sont memorises dans les attributs de l'objet // public void resoudre(double a,double b,double c) { // Initialisation des resultats x1 = 0.0; x2 = 0.0; // Resolution // double delta; if (a==0) erreur = "Erreur : a = 0"; else { delta = (b*b) - (4*a*c); if (delta<0) erreur = "delta < 0"; else if (delta == 0) { x1 = ( -b ) / (2*a); x2 = ( -b ) / (2*a); erreur = null; } else { x1 = (-b + Math.sqrt(delta))/(2*a); x2 = (-b - Math.sqrt(delta))/(2*a); erreur = null; } } } } Terminal.java import java.io.*; public class Terminal{ static BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); public static String lireString() // Lire un String { String tmp=""; char C='\0'; try { tmp = in.readLine(); } catch (IOException e) { exceptionHandler(e); } return tmp; } // fin de lireString() public static int lireInt() // Lire un entier { int x=0; try { x=Integer.parseInt(lireString()); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static boolean lireBoolean() // Lire un entier { boolean b = true; try { b = Boolean.valueOf(lireString()).booleanValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return b; } public static double lireDouble() // Lire un double { double x=0.0; try { x=Double.valueOf(lireString()).doubleValue(); } catch (NumberFormatException e) { exceptionHandler(e); } return x ; } public static char lireChar() // Lire un caractere { String tmp=lireString(); if (tmp.length()==0) return '\n'; else { return tmp.charAt(0); } } public static void ecrireString(String s){ // Afficher un String try{ System.out.print(s); } catch (Exception ex){ exceptionHandler(ex); } } public static void ecrireStringln(String s) // Afficher un String { ecrireString(s); sautDeLigne(); } // fin de ecrireStringln() public static void ecrireInt(int i) // Afficher un entier { ecrireString(""+i); } public static void ecrireIntln(int i) // Afficher un entier { ecrireString(""+i); sautDeLigne(); } public static void ecrireBoolean(boolean b){ ecrireString(""+b); } public static void ecrireBooleanln(boolean b){ ecrireString(""+b); sautDeLigne(); } public static void ecrireDouble(double d) // Afficher un double { ecrireString(""+d); } public static void ecrireDoubleln(double d) // Afficher un double { ecrireDouble(d); sautDeLigne(); } public static void ecrireChar(char c) // Afficher un caractere { ecrireString(""+c); } public static void ecrireCharln(char c) // Afficher un caractere { ecrireChar(c); sautDeLigne(); } public static void sautDeLigne(){ try{ System.out.println(); }catch(Exception ex){ exceptionHandler(ex); } } protected static void exceptionHandler(Exception ex){ TerminalException err = new TerminalException(ex); throw err; } public static void ecrireException(Throwable ex){ ecrireString(ex.toString()); ex.printStackTrace(System.err); } } class TerminalException extends RuntimeException{ Exception ex; TerminalException(Exception e){ ex = e; } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause run.bat cd bin java Exemple03a pause