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?
A voir également:

5 réponses

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
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
marechall
 
comment utiliser les procédures et fonctions pour la résolution des exo avec matrice ?
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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