import java.io.*; import java.util.Scanner; import javax.swing.JOptionPane; class Saisie { //Méthodes static String lireChaine(String message){ String ligne = null; try{ //conversion d'un flux binaire en un flux de caractères (caractères Unicode) InputStreamReader isr = new InputStreamReader(System.in); //construction d'un tampon pour optimiser la lecture du flux de caractères BufferedReader br = new BufferedReader(isr); System.out.println(message); // lecture d'une ligne ligne = br.readLine(); } catch (IOException e){ System.err.println(e.getMessage()); } return ligne; }// fin lireChaine public static int lireEntier(String message){ return Integer.parseInt(lireChaine(message)); } public static double lireReel(String message){ return Double.parseDouble(lireChaine(message)); } } public class Trinome { //Attributs private double a,b,c; private double delta; private double r1,r2; //Constructeurs public Trinome(double c1,double c2,double c3){ a=c1; b=c2; c=c3; delta=0; r1=0; r2=0; } //Méthodes public void calculRacines(){ delta=b*b - 4*a*c; if (delta>0) {r1=(-b + Math.sqrt(delta)/(2*a)); r2=(-b - Math.sqrt(delta)/(2*a)); } if(delta==0) {r1=(-b/(2*a)); } } //Affichage en ligne de commande public void afficheRacines(){ if (delta>0) {System.out.println("racine 1="+r1); System.out.println("racine 2="+r2); } if(delta==0) {System.out.println("racine1=racine2="+r1); } if (delta<0) {System.out.println("pas de racines réelles"); System.out.println("car le discriminant est négatif:"+delta); } } } class TestTrinome{ public static void main(String[] args){ // Méthode utilisant la classe Saisie System.out.println("Utilisation de la classe Saisie !!!"); int a = Saisie.lireEntier("Valeur de a ? (coefficient de X²)"); int b = Saisie.lireEntier("Valeur de b ? (coefficient de X)"); int c = Saisie.lireEntier("Valeur de c ? (le reste)"); Trinome tr1= new Trinome(a,b,c); tr1.calculRacines(); tr1.afficheRacines(); // Méthode utilisant la classe Scanner de J2SE 5 // Il faut importer java.util.Scanner System.out.println("Utilisation de la classe Scanner !!!"); Scanner lectureClavier = new Scanner(System.in); System.out.println("valeur de a"); int a1 = lectureClavier.nextInt(); System.out.println("valeur de b"); int b1 = lectureClavier.nextInt(); System.out.println("valeur de c"); int c1 = lectureClavier.nextInt(); Trinome tr2= new Trinome(a1,b1,c1); tr2.calculRacines(); tr2.afficheRacines(); // Méthode utilisant la classe JOptionPane de Java // Il faut importer javax.swing.JOptionPane System.out.println("Utilisation de la classe JOptionPane !!!"); String s = JOptionPane.showInputDialog("Valeur de a ?"); if(s!=null){ a= Integer.parseInt(s);// conversion d'une chaine en entier } String s1 = JOptionPane.showInputDialog("Valeur de b ?"); if(s!=null){ b = Integer.parseInt(s1);// conversion d'une chaine en entier } String s2 = JOptionPane.showInputDialog("Valeur de c?"); if(s!=null){ c = Integer.parseInt(s2);// conversion d'une chaine en entier } Trinome tr3= new Trinome(a,b,c); tr3.calculRacines(); tr3.afficheRacines(); } }