Procedure et fonction

Fermé
Hosny - 16 mai 2008 à 20:38
 Hosny - 16 mai 2008 à 22:33
Bonjour,
qu est ce qu on veux dire par (une fonction retourne un resultat et une procedure nn)?????
je suis debutant en algo et j ai vraiment pas compris ce que veux dire ca

merci d avance
A voir également:

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.
19
merci pour ta reponse
3