IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Procédure et fonction : les différences et les usages de chacune ?


Sujet :

Langages de programmation

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Procédure et fonction : les différences et les usages de chacune ?
    quelqu'un pourrait m'expliquer les différences et les usages de chacune ?
    en me disant un peu plus que : "la fonction retourne une valeur" !

    merci

  2. #2
    Membre confirmé Avatar de aziz jim
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 455
    Points : 567
    Points
    567
    Ce n'est qu'en forgeant qu'on devient forgeron.

  3. #3
    Membre actif
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Points : 233
    Points
    233
    Par défaut
    J'ai peut etre tord mais:

    Hypothese:

    1. Conceptuellement une fonction n'a pas d'effet de bord (ne devrait pas en avoir).
    2. Les procedures en ont forcement car elle ne renvoient aucune valeur a exploité.
    Si grande est la faiblesse d'une âme, dont la raison est partie!
    Ne jamais embrouiller ni abasourdir par une foule d'images le génie intérieur qui réside au fonde de sa poitrine,...
    L'ambition est le rfuge de l'échec. "Oscar Wild"

  4. #4
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Citation Envoyé par mathk
    J'ai peut etre tord mais:

    Hypothese:

    1. Conceptuellement une fonction n'a pas d'effet de bord (ne devrait pas en avoir).
    2. Les procedures en ont forcement car elle ne renvoient aucune valeur a exploité.
    On est d'accord que la différence entre une procédure et une fonction et que la première ne revoit pas de valeur et la seconde si. Par contre, je ne suis pas tout à fait d'accord avec le point 2 : une procédure peut servir à l'affichage par exemple, ou même à un traitement sur ses paramètres dont le résultat n'est pas à garder pour la suite.

    Pour le point 1, disons que je ne verrais aucune objection (dans le sens où je ne pense pas que l'on puisse considérer ceci comme une pratique à éviter) à passer un paramètre par référence à une fonction.
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Foe,

    La réponse est claire
    Citation Envoyé par Jensen & Wirth
    Les fonctions sont des procédures qui retournent une valeur et qui peuvent être utilisées dans des expressions.
    [in Pascal, Manuel de l'utilisateur, Kathleen Jensen et Niklaus Wirth, Ed. Eyrolles, 1984]
    Faut-il rappeler que ce sont les créateurs du Pascal ?

    D'ailleurs, en C ou C++, on ne parle que de fonctions, même quand le type "retourné" est void, ce qui correspond donc aux procédures du Pascal.
    Si les cons volaient, il ferait nuit à midi.

  6. #6
    Membre actif
    Avatar de mathk
    Inscrit en
    Décembre 2003
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 211
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par Woufeil
    On est d'accord que la différence entre une procédure et une fonction et que la première ne revoit pas de valeur et la seconde si. Par contre, je ne suis pas tout à fait d'accord avec le point 2 : une procédure peut servir à l'affichage par exemple, ou même à un traitement sur ses paramètres dont le résultat n'est pas à garder pour la suite.
    L 'affichage est un effet de bord. Il change l'etat de ton system
    Si grande est la faiblesse d'une âme, dont la raison est partie!
    Ne jamais embrouiller ni abasourdir par une foule d'images le génie intérieur qui réside au fonde de sa poitrine,...
    L'ambition est le rfuge de l'échec. "Oscar Wild"

  7. #7
    Membre averti
    Avatar de anadoncamille
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 395
    Points : 310
    Points
    310
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par droggo
    D'ailleurs, en C ou C++, on ne parle que de fonctions, même quand le type "retourné" est void, ce qui correspond donc aux procédures du Pascal.
    C'est idem en Java. Une "procédure" est une fonction qui ne renvoie rien.
    Il n'y a pas vraiment d'autre différences, on peut atteindre les même fonctionnalités avec une fonction ou une procédure.

    Un exemple autour de "Hello World", en Java :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // code type procédure
    public void hello0(String name) {
      System.out.println("Bonjour " + name);
    }
    
    // code type fonction
    public String hello1(String name) {
      System.out.println("Bonjour " + name);
      return name;
    }
    Grosso modo, une fonction qui ne renvoie pas de résultat est une procédure. Mais certains langages dont C, C++ et Java ne se posent plus ces questions, il n'y a que des fonctions dont certaines renvoient "void" (vide, rien)

    Si tu as besoin d'obtenir un résultat de ton algorithme, tu utilises une fonction qui te renvoie ce résultat, sinon tu utilises une fonction qui ne te renvoie rien.
    __________________________________
    | +
    | Sylvain Tournois - Création logicielle
    |
    | sylv.tournois.free.fr
    |

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/02/2010, 01h24
  2. [EJB] Différence entre les EJB et les JavaBeans
    Par cool dans le forum Java EE
    Réponses: 6
    Dernier message: 22/05/2008, 20h24
  3. Différence entre les fichiers et les files
    Par amine6441 dans le forum Langage
    Réponses: 1
    Dernier message: 14/01/2007, 09h59
  4. [C#] Diffèrence entre les structures et les classes
    Par Kr00pS dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/08/2006, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo