Algorithme " return plusieurs valeur"

Résolu/Fermé
Jiko-java
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
- 2 févr. 2017 à 22:07
Whismeril
Messages postés
17461
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
26 juin 2022
- 3 févr. 2017 à 18:13
Bonjour, voilà j'essaie de codé un programme qui a pour objectif de trouver les solutions d'une équation du second degré , Cependant lorsque l’équation possède 2 racines je n'arrive pas a renvoyer les 2 valeurs Voici mon code :
public class Delta{
  public static java.util.Scanner scanner = new java.util.Scanner(System.in);
  public static void main(String[]args){

  System.out.println("Veuillez entré une valeur pour la variable a ");
   int a = scanner.nextInt();
  System.out.println("Veuillez entré une valeur pour la variable b ");
   int b = scanner.nextInt();
  System.out.println("Veuillez entré une valeur poour le terme indépendant (c)");
   int c = scanner.nextInt();
   
  System.out.println("Voici votre équation " + a +"x²" + "+" + b +"x" + "+" + c + " = 0");
  
  double solution = calculDelta( a , b , c );
  
  System.out.println("Voici la solition de votre équation " + solution);
  
 }
 
 
 public static double calculDelta( int a , int b , int c){
 
 int delta = (b*b) - 4*a*c;
 
   if(delta < 0) 
     System.out.println("Cette equation ne possède pas de solution");
     
   else if( delta == 0 ){
     System.out.println("Votre equation possède une solution");
     double x = (-b)/a;
    return x;
   }
   
   else{
     System.out.println("cette équation possède 2 solution");
     double racineDelta = Math.sqrt(delta);
     double x1 = (-b + racineDelta)/2*a;
     double x2 = (-b - racineDelta)/2*a;
     return x1;
     return x2;
     
    }

}

}


Merci d'avance.

1 réponse

jordane45
Messages postés
35714
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2022
4 193
2 févr. 2017 à 22:21
Bonjour,

Une fonction s'arrête au premier "return".
Une solution est de stocker le résultat dans un ARRAY ... et de faire un RETURN de cet array.


0
Jiko-java
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017

3 févr. 2017 à 03:05
D'accord Merci n'étant pas encore a l'aise avec les tableaux , je ne sais pas comment l'utilisé mais j'ai trouver un moyen pour affiché mes racines , cependant un autre point n'est pas résolu pas exemple lorsque je prends l’équation suivante 4x²+4x+1 = 0 cette équation a une racine qui est -4/8 soit -1/2 . cependant je comprend pas pourquoi mon compilateur affiche 0.0 voici mon instruction:

if(delta == 0){
System.out.println("Cette equation possède une racine");
double x = -b/(2*a);
System.out.println("Voici la solution :" + x);
}
0
Whismeril
Messages postés
17461
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
26 juin 2022
837
3 févr. 2017 à 06:58
Bonjour

dans de nombreux langages, quand on divise deux entiers, on obtient le résultat de la division entière 1 / 2 = 0 reste 1.
Si tu veut obtenir 0,5, il te suffit que l'un des 2 membres soit un nombre décimal (float, double, etc...)

-b / (2.0 * a)
devrait fonctionner.
0
Jiko-java
Messages postés
186
Date d'inscription
dimanche 25 septembre 2016
Statut
Membre
Dernière intervention
22 juillet 2017
> Whismeril
Messages postés
17461
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
26 juin 2022

3 févr. 2017 à 17:51
Super sa fonctionne Merci ! :)
0
Whismeril
Messages postés
17461
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
26 juin 2022
837
3 févr. 2017 à 18:13
Pense à passer le sujet résolu.
0