CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Java] Equation Second Degré

Jiraiya-08
Jiraiya-08
Niveau 11
01 novembre 2007 à 22:01:34

Salut tout le monde :)

Je dois faire un prog en Java pour l´unif qui résout une equation du second degré, mais apparemment, il est foireux, car les résultat sont FAUX :noel:

Quelqu´un pourrait voir où est le problème s´il vous plait ?? ?

import java.util.Scanner;
public class SecondDegre {
____public static void main(String[] args) {
________Scanner clavier = new Scanner(System.in);

________double a, b, c, delta, x1, x2;

________System.out.println("\n\nDans une equation du second degree de type ax2 + bx + c = 0,");

________System.out.print("\nDonnez la valeur de a : ");
________a = clavier.nextDouble();

________System.out.print("\nDonnez la valeur de b : ");
________b = clavier.nextDouble();

________System.out.print("\nDonnez la valeur de c: ");
________c = clavier.nextDouble();

________delta = (Math.pow(b, 2) - ((4*a)*c));

________if (delta > 0) {
____________x1 = ((-b)+Math.pow(delta, 0.5))/(2*a);
____________x2 = ((-b)-Math.pow(delta, 0.5))/(2*a);
____________System.out.println("\n\nLes racines de l´equation sont :" + x1 + " et " + x2 + " . \n");
________}
________else {
____________if (delta == 0) {
________________x1 = ((-b)/(2*a));
________________System.out.println("\n\nLa seule racine de l´equation est :" + x1 + " . \n");
____________}
____________else
____________System.out.println("\n\nIl n´y a pas de solution a cette equation. \n");
________}
____}
}

De plus, quelqu´un saurait comment faire pour utiliser un switch ici, j´y arrive pas non plus... :honte:

Merci énormément :)

Chaos_Clad
Chaos_Clad
Niveau 10
02 novembre 2007 à 10:00:25

Je ne connais pas le Java mais es-tu sur que Math.pow accepte des flottants comme arguments ? Tu n´as pas, par exemple, Math.sqrt (square root = racine carrée) ?

novembre
novembre
Niveau 18
02 novembre 2007 à 10:08:18

Test de 3 cas possibles :

a = 1 b = 2 c = 1
Obtenu : x=-1
Résultat réel : x=-1

a = 1 b = 7 c =10
Obtenu : x1=-2 x2=-5
Résultat réel : x1=-2 x2=-5

a = 10 b = 1 c = 1
Obtenu : Pas de solution
Résultat réel : Pas de solution

Donc voilà, si tu as obtenu une erreur, vérifie que c´est pas toi qui t´es trompé sinon merci de donner ce cas.

novembre
novembre
Niveau 18
02 novembre 2007 à 10:10:04
  • Chaos_Clad profil

* Posté le 02 novembre 2007 à 10:00:25 avertir modérateur
* Je ne connais pas le Java mais es-tu sur que Math.pow accepte des flottants comme arguments ? Tu n´as pas, par exemple, Math.sqrt (square root = racine carrée) ?

Non pas de soucis de ce coté. Math.pow n´accepte QUE des doubles. :)

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Math.html

Jiraiya-08
Jiraiya-08
Niveau 11
03 novembre 2007 à 00:27:24

Resalut :)

Bon, en faite, il y avait une erreur avec les (()) des x1 et x2... :noel:

Bon, sinon, vous ne verriez pas une manière de le faire avec un Switch, plutot qu´avec des if, else(if, else...) ?? ?

Parce que comme ca ca ne marche pas :

________switch (delta) {
____________case >0: {
________________x1 = ((-b)+Math.pow(delta, 0.5))/(2*a);
________________x2 = ((-b)-Math.pow(delta, 0.5))/(2*a);
________________System.out.println("\n\nLes racines de l´equation ________________sont :" + x1 + " et " + x2 + " . \n");
________________break;
____________}
____________case == 0: {
________________x1 = ((-b)/(2*a));
________________System.out.println("\n\nLa seule racine de ________________l´equation est :" + x1 + " . \n");
________________break;
____________}
____________default:
________________System.out.println("\n\nIl n´y a pas de solution a ________________cette equation. \n");
________________break;
________}
____}
}

Merci...

Chaos_Clad
Chaos_Clad
Niveau 10
03 novembre 2007 à 08:30:16

C´est normal, case ne peut pas être suivi d´expressions booléennes. Ce que tu peux faire c´est mettre l´expression au switch mais tu vas te retrouver avec une instruction conditionnelle de toute façon.

switch(delta = 0) {

case 0 :
if(delta > 0) { ... }
else { ... }
break;

case 1 :
System.out.println("Les solutions sont ...");
break; }

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment