Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de programmation d'une fonction

Sujet résolu
    12 novembre 2019 à 17:57:16

    Voici l'énoncé:

    "Ecrire une fonction moyenne qui prend en paramètre un tableau de réels (float) et retourne la moyenne des valeurs contenues dans celui-ci. 

    Par exemple, si on passe en paramètre {1.5f, 3f, 4.5f}, la fonction retournera 3.0f."

    *(fun est le nom de mon tableau)*

    Quand je propose à Java le code suivant, il m'affiche "Missing return statement":

    float moyenne (float[] fun){
        int taille=fun.length;
        for (int i = 0‌‍‌‍; taille>i; i++){
        float x=fun[i];
        return (x/(taille-1));
        }
    }

    Je propose ensuite ceci:

    float moyenne (float[] fun){
        int taille=fun.length;
        for (int i =‌‍‌‍ 0; taille>i; i++){
        float x=fun[i];
        }
    return (x/(taille-1));
    }

    Il m'affiche que x n'est pas initialisé. Il me semble pourtant que tant qu'on initialise une variable à l'intérieur d'une fonction, elle est réutilisable… De plus, je ne vois pas pourquoi il faudrait utiliser 2 return, ca n'a pas de sens...

    Si vous savez quelle est l'erreur, je vous saurais gré de me le dire!

    • Partager sur Facebook
    • Partager sur Twitter
      12 novembre 2019 à 19:09:58

      Hello...

      une variable est utilisable seulement dans son contexte...

      De plus, comment tu définirais une moyenne ?

      Vois-tu dans ton code ne serais-ce juste une addition? car moi j'en vois pas

      Je te laisse ça ici:

      public static double sum(double[] pDoubleArray)
      {
          double lRet=0;
          int lLength = pDoubleArray.length;
          for(int i=0;i<lLength;i++)
          {
              lRet+=pDoubleArray[i];
          }
          return lRet;
      }





      • Partager sur Facebook
      • Partager sur Twitter
      Un petit étudiant chinois perdu ^^'
        13 novembre 2019 à 10:27:53

        Bonjour,

        Déjà j'avoue que reprendre les bases et revoir ce qu'est une moyenne, ca serait pas du luxe...

        Ensuite, oui une variable ne peut être utilisé que dans son contexte.

        Si tu déclares une variable dans une classe, elle sera utilisable dans la classe. Si tu la déclares dans une méthode, elle sera utilisable que dans ta méthode.

        Si tu l'a déclare dans une itération d'une boucle for, elle sera utilisable quand dans ton itération.

        Cas 1 :

        float moyenne (float[] fun){
            int taille=fun.length;
            for (int i = 0‌‍‌‍; taille>i; i++){
               float x=fun[i];
               return (x/(taille-1));
            }
            //Imagine que ton tableau fun fasse 0 de longueur. Que se passe--il ?
            //Et bien tu ne rentres pas dans ta boucle, donc tu te retrouves ici dans le code, et ici, il n'y a pas de return.
        }

        Cas 2 :

        float moyenne (float[] fun){
            int taille=fun.length;
            for (int i =‌‍‌‍ 0; taille>i; i++){
               float x=fun[i];
               //Ici, x existe.
            }
            //Ici, x n'existe plus.
            return (x/(taille-1));
        }


        Mais ca c'est sans parler du fait que ce n'est pas du tout une moyenne que tu calcules ici.

        -
        Edité par Tiffado 13 novembre 2019 à 10:28:55

        • Partager sur Facebook
        • Partager sur Twitter

        Problème de programmation d'une fonction

        × 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