Fonction et procédure

Résolu
faith cure -  
faith cure Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
salut tout le monde, j'ai un probléme dans un sous programme je sais pas quand-il j'utilise une procédure ou bien une fonction ,aussi je sais pas comment destinguer quand j'utilise passage par valeur ou par réfference (adresse)
A voir également:

2 réponses

du crétin, point te moquer tu ne dois
 
Salut

idéalement:
- il faut utiliser une fonction lorsque l'on veut récupérer un résultat. ex s = SIN(a)
- if faut utiliser une procédure lorsque l'on veut effectuer une (ou plusieurs) actions

en pratique, il apparaissait utile de récupérer un code d'erreur en fin de procédure. on a donc transformé la procédure en fonction, mis en place le retour d'un valeur vers l'appelant et pris l'habitude de voir des fonctions être appelées sans argument

maintenant que les exceptions existent, je pense qu'il est préférable de revenir à la méthode idéale et d'y implémenter une gestion d'exceptions pour bien contrôler l'exécution du code.

quant au passage par valeur ou par référence, c'est à toi de dire si la fonction ou la procédure appelée peut (ou doit) modifier une valeur passée en argument. Si oui, il faut transmettre par référence. Si non il faut la transmettre par valeur.
selon les langages, c'est déclaré de diverses manières:
- en basic, c'est le plus clair : ByRef ou ByVal est annoncé juste avant la déclaration de l'argument attendu.
- en pascal : si le mot clé var est annoncé juste avant la déclaration de l'argument, c'est que c'est un paramètre par référence, sinon l'argument est passé par valeur
- en C : rien ne précise dans la déclaration si l'argument est passé par valeur ou par référence. Seule la présence d'un pointeur peut laisser supposer que la fonction va recevoir l'adresse de qqe chose et que ce qqe chose pourra alors être modifié (mais l'adresse restera intacte). C'est dans l'appel de la fonction où tu peux voir explicitement un passage par référence : lorsque tu fournis une variable précédée de & cela indique que la fonction recevra un pointeur sur la variable et non la variable elle-même)
2
faith cure Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   23
 
merci beaucoup ,Mais c'est necela ne te dérange pas stp donner mois un exemple
0
pacorabanix
 
Pour l'exemple, précise au moins en quel langage stp !

Et pour compléter la réponse d'avant :
quant au passage par valeur ou par référence, c'est à toi de dire si la fonction ou la procédure appelée peut (ou doit) modifier une valeur passée en argument. Si oui, il faut transmettre par référence. Si non il faut la transmettre par valeur.
C'est vrai, mais il y a aussi un cas où on passe par référence même si on ne veut pas modifier l'argument : lorsqu'on manipule de grosses structures de données (des tableaux, des struct (C C++)ou des class (C++), il faut mieux les passer par référence, sinon la variable est entièrement copiée.

Si tu as une fonction qui prend un tableau par valeur en argument, et bien ce tableau sera entièrement copié pour faire la fonction, et si ton tableau possède 100'000 éléments ça prendra beaucoup de temps et de mémoire.
0
faith cure > pacorabanix
 
pour l'instant la procédur et la fonction dans l'algorithme ,pas dans une language précise.
0
faith cure Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   23 > pacorabanix
 
Merci beaucoup
0