Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C]Les fonctions

pas compris gran chose

Sujet résolu
    12 mars 2006 à 19:12:06

    J'aimerais passé a la deuxième partie du cours de Mateo mais là, je block considérablement sur les fonctions!
    Je n'ai pas tres bien assimiler comment on les creer, comment les presente etc etc...surtout pour les parametres de la fonction et les variales qu'on cree a l'interieur d'elles!
    Merci d'avance pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      12 mars 2006 à 19:28:04

      Citation : hourad

      Je n'ai pas tres bien assimiler comment on les creer, comment les presente etc etc...surtout pour les parametres de la fonction et les variales qu'on cree a l'interieur d'elles!
      Merci d'avance pour votre aide


      Une fonction est une ensemble d'instructions réalisant des traitements de données. On regroupe les traitements dans un bloc

      {
         /* traitements */
      }

      On donne un nom au bloc, avec une paire de parenthèses pour dire "c'est une fonction"

      f()
      {
         /* traitements */
      }

      On précise si il y a des paramètres

      f(int a‚ char *b)
      {
         /* traitements */
      }

      ou non

      f(void)
      {
         /* traitements */
      }

      et enfin, on précise si la fonction renvoie une valeur

      int f(void)
      {
         /* traitements */
      }

      ou non

      void f(void)
      {
         /* traitements */
      }

      Après, on ajoute les traitements... Les détails exacts des fonctions dépendent de ce qu'on veut en faire. En fait, une fonction est un 'mini projet' qui comporte comme il se doit
      • Une phase de spécification (définition du comportement, de l'interface)
      • Une phase de conception (algo)
      • Une phase de codage et de test unitaire

      L'interface de la fonction est sa partie 'visible'. Elle est défini comme suit :
      • Le nom de la fonction permet de l'identifier.
      • Les paramètres d'entrée servent à modifier le traitement en fonction de données extérieures.
      • Les paramètres de sortie servent à indiquer à la fonction où elle doit sortir les résultats.
      • Le type retour indique si la fonciton retourne une valeur et quel est son type.

      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        12 mars 2006 à 19:48:13

        J'avais d'énormes difficultées comme toi avec les fonctions (en PHP cette fois, mais ca change rien) et notamment les paramètres.

        Mais, comment ta réussi à comprendre alors ?

        Je sais plus :( Désolé, mais franchement, je ne me rappelle plus le déclique qui s'est fait.

        Bon, j'ajoute mes explications :


        int main()
        {
          int variableStockantLeNombreRetourne = mafonction (3);
          //variableStockantLeNombreRetourne vaut 8
        }

        int mafonction  (int variablevalant3) //le paramètre vaut 3
        {
          /* contenu ou on se servira sans doute de "variableValant3". On a pas
             transmis se paramètre pour faire joujou...
          */


          int resultat = variablevalant3 + 5
         // Resultat vaut 8
          return resultat; // onreturne résultat‚ c a d 8
        }


        Ca, c'était avec les valeurs. C'est assez simple, non ? On appelle la fonction, avec comme paramètre "3". Le nombre "3" est stockée dans une variable propre à la fonction, nommé variablevalant3. On se sert de cette variable pour faire un traitement, et puis on retourne la valeur. Celle-ci est stockée dans une autre variable. Ce qui est génial, c'est qu'en modifiant juste main, on aura des résultats différents.



        int main()
        {
          int variableStockantLeNombreRetourne = mafonction (4); //on met 4
          //variableStockantLeNombreRetourne vaut 9
        }


        On fait pareil, sauf qu'on met des variables partout comme paramètres !

        J'espère que t'as mieux compris, mais comme je suis fort pressé, j'ai pas le temps de me relire ni de faire plus complet.

        Relis le cours de Mateo, va voir sur d'autres sites ou ils expliqueront différemment les fonctions (voir le post-it des sites). Tu verras, tu comprendras, et tu trouveras ca tout simple.

        PS : Ne va pas plus loin dans le cours sans avoir compris !
        • Partager sur Facebook
        • Partager sur Twitter
          13 mars 2006 à 7:22:05

          Merci beaucoup a vous deux!
          Ca yest, je crois que j'ai compris, en faite, c'etait que je me perdais les ménages avec les paramêtres, les variables a crees etc etc...
          J'essayerais pour voir si j'ai bien compris!
          Meci encore.
          • Partager sur Facebook
          • Partager sur Twitter
            13 mars 2006 à 8:52:59

            Ce que tu mes lorsque tu veux utiliser ta fonction, exemple
            printf("%d"‚fonction(4));

            est enfaite le parametre que tu as mis à ta fonction ;)
            Ca remplace tout simplement ton premier parametre par celui que tu as donné et après ca fait le 'calcule' dans ta fonction :)

            S'il y a 2parametres:
            printf("%d"‚fonction(46));

            4: 1er parametre
            6: 2e parametre

            ++
            • Partager sur Facebook
            • Partager sur Twitter
              13 mars 2006 à 12:39:00

              Peut-etre que je suis bête mais ta fonction doit se trouver après les #include et avant le début du main.

              et aussi tu as oublié un point virgule :
              int resultat = variablevalant3 + 5;

              #include <stdio.h>
              #include <stdlib.h>


              int mafonction  (int variablevalant3) //le paramètre vaut 3
              {
                /* contenu ou on se servira sans doute de "variableValant3". On a pas
                   transmis se paramètre pour faire joujou...
                */

                int resultat;// je déclare resultat
                resultat = variablevalant3 + 5;
               // Resultat vaut 8
                return resultat; // on returne résultat‚ donc 8. variableStockantLeNombreRetourne prendra donc 8 comme valeur
               }


              int main(int argc‚ char *argv[])
              {
                 
                  int variableStockantLeNombreRetourne = mafonction (3);
                //variableStockantLeNombreRetourne vaut 8
                  printf("variableStockantLeNombreRetourne = %ld\n\n"‚variableStockantLeNombreRetourne);
               /// j'ai affiché la valeur de variableStockantLeNombreRetourne



               
                system("PAUSE");     
                return 0;
              }


              J'ai repris le code et tout marche. C'est bien expliqué.
              • Partager sur Facebook
              • Partager sur Twitter

              [C]Les fonctions

              × 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