Probleme d'equation de 2eme degré en java

Résolu/Fermé
Y.chakir - 13 oct. 2008 à 22:28
 gaetan - 20 avril 2010 à 20:06
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
A voir également:

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
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
13 oct. 2008 à 22:48
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()
3
sniperr_2006
15 nov. 2008 à 02:19
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 );

}

}
--------------------------------------------------------------------------------------------------------------
3
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
15 nov. 2008 à 14:41
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".
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 nov. 2008 à 15:21
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
1
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 328
15 nov. 2008 à 20:04
+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,
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009
15 nov. 2008 à 22:11
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour ;
c'était mon programme j'ai le vérifié ; et il déroule très bien et merci .
MAXFARES
en java (MS-DOS)
1
mérci b1
0
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);
}
1