Équation du second degré en java dans NetBeans

Résolu/Fermé
Charlie.Opti - Modifié par KX le 13/01/2015 à 20:52
 Charlie.Opti - 14 janv. 2015 à 22:50
Bonjour,

J'ai réalisé ce programme mais à la fin il ne trouve pas les bonnes réponses.
J'aimerai savoir si j'ai fait une erreur :

import java.util.Scanner;

public class Equationseconddegré {

    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        
        double a,b,c;
            System.out.println("résolution de ax²+bx+c");
            System.out.println("saisir a");
                a=sc.nextDouble();
            System.out.println("saisir b");
                b=sc.nextDouble();
            System.out.println("saisir c");
                c=sc.nextDouble();
                    
        double dt,x1,x2;
        
        dt=(b*b)-(4*a*c);
        
            if (dt<0){
                System.out.println("l'équation n'a pas de solution");
            }
            if (dt==0){
                x1=(-b)/2*a;
                System.out.println("l'équation a une solution :" + x1);
            }
            if (dt>0){
                x1=(-b-Math.sqrt(dt))/2*a;
                x2=(-b+Math.sqrt(dt))/2*a;
                System.out.println("l'équation a deux solution :");
                System.out.println("x1 =" + x1);
                System.out.println("x2 =" + x2);
            } 

    }  
}

Merci pour vos réponses

A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
13 janv. 2015 à 20:57
Bonjour,

Tu fais
/2*a;
alors qu'il faudrait faire
/(2*a);
pour avoir le bon résultat.

Remarque : si dt<0 il y a des résultats complexes.
0
Charlie.Opti
14 janv. 2015 à 16:21
Merci, j'ai corrigé mais quand je rentre par exemple a=4; b=8; c=-5; en sortie il m'affiche x1= -40 et x2=8 alors que par mes calculs je trouve x1=-5/2 et x2=1/2.

Je ne vois pas comment il trouve ses résultats.

Merci aussi pour ta remarque.
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
14 janv. 2015 à 19:40
Si tu obtiens -40 et 8 c'est que tu n'as pas modfié ton code, tu as toujours
/2*a;
alors que si tu avais
/(2*a)
tu aurais bien -2.5 et 0.5 comme attendu.
0
Charlie.Opti > KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024
14 janv. 2015 à 22:50
OK j'ai testé sur un autre ordi et ça a marché.
Merci encore
0