Probleme d'equation de 2eme degré en java [Résolu/Fermé]

Signaler
-
 gaetan -
bonsoir svp repondez moi je veux faire un programme qui resoudre uen equation de 2 eme degré en java quand j ecris
float x1=(-b-(sqrt(delta)))/(2*a) et je compile le programme ils m ont dit cannot find symbole method sqrt(float)
aidez moi svp ke ce ke je vé faire je pense ke je doit remplacer sqrt par ke le ke chose
merci d avance

6 réponses

public class equation
{ public static void main (String[] args)
{double a,b,c,x,x1,x2,det,z,z2,re,im,i;
System.out.println ("calcule des racines de l'equation du 2eme degré");
for(i=0;i<7;i++)
{

{System.out.print("donnez la valeur de a:");
a=Clavier.lireDouble ();
System.out.print("donnez la valeur de b:");
b=Clavier.lireDouble ();
System.out.print("donnez la valeur de c:");
c=Clavier.lireDouble ();
if (a==0)
{if(b==0)
{if(c==0)
System.out.println("infinité de solutions");
else
System.out.println("pas de solutions");
}
else
{x=-c/b;
System.out.println("la solution est:" +x);
}}
else
{det=(b*b)-(4*a*c);
z=Math.sqrt(det);
if(det>0)
{x1=(-b-z)/(2*a);
x2=(-b+z)/(2*a);
System.out.println("les 2 solutions reeles sont:");
System.out.println("x1=" +x1);
System.out.println("x2=" +x2);
}
if(det==0)
{x=-b/(2*a);
System.out.println("la solution double est:" +x);
}
if(det<0)
{z2=Math.sqrt(-det);
re=-b/(2*a);
im=z2/(2*a);
System.out.println("les 2 solutions complexes sont:");
System.out.println("x1=" +re+"+i"+im);
System.out.println("x2=" +re+"-i"+im);
}
}
}
}
}
}
20
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
804
Il y a longtemps que je n'ai pas touché au Java mais si je me souviens bien pour la racine carré c'est qqch comme Math.sqrt()

c p 1 problemme de faire resoudre le problemme d'equation de 2eme degrè MR ...
un peut d'effort et tu trouve la solutio ...

alors voila la solution mai la prochaine fois il faut que tu travaillllll.....e touts seuuuuuuuuuuuuuuule

-------------------------------------------------------------------------------------------------------------------------
import javax.swing.JOptionPane;
public class Equation {

public static void main ( String args [] )
{


String A;
String B;
String C;
double x1;
double x2;
int a;
int b;
int c;
double discriminant;

A = JOptionPane.showInputDialog ( " Entrer la valeur A " );
B = JOptionPane.showInputDialog ( " Entrer la valeur B " );
C = JOptionPane.showInputDialog ( " Entrer la valeur C " );

a = Integer.parseInt ( A );
b = Integer.parseInt ( B );
c = Integer.parseInt ( C );

discriminant = b * b - 4 * a * c;

x1 = b * ( discriminant / 2 ) / ( 2 * a );

x2 = - b * ( discriminant / 2 ) / ( 2 * a );


JOptionPane.showMessageDialog ( null,
" x1 vaut:" + x1,
" x2 vaut:" + x2,
JOptionPane.PLAIN_MESSAGE );

System.exit ( 0 );

}

}
--------------------------------------------------------------------------------------------------------------
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
804
Ce n'est pas la solution mais une solution ... on peut le faire de plein de manière différente, tu en présentes une.

Je chipote sur les mots mais un chat est un chat, "la" n'est pas "une".
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 705
Salut,
Je dirais même plus que ce n'est même pas une solution, ^^ car sa formule est fausse.
Voici une solution fait à la va-vite. Mais l'essentiel est là : l'utilisation de Math.sqrt.

public class Rac{
    public static void main(String args[]){
        float a=1;
        float b=2;
        float c=-15;

        float delta=b*b-4*a*c;
        System.out.println("x1="+(-b+Math.sqrt(delta))/(2*a));
        System.out.println("x2="+(-b-Math.sqrt(delta))/(2*a));
    }
}

Cdlt
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009
325
+1 pour Fiddy.
Cependant ton programme fonctionne pour des valeurs de delta positives (comme c'est le cas avec ton exemple).

Pour que le programme soit totalement correct, il faut vérifier que delta est strictement positif et faire ces traitements, ou vérifier que delta est nul et retourner la racine double, ou enfin vérifier que delta est strictement négatif et retourner les 2 racines complexes.

Cependant Y.chakir, tu as maintenant toutes les informations te permettant d'écrire ton programme vu que Fiddy t'a indiqué la méthode Math.sqrt().

Cordialement,
Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 705 >
Messages postés
996
Date d'inscription
vendredi 9 mai 2008
Statut
Contributeur
Dernière intervention
5 novembre 2009

et +1 avec Marco la Baraque :d
Et je rajouterais que j'ai oublié également de traiter le cas où a=0. Ce qui nous ramène à une simple équation du premier degré.
Maintenant, t'as tous les éléments pour finir le programme ;)
Cdlt
Bonjour ;
c'était mon programme j'ai le vérifié ; et il déroule très bien et merci .
MAXFARES
en java (MS-DOS)
Public class Equation {
Public static void main (string [] args) {
Double a, b, c, xo, x1, x2, x3, x4, delta;
Terminal.écrireStringln(" Entrer les réels non nuls a, b et c : ");
a=Terminal.lireDouble();
b=Terminal.lireDouble();
c=Terminal.lireDouble();
delta=b*b-4*a*c;
if(delta>0) {
x1=(-b-sqrt(delta))/2*a , x2=(-b+sqrt(delta))/2*a ;
Terminal.ecrireStringln(" les deux solutions réelles sont:" )
Terminal.ecrireStringln("x1="+x1);
Terminal.ecrireStringln("x2="+x2);
}else if (delta==0){
xo=-b/2*a ;
Terminal.ecrireSringln(" la solution double est:" xo);
}else {
x3=(-b/2*a , (-sqrt(-delta))/2*a ) ;
x4=(-b/2*a , (-sqrt(-delta))/2*a );
Terminal.ecrireStingln(" les deux solutions complexes conjuguées sont:");
Terminal.ecrireStingln("x3="+x3);
Terminal.ecrireStingln("x4="+x4);
}