Partage
  • Partager sur Facebook
  • Partager sur Twitter

récupérer value d'un méthode dans l'autre méthode

    23 juillet 2016 à 17:54:06

    bonjour

    comme j'avais dit, j'aimerai bien récupérai value de x1 et x2 de la méthode test et servir dans la méthode verif;

    quelqu'un peut m'aider svp?

    car la méthode verif récupère pas les valeurs de la méthode test

    donc x1 et x2 reste toujours 0 dans la méthode verif

    import java.util.Scanner;
    public class Calcul2emedegre 
    {
    	public static void main(String[] args) 
    	{
    		  Scanner sc=new Scanner(System.in);
    		  System.out.print("Entrez la valeur du a :");
    		  double a=sc.nextInt();
    		  System.out.print("Entrez la valeur du b :");
    		  double b=sc.nextInt();
    		  System.out.print("Entrez la valeur du c :");
    		  double c=sc.nextInt();
    		  System.out.print("Entrez la valeur du d : ");
    		  double d=sc.nextDouble();
    		  double x1=0;
    		  double x2=0;
    		  double delta = 0;
    		 
    		  if(a==0)	
    			{
    			   System.out.println("équation du premier degré");
    			}
    			else
    			{
    			   delta =b*b-4*a*c;
    			   System.out.println("\nvaleur du delta est : "+delta);
    			}
    		  test(a,b,c,d,delta);
    		  verif(x1,x2,c,delta,d);
    	}
         private static void test(double a, double b, double c, double d,double delta)
    		{
    			if(delta>0)
    			{
    			   System.out.println("\nLes solutions de l'équation sont");
    			  double x1=(-b-Math.sqrt(delta))/(2*a);
    			   double x2=(-b+Math.sqrt(delta))/(2*a);
    			   System.out.println("Valeur du x1 est : "+x1);
    			   System.out.println("Valeur du x2 est : "+x2);
    			}
    			else
    			{
    			   if(delta==0)
    			   {
    		             System.out.println(-b/(2*a));
    			   }
    			   else
    			   {
    			       System.out.println("Pas de solutions réelles");
    			   }
    			}
    		}	
    			 private static void verif(double x1, double x2, double c,double delta,double d) 
    			 {
    				double test1=0;
    				double test2=0;
    				test1=((x1*x1)+(x1)-(c));
    				test2=((x2*x2)+(x2)-(c));
    			   
    				if(test1==d && test2==d)
    			    {
    			    	System.out.println("Après control x1 : "+test1+" et x2 : "+test2);
    					System.out.println("x1 et x2 sont juste : ");
    			    }
    				else
    				{
    					System.out.println("Calcul est faux");
    				}
    	   }
        }
    
    

    merci d'avance

    -
    Edité par domxaline 23 juillet 2016 à 17:55:41

    • Partager sur Facebook
    • Partager sur Twitter
      23 juillet 2016 à 18:15:27

      Hello,

      A moins d'appeler ta méthode verif depuis ta méthode test, je pense que c'est impossible.

      Bonus : tu crées tes variables dans ta fonction test, leur portée est donc cette fonction, ces variables sont détruites à la fin de la fonction

      • Partager sur Facebook
      • Partager sur Twitter
        23 juillet 2016 à 18:26:55

        j'ai essayé la méthode verif comme ceci:

         private static void verif(double x1, double x2, double a, double b,double c,double d,double delta) 
        			 {
        				double test1=0;
        				double test2=0;
        				x1=(-b-Math.sqrt(delta))/(2*a);
        				 x2=(-b+Math.sqrt(delta))/(2*a);
        				 test1=(x1*x1+x1-(c));
        				//test1=(((x1)*(x1))+(x1)-(c));
        				test2=((x2*x2)+(x2)-(c));
        			   
        				if(test1==d && test2==d)
        			    {
        			    	System.out.println("Après control x1 : "+test1+" et x2 : "+test2);
        					System.out.println("x1 et x2 sont juste : ");
        			    }
        				else
        				{
        					System.out.println("Calcul est faux");
        				}
        	   }

        la formule de vérification est:

        (x1)²+(x1)-6=0

        (x2)²+(x2)-6=0

        mais la méthode vérif se trouve

        test1 vaut 12

        test2 vaut aussi 12 normalement le test1 et test2 doit avoir 0

        où est ce que je fais erreur? dites moi svp

        • Partager sur Facebook
        • Partager sur Twitter
          23 juillet 2016 à 18:34:25

          Pour commencer, tu donnes à ta fonction les variables x1 et x2 sans les utiliser, tu leur affectes même de nouvelles valeurs

          Quelles paramètres donnes-tu à ta fonction verif?

          -
          Edité par ukusan 23 juillet 2016 à 19:10:26

          • Partager sur Facebook
          • Partager sur Twitter
            23 juillet 2016 à 18:50:32

            j'ai modifié mon méthode verif regardez méthode

            private static void verif(double a, double b,double c,double d,double delta) 
            			 {
            				double test1=0;
            				double test2=0;
            				double x1=(-b-Math.sqrt(delta))/(2*a);
            				double  x2=(-b+Math.sqrt(delta))/(2*a);
            				//test1=((x1)*(x1));
            				//System.out.println("-3*-3="+test1);
            				//double test3=0;
            				//test3=(test1)+(x1);
            				//System.out.println(test3);
            				//double test4=test3-c;
            				//System.out.println(test4);
            				 
            				test1=(((x1)*(x1))+(x1)-(c));
            				test2=((x2*x2)+(x2)-(c));
            			   
            				if(test1==d && test2==d)
            			    {
            			    	System.out.println("Après control x1 : "+test1+" et x2 : "+test2);
            					System.out.println("x1 et x2 sont juste : ");
            			    }
            				else
            				{
            					System.out.println("Calcul est faux");
            				}
            	   }
            //mais il prend pas en compte la signe -
            //veut dire -3 *-3 =9 + -3 = 6
            //et là commence le problème
            //6-6 fait 0 mais ma méthode donne valeur 12 !!!!

            -
            Edité par domxaline 23 juillet 2016 à 19:18:10

            • Partager sur Facebook
            • Partager sur Twitter
              23 juillet 2016 à 19:14:43

              (-3)*(-3) = 9

              Désolé de t'apprendre cette douloureuse nouvelle

              Edition: merci d'avoir éditer ton message pour que mon commentaire n'ai plus de sens

              -
              Edité par ukusan 25 juillet 2016 à 7:52:28

              • Partager sur Facebook
              • Partager sur Twitter
                24 juillet 2016 à 20:46:51

                bonsoir

                vous avez lu programme jusqu'à la fin; regardez la dernière ligne que j'avais écrit

                -3 *-3 =9 + -3 = 6

                et là commence le problème 6-6 fait 0 mais ma méthode donne valeur 12 !!!!

                • Partager sur Facebook
                • Partager sur Twitter
                  24 juillet 2016 à 22:50:06

                  Peut être qu'avec des parenthèses le résultat serait mieux non ? C'est comme une calculatrice si il n'y a pas de parenthèses.

                  delta = ( b*b ) - (4*a*c);

                  Voici les résultats de ton calcul :
                  delta = 1² - (4 * 1 * (-6)) = 25

                  Solutions :
                  x1 = -1 - 5 / 2 = -3
                  x2 = -1 + 5 / 2 = 2

                  Vérif :
                  3² - 3 - 6 = 0
                  2² + 2 - 6 = 0

                  Ton bug est au niveau de là :
                  test2=((x2*x2)+(x2)-(c));

                  Tu fais -c au lieu de +c car dans ton programme tu vas rentrer la valeur négative et - - = + d'où ton écart.
                  Il me semble que <br> est une balise en HTML, je ne suis pas un expert en Java après.

                  En plus ton programme n'est pas vraiment bon sur la vérification, ça fonctionne que si a = 1 et b = 1, tu as oublié de faire a *x1² et b*x2.

                  Après pour répondre à ton sujet, pour récupérer une valeur, tu as plusieurs solutions, soit tu fais une variable globale, soit tu utilises un tableau en paramètre dans tes fonctions.

                  -
                  Edité par XTZ95 24 juillet 2016 à 23:11:21

                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 juillet 2016 à 7:56:43

                    XTZ95 a écrit:

                    Après pour répondre à ton sujet, pour récupérer une valeur, tu as plusieurs solutions, soit tu fais une variable globale, soit tu utilises un tableau en paramètre dans tes fonctions.

                    -
                    Edité par XTZ95 il y a environ 8 heures

                    Les variables globales sont déconseillées. Le retour d'un tableau pour est moins barbare. Je pense surtout qu'il doit appeler verif() depuis test() (après, c'est qu'un petit programme pour débuter, pas besoin de se mettre la pression)
                    a

                    A la limite, tu peux vérifier ton calcul par étape pour faire du debug

                    affiche x1

                    affiche son carré

                    affiche son carré + x1

                    affiche son carré +x1 - delta

                    et ça pour x2

                    tu verra bien où sa bloque

                    -
                    Edité par ukusan 25 juillet 2016 à 8:00:36

                    • Partager sur Facebook
                    • Partager sur Twitter
                      25 juillet 2016 à 12:32:43

                      voilà j'ai écris mon prg, ça marche, s'il y a des commentaire dites mois svp

                      import java.util.Scanner;
                      public class Calcul2emedegre1 
                      {
                      	public static void main(String[] args) 
                      	{
                      		char reponse='o'; 
                      		do
                      		{
                      		Scanner sc=new Scanner(System.in);
                      		  System.out.print("Entrez la valeur du a :");
                      		  double a=sc.nextInt();
                      		  System.out.print("Entrez la valeur du b :");
                      		  double b=sc.nextInt();
                      		  System.out.print("Entrez la valeur du c :");
                      		  double c=sc.nextInt();
                      		  System.out.print("Entrez la valeur du d : ");
                      		  double d=sc.nextDouble();
                      		  double x1=0;
                      		  double x2=0;
                      		  delt(a,b,c,d);
                      		  System.out.print("\nVoulez vous ressayer (o/n) :");
                      		  Scanner sc1=new Scanner(System.in);
                      		  reponse=sc1.nextLine().charAt(0);
                      	    }
                      		while(reponse=='o');
                      		System.out.println("Au revoir...");
                      		System.out.println("\n");
                      	}
                           private static void delt(double a, double b, double c, double d)
                           {
                          	 double delta = 0;
                      		  if(a==0)	
                      			{
                      			   System.out.println("équation du premier degré");
                      			}
                      			else
                      			{
                      			   delta =b*b-4*a*c;
                      			   System.out.println("\nValeur du delta est : "+delta);
                      			}
                      		  test(a,b,c,d,delta);
                      	}
                      	private static void test(double a, double b, double c, double d,double delta)
                      		{
                      			if(delta>0)
                      			{
                      			   System.out.println("\nLes solutions de l'équation sont");
                      			   double x1=(-b-Math.sqrt(delta))/(2*a);
                      			   double x2=(-b+Math.sqrt(delta))/(2*a);
                      			   System.out.println("Valeur du x1 est : "+x1);
                      			   System.out.println("Valeur du x2 est : "+x2);
                      			}
                      			else
                      			{
                      			   if(delta==0)
                      			   {
                      		          System.out.println("La résultat du calcul est : "+-b/(2*a));
                      			   }
                      			   else
                      			   {
                      			      //System.out.println("Pas de solutions réelles");
                      			   }
                      			}
                      			verif(a,b,c,d,delta);
                      		}	
                                   private static void verif(double a, double b,double c,double d,double delta) 
                      			 {
                      				 double test1=0;
                      				double test2=0;
                      				if(delta>0)
                      				{
                      					if(test1==d)
                      					   {
                      						   System.out.println("\nAprès la vérification pour x1, d est égale à : "+test1);
                      						   System.out.println("La calcul du x1  est juste:");
                      						   if(test2==d)
                      						   {
                      							   System.out.println("\nAprès la vérification pour x2, d est égale à : "+test2);
                      							   System.out.println("La calcul du x2, est juste:");
                      						   }
                      					   }
                      					   else
                      					   {
                      						   System.out.println("La calcul est fausse :x1 "+test1 +"est");
                      						   System.out.println("x1 est : "+test1);
                      						   System.out.println("x2 est:"+test2);
                      					   }	
                      			        }
                      				else
                      				{
                      					if(delta==0)
                      					{
                      						System.out.println("\nEquation est premier dégré, la valeur de delta est :"+delta);
                      					}
                      					else
                      					{
                      						System.out.println("\nPas de solution ");
                      						System.out.println("La valeur de delta est :"+delta);
                      					}
                      				}
                      			}	   
                          }
                      

                      merci d'avance

                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 juillet 2016 à 13:43:38

                        Je parie pour une division par 0 si a=0 (ligne 57)

                        x1 et x2 dans ton main ne servent à rien

                        -
                        Edité par ukusan 25 juillet 2016 à 13:43:48

                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 juillet 2016 à 18:47:43

                          pour

                          "x1 et x2 dans ton main ne servent à rien"

                          je vais l'enlever

                          ok, merci beaucoup

                          • Partager sur Facebook
                          • Partager sur Twitter

                          récupérer value d'un méthode dans l'autre méthode

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown