Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] probleme avec return

Sujet résolu
    2 novembre 2006 à 19:11:59

    salut,
    j'aimerai afficher toutes les valeurs de a0 et u de la methode getA() mais seulement avec le return ca me donne une seule valeur qui est la derniere. Ce qui n'est que très normal. J'ai essayé de déclarer la methode avec un type void pour ne pas avoir à retouner une valeur à la fonction mais ca ne m'affiche rien du tout. Comment faire dans ce cas pour afficher les valeurs de a0 et u ?
    merci d'avance.
    Voilà le code


    class Inverse extends Alg
    {
    private int a,a0,b,n,u,i, d;//d=gcd
    public  Inverse(int a,int b, int n)
    {
    super ((int) a,(int) b);//appel du constructeur de la classe sup

    }



    int getA()
    {
    n=b;

    d=getGcd();


    if((d==1)||(a*u==1%n))
           
    {
    for(i=1; i<n ;i++)
    {
    u=(1%n)/i;
    a0=i;
    System.out.println(" a= "+a0+ "inverse de a= "+u );

    }
    }

    else
    {
    System.out.println(" PCD(A,B)>1 ou PDC=0 n'a pas d' element inverse  dans Z"  )
    }
    return a0;
    }


    }

    class compute
    {
            public static void main(String args[])throws IOException
        {
            class computeEuclAlg
    {
    public static void main(String args[])throws IOException
    {
    char encore;
    int x, y, gcd,a,b,n=0,u;

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

    do
    {
    System.out.println("tapez A : ");
    a = Integer.parseInt(in.readLine());
    System.out.println("tapez B : ");
    b = Integer.parseInt(in.readLine());

    Inverse Residue = new Inverse( a,b, n);

    System.out.println("==============================================\n");


    Residue.getA();


    System.out.println(" voulez vous continuer y/n? ");
    encore=in.readLine().charAt(0);

    }while(encore!='n');


                   
            }
    }



    • Partager sur Facebook
    • Partager sur Twitter
      2 novembre 2006 à 19:42:26

      return ne peux retourner qu'une seule valeur !!!
      utilies les tableaux/listes
      • Partager sur Facebook
      • Partager sur Twitter
        2 novembre 2006 à 21:39:16

        quand j'utilise les tableaux comme suit, ca me renvoie les erreurs suivantes:
        **********
        java:89: cannot resolve symbol

        symbol : variable bit

        tab[a0]=bit[i];

        ^



        java:75: cannot resolve symbol

        symbol : variable bit


        bit= new short[index];

        ^




        tab= new short[index];

        ^

        symbol : variable bitwerte1


        return tab[a0];

        ^


        ***********


        class Inverse extends Alg
        {
        //ici je declare les tableaux
        private int a,a0,b,n,u,i, d, index;//d=gcd
        int[] bit;
        int [] tab;

        public  Inverse(int a,int b, int n)
        {
        super ((int) a,(int) b);//appel du constructeur de la classe sup

        }



        int getA()
        {
        //ici je les initialise
        bit= new int[index];
        tab= new int[index];
        n=b;
        bit.length =n;

        d=getGcd();


        if((d==1)||(a*u==1%n))
               
        {
        //ici je les utilise
        for(i=1; i<bit.length  ;i++)
        {
        u=(1%n)/i;
        tab[a0]=bit[i];

        System.out.println(" a= "+a0+ "inverse de a= "+u );

        }
        }

        else
        {
        System.out.println(" PCD(A,B)>1 ou PDC=0 n'a pas d' element inverse  dans Z"  );
        }
        return tab[a0];
        }


        }

        class compute
        {
                public static void main(String args[])throws IOException
            {
                class computeEuclAlg
        {
        public static void main(String args[])throws IOException
        {
        char encore;
        int x, y, gcd,a,b,n=0,u;

        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

        do
        {
        System.out.println("tapez A : ");
        a = Integer.parseInt(in.readLine());
        System.out.println("tapez B : ");
        b = Integer.parseInt(in.readLine());

        Inverse Residue = new Inverse( a,b, n);

        System.out.println("==============================================\n");


        Residue.getA();


        System.out.println(" voulez vous continuer y/n? ");
        encore=in.readLine().charAt(0);

        }while(encore!='n');


                       
                }
        }





        • Partager sur Facebook
        • Partager sur Twitter
          2 novembre 2006 à 22:00:17

          reprends l'algo (pas le java) depuis le début car tu mélanges tout.
          • Partager sur Facebook
          • Partager sur Twitter
            2 novembre 2006 à 22:12:27

            je ne sais pas de quoi tu parles. Fait un dessin s'il te plait.pourquoi ca ne reconnait pas mes variables pourtant declarés et initialisés
            • Partager sur Facebook
            • Partager sur Twitter
              2 novembre 2006 à 23:47:39

              Pour les array si je me souviens bien il faut import java.util.*;
              • Partager sur Facebook
              • Partager sur Twitter
                3 novembre 2006 à 0:28:02

                je viens de l'ajouter mais ca me renvoie les memes erreurs.
                • Partager sur Facebook
                • Partager sur Twitter
                  4 novembre 2006 à 0:01:22

                  le sujet est resolu.
                  merci pour votre aide.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Java] probleme avec return

                  × 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