Erreur étrange, aidez-moi à comprendre svp!
Charyb
-
Utilisateur anonyme -
Utilisateur anonyme -
aidez-moi à comprendre svp!
L'énoncé:
On vous fournit fournit trois variables réelles (float) a, b, et c, représentant les coefficients d'une équation du second degré : a x² + b x + c = 0.
Vous devez calculer les racines du polynôme :
si il n'y en a pas, vous affichez "pas de racine"
si il en a une, vous l'afficherez
si il y en a deux, vous afficherez les deux, la plus petite en premier
Toutes les valeurs doivent être affichées avec 3 décimales.
Vous avez a votre disposition les fonctions:
-void affiche(String c), qui affiche la chaine de caractères passée en paramètre.
-void afficheReel(float f), qui affiche le réel passé en paramètre.
-void afficheReels(float f, float f2), qui affiche les réels passés en paramètres, l'un après l'autre.
-float sqrt(float x), qui retourne la racine carrée de la valeur passée en paramètre.
Mon programme:
Pas d'erreur de compil. En fait, quand le discriminant est positif, cela m'affiche: "Sortie console
-0.750-1.000 -0.500" au lieu de "Sortie attendue -1.000 -0.500". De plus, j'ai essayé sans les 2 dernières lignes, et cela m'affiche -0,750. Ce qui signifie que l'erreur vient du 2e paragraphe. Mais la, le discriminant est égal à 0. Il est pas supérieur. Est-ce que Java considère que 0>0 ou que (-1*0)>0?? Car j'en ai bien l'impression.
L'énoncé:
On vous fournit fournit trois variables réelles (float) a, b, et c, représentant les coefficients d'une équation du second degré : a x² + b x + c = 0.
Vous devez calculer les racines du polynôme :
si il n'y en a pas, vous affichez "pas de racine"
si il en a une, vous l'afficherez
si il y en a deux, vous afficherez les deux, la plus petite en premier
Toutes les valeurs doivent être affichées avec 3 décimales.
Vous avez a votre disposition les fonctions:
-void affiche(String c), qui affiche la chaine de caractères passée en paramètre.
-void afficheReel(float f), qui affiche le réel passé en paramètre.
-void afficheReels(float f, float f2), qui affiche les réels passés en paramètres, l'un après l'autre.
-float sqrt(float x), qui retourne la racine carrée de la valeur passée en paramètre.
Mon programme:
if ((b*b - 4*a*c)<0) affiche ("pas de racine"); if ((b*b - 4*a*c) == 0 && (-b/(2*a)) == (-1*0)) afficheReel((-b/(2*a)) *-1); else afficheReel((-b/(2*a)) *1); if ((b*b - 4*a*c)>0) afficheReels ((-b-sqrt(b*b - 4*a*c))/(2*a) , (-b+sqrt(b*b - 4*a*c))/(2*a));
Pas d'erreur de compil. En fait, quand le discriminant est positif, cela m'affiche: "Sortie console
-0.750-1.000 -0.500" au lieu de "Sortie attendue -1.000 -0.500". De plus, j'ai essayé sans les 2 dernières lignes, et cela m'affiche -0,750. Ce qui signifie que l'erreur vient du 2e paragraphe. Mais la, le discriminant est égal à 0. Il est pas supérieur. Est-ce que Java considère que 0>0 ou que (-1*0)>0?? Car j'en ai bien l'impression.
A voir également:
- Erreur étrange, aidez-moi à comprendre svp!
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
1 réponse
Bonsoir
déroulons ton code (voir les commentaires)
Tu aurais pu trouver cela par toi même en exécutant ton code en pas à pas pour observer ce qu'il se passe.
Apprendre à coder passe par apprendre à débugger.
https://forums.commentcamarche.net/forum/oldest/2228552-eclipse-execution-pas-a-pas
déroulons ton code (voir les commentaires)
if ((b*b - 4*a*c)<0)//ça n'est pas le cas, alors on n'affiche pas "pas de racine" affiche ("pas de racine"); if ((b*b - 4*a*c) == 0 && (-b/(2*a)) == (-1*0))//ça n'est pas le cas, donc on n'affiche pas non plus (-b/(2*a)) *-1 afficheReel((-b/(2*a)) *-1); else //mais comme il y a un esle, on affiche (-b/(2*a)) *1 afficheReel((-b/(2*a)) *1); if ((b*b - 4*a*c)>0)// c'est le cas, donc àn affiche les 2 racines afficheReels ((-b-sqrt(b*b - 4*a*c))/(2*a) , (-b+sqrt(b*b - 4*a*c))/(2*a));
Tu aurais pu trouver cela par toi même en exécutant ton code en pas à pas pour observer ce qu'il se passe.
Apprendre à coder passe par apprendre à débugger.
https://forums.commentcamarche.net/forum/oldest/2228552-eclipse-execution-pas-a-pas