Procedure et fonction

tedkik -  
alexdelareunion Messages postés 555 Statut Membre -
Bonjour,

En quoi est-il différent de fournir des paramètres à une fonction ou à un sous-programme par leur nom ou par leur valeur?
Configuration: Windows XP
Firefox 2.0.0.12

5 réponses

  1. sofnoisette Messages postés 14 Statut Membre
     
    la différence est à la sortie
    la fonction retourne qu'une valeur alors que la procédure les valeurs sont passés en référence et peuvent être toutes modifiées
    j'espere que sa répon à ta question
    0
  2. Mahmah Messages postés 497 Statut Membre 125
     
    Bonjour,

    Ton sujet suggère une question et ton poste en pose une autre..

    Une fonction possède une valeur de retour.
    Une procédure n'en a pas et peut avoir des effets de bord. (en théorie car bon nombre de fonctions....)

    Pour les paramètres, il y a en effet des langages (par exemple ADA) qui accepte les deux méthodes

    dessinerRectangle( 1, 1, 2, 2 );
    ou
    dessinerRectangle( x1 = 1, y1 = 1, x2 = 2, y2 = 2 );

    C'est absolument équivalent d'un point de vue exécution, seulement un de deux est plus lisible que l'autre. (Je vous laisse choisir le quel)

    M.
    0
  3. marechall
     
    comment utiliser les procédures et fonctions pour la résolution des exo avec matrice ?
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    si tu passes à la procédure une variable par son nom tu lui fournis l'adresse, et la procédure va travailler sur cette variable, la modifier éventuellement.
    Si tu lui passes par valeur, la procédure ne travaillera que sur une copie et ne modifiera jamais la variable d'origine

    eric

    PS: ah, je vois que j'ai répondu à la question d'origine... Quand on vous dit de ne pas s'accrocher à une conversation en cours et de créer la votre pour avoir des réponses...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. alexdelareunion Messages postés 555 Statut Membre 142
     
    Pour compléter ce qu'a dit eriiic,
    La procédure n'est pas typée. Elle prend des objets ou des valeurs en paramètres (ou pas), et exécute un certain nombre d'actions, comme une 'macro', puis quand elle arive à la fin, le programme reprend là ou il s'était arrêté lorsque la procédure a été appelée.

    La fonction est 'typée' car à la fin de son exécution elle doit retourner une valeur, ou un objet, et que cette valeur a un type (String, int, double, etc... etc..).

    Exemple

    procédure calculAplusB(A,B,C)
    C=A+B

    fonction ENTIER calculAplusB(A,B)
    C=A+B
    retourne C

    La fonction calculAplusB() est de type ENTIER, elle retourne donc un entier. Je peux utiliser cette fonction à la place d'un entier dans une expression, je peux écrire : E = D + calculeAplusB(A,B) car le résultat de cette fonction EST un entier.

    Tu peux parfois arriver au même résultat en programmant en procédural ou en fonctions, mais ton programme n'aura pas la même gueule, A toi de voir ce que tu veux faire.
    0