begin process at 2008 09 06 19:59:10
1 237 936 membres
318 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : equations second degré [ Algorithme / Maths ] (usef01)

equations second degré le 04/06/2008 16:13:13

usef01
bonjour, j'ai un petit probleme concernant un programme qui resoud les equations de second degré. Quand l'exception InputMismatchException est lancée, il la traite impec avec le catch associé cad il affiche à l'ecran "Vous devez introduire un nombre", puis il execute la premiere instruction apres le catch ("Voulez-vous continuer ? [o/n/?]")  apres ça il se bloque : je peux rien saisir au clavier .
  voici le code complet :

import java.util.InputMismatchException;
import java.util.Scanner;

public class SecondDeg {

    public static void main(String[] args) {
      
        boolean continuation=true;
        Scanner scan = new Scanner(System.in);
        double a,b,c,delta,d,x,y,im,re;
        char verif;
      
    do {
        System.out.println("ax²+bx+c=0");
        System.out.println("Veuillez entrer les coefficients ");
      
    try{
            System.out.print("a = ");
      
        a= scan.nextDouble();
        while(a==0)    {
            System.out.println("a est different de 0");
            System.out.print("a = ");
            a= scan.nextDouble();
        }
        System.out.print("b = ");
        b= scan.nextDouble();
        System.out.print("c = ");
        c= scan.nextDouble();

        System.out.println("\nl'equation a resoudre est : "+a+"x²+"+b+"x+"+c+"=0\n");
      
        delta = Math.pow(b, 2.0)-4*a*c;
        if (delta>0)
        {
            x = (-b-Math.sqrt(delta))/2;
            y = (-b+Math.sqrt(delta))/2;
          
            System.out.println("2 solutions réelles:\n    x = "+x+" , y = "+y+"");  
        }
        else if (delta ==0)
        {
          
            x = (-b)/2;
            System.out.println("1 solution réelle:\n    x = "+x+"");
        }
        else
        {
            d=Math.sqrt(-delta);
            re=(-b)/2;
            im=d/2;
            System.out.println("2 solutions complexes:\n" +
                    "    x = "+re+"-"+im+"i , y  = "+re+"+"+im+"i");
        }
      
    }
    catch (InputMismatchException e)
    {
        System.out.println("Vous devez introduire un nombre");
  
    }
      
       System.out.println("\nVoulez-vous continuer ? [o/n/?]");
         verif=scan.next().charAt(0);
        if (verif != 'o' && verif != 'O')
         continuation = false;
  
      
    }while(continuation);
      
      
    System.exit(-1);
          
    }

}

Merci d'avance pour vos reponses.


Re : equations second degré le 04/06/2008 19:59:08

Kysic
Membre Club
Réponse acceptée !
Salut,
essaie d'ajouter "scan = new Scanner(System.in);" après "System.out.println("Vous devez introduire un nombre");" je pense que ça devrait résoudre le pb.

Re : equations second degré le 05/06/2008 01:40:28

Ombitious_Developper
Réponse acceptée !
Salut:

J'ai compilé ton programme chez moi, il marche sans aucun problème sauf si il ne donne pas les résultats attendus.

import static java.lang.Math.*;

if (delta > 0) {
    // deux racine réelles R
    x = (-b + sqrt(delta))/2*a;
    y = (-b - sqrt(delta))/2*a;
} else if (delta == 0) {
    // Une racine double
    x = -b/(2*a);
} else {
    // Solution dans l'ensembe C
    delta = -delta;
     re = (-b + sqrt(delta))/2*a;
     im = (-b - sqrt(delta))/2*a;
}



Re : equations second degré le 06/06/2008 02:29:25

usef01
merci ça marche effectivement


Classé sous : system, out, println, scan, delta

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS