A voir également:
- Difference entre fonction et procedure en informatique
- Fonction si et - Guide
- Le code ascii en informatique - Guide
- Différence entre tcp et udp - Guide
- Difference entre million et milliard - Accueil - Technologies
- Jargon informatique - Télécharger - Bureautique
2 réponses
Bonjour,
C'est vrai que la différence entre fonction et procédure n'est pas facile à comprendre.
Certains langages comme Visual Basic ou Pascal font la différence alors que d'autres comme le C ou Lisp ne connaissent que des fonctions
La différence, pour les langages qui distinguent fonctions et procédures, c'est que la fonction retourne un résultat au programme appelant. Mais la fonction peut également remplir d'autres taches.
La procédure ne retourne pas de résultat (directement) au programme appelant, c'est un sous-programme, une sub-routine qui remplit une tache précise.
Mais c'est surtout une manière de programmer, de déclaration de variables (publiques ou locales), on parle aussi de portée de variables.
Un petit exemple en VB. Une fonction qui retourne le plus petit de deux nombres réels.
'declaration de la fonction mini qui accepte deux arguments de type réel a et b, et le résultat est un réel.
'les variables a et b sont locales à la fonction, elles n'existent qu'à l'intérieur de cette fonction. Le nom de la fonction est lui même une variable mais dont la valeur est retournée au programme principal.
Function mini(a as double, b as double) as double
'le traitement: si a inférieur ou égal à b alors mini=a sinon mini=b
If a <= b Then mini=a Else mini=b
End Function
cette fonction s'utilise comme ceci, à supposer qu'on veuille comparer deux variables x et y, et conserver uniquement la plus petite:
petit=mini(x,y)
les noms des variables peuvent etre différents dans le prog principal et dans la fonction, dans le cas présent a prendra la valeur de x et b la valeur de y.
Si on voulait faire la même chose avec une procédure, il faudrait déclarer une variable globale connue de tout le programme, y compris procédures et fonctions.
Public petit as double
'déclaration de la procédure, avec les mêmes arguments mais qui ne retourne pas de résultat
Sub mini(a as double, b as double)
'la variable globale petit est directement assignée par la procédure
If a <= b Then petit=a Else petit=b
End Sub
Utilisation de la procédure dans le programme principal, à supposer que la plus petite valeur de x ou y nous interesse:
la variable petit et renseignée par la procédure
Call mini(x,y)
ou tout simplement
mini(x,y)
A la syntaxe près, le langage Pascal utilise le meme type de déclaration que VB.
Ce qu'il faut retenir pour un algo:
Une fonction retourne obligatoirement un résultat, mais accessoirement elle peut faire un traitement précis comme modifier un tableau global.
Une procédure ne retourne pas de résultat, mais en plus de faire un traitement précis, elle peut modifier également des variables globales.
Bon courage.
C'est vrai que la différence entre fonction et procédure n'est pas facile à comprendre.
Certains langages comme Visual Basic ou Pascal font la différence alors que d'autres comme le C ou Lisp ne connaissent que des fonctions
La différence, pour les langages qui distinguent fonctions et procédures, c'est que la fonction retourne un résultat au programme appelant. Mais la fonction peut également remplir d'autres taches.
La procédure ne retourne pas de résultat (directement) au programme appelant, c'est un sous-programme, une sub-routine qui remplit une tache précise.
Mais c'est surtout une manière de programmer, de déclaration de variables (publiques ou locales), on parle aussi de portée de variables.
Un petit exemple en VB. Une fonction qui retourne le plus petit de deux nombres réels.
'declaration de la fonction mini qui accepte deux arguments de type réel a et b, et le résultat est un réel.
'les variables a et b sont locales à la fonction, elles n'existent qu'à l'intérieur de cette fonction. Le nom de la fonction est lui même une variable mais dont la valeur est retournée au programme principal.
Function mini(a as double, b as double) as double
'le traitement: si a inférieur ou égal à b alors mini=a sinon mini=b
If a <= b Then mini=a Else mini=b
End Function
cette fonction s'utilise comme ceci, à supposer qu'on veuille comparer deux variables x et y, et conserver uniquement la plus petite:
petit=mini(x,y)
les noms des variables peuvent etre différents dans le prog principal et dans la fonction, dans le cas présent a prendra la valeur de x et b la valeur de y.
Si on voulait faire la même chose avec une procédure, il faudrait déclarer une variable globale connue de tout le programme, y compris procédures et fonctions.
Public petit as double
'déclaration de la procédure, avec les mêmes arguments mais qui ne retourne pas de résultat
Sub mini(a as double, b as double)
'la variable globale petit est directement assignée par la procédure
If a <= b Then petit=a Else petit=b
End Sub
Utilisation de la procédure dans le programme principal, à supposer que la plus petite valeur de x ou y nous interesse:
la variable petit et renseignée par la procédure
Call mini(x,y)
ou tout simplement
mini(x,y)
A la syntaxe près, le langage Pascal utilise le meme type de déclaration que VB.
Ce qu'il faut retenir pour un algo:
Une fonction retourne obligatoirement un résultat, mais accessoirement elle peut faire un traitement précis comme modifier un tableau global.
Une procédure ne retourne pas de résultat, mais en plus de faire un traitement précis, elle peut modifier également des variables globales.
Bon courage.