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

Algorithmes et structures de données Discussion :

Notions de paramètres (algorithme)


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 20
    Points
    20
    Par défaut Notions de paramètres (algorithme)
    bien le salut a vous
    voila je suis sur un cour concernant les actions en algorithmes et j'ai du mal a assimilé la notions parametres telque précisé dans le cours:

    trois catégories de paramètres :

    1) Les paramètres d’entrée : valeur fournie par l’action appelante et utilisée par l’action appelée.

    2) Les paramètres de sorties : valeurs calculées par l’appelée et transmises vers l’appelante.

    3) Paramètres d’entrée/sorties : valeurs fournies par l’appelante, modifiées par l’appelée et renvoyés à l’appelée.

    quelqu'un peut il m'expliqué svp c trois catégories?
    amicalement adel

  2. #2
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Je tente de t'expliquer

    Si tu veux créer une fonction ADDITION
    elle demande 2 paramètres en entrée (a,b)
    et le résultat en sortie est
    la somme de tes 2 paramètres en entrée

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var a,b,c
    a <- 1
    b <- 2
     
    c <- ADDDITION (a,b)
    dans c il y aura ... 3, les valeurs de a (1) et b (2) n'ont pas bougé


    si tu veux créer une fonction increment INC
    elle demande 1 paramètre en entrée et le résultat en sortie est
    le paramètre en entrée +1

    là 2 solutions

    ex1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var i,j
    i <- 1
    j <- INC(i)
    dans j il y aura 2, la valeur de i (1) n'a pas bougé

    Maintenant on peut aussi imaginer mettre le paramètre de la fonction INC
    en entrée / sortie et programmer de telle manière
    que chaque fois qu'on appelera la fonction INC le paramètre en entrée/ sortie
    sera incrémenté de 1
    Appelons cette nouvelle fonction INCA

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var i
    i <- 1 
    Si INCA(i) = 2 alors ecrire "valeur de i est à 2"
    sinon ecrire "Ah non !?"
    Dans notre cas on aura en résultat "valeur de i est à 2"

    Note :

    voici le contenu de la fonction INC
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INC ( variable i en Entrée)
    Debut
    var ret
    ret <- i+1
    retourner ret 
    Fin
    voici le contenu de la fonction INCA
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INCA ( variable i en Entrée/Sortie)
    Debut
    i <- i+1
    Fin

    Ok ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 20
    Points
    20
    Par défaut parametre d'entré et sortie .......
    donc je dois considéré le cas des des parametres d'entré dans le premier exemple c ca ?
    les valeur a et b sont fournie par l'action appelante et utilisé par l'action appelé.
    une autre question :
    les parametre es-ce-qu'ils peuvent etre considéré comme etant des variables ?
    enfin si tu veux bien refaire l'exemple par ordre 1,2,3 pour que ca soit bien clair

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Je pense qu'il faudrait quelques détails supplémentaires...
    Parce que ce que moi j'appelle "paramètres", c'est uniquement les valeurs passés à une procédure dans sa liste de paramètres.

    Autrement dit, paramètre pour moi, c'est :
    Dans une définition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Proc Addition(a, b)
      Return (a + b)
    End
    la liste de paramètres est (a, b) et "a" et "b" sont des paramètres de la procédure addition.

    Dans un appel de procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Var debut, longueur, fin
     
    debut <- 3
    longueur <- 5
     
    fin <- Addition( debut, longueur )
    Ici pour moi, fin n'est pas un paramètre, par contre debut et longueur sont des paramètres passés à Addition(), ce sont des "paramètres d'entrée" puisqu'ils apportent des valeurs de l'appelant à l'appelé et ne sont pas modifiés par Addition().

    Maintenant supposons que Addition soit plutôt défini comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Proc Addition(a, b, c)
      c <- (a + b)
    End
    Alors a, b et c sont des paramètres, a et b sont des paramètres d'entrée, c est un paramètre de sortie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Var debut, longueur, fin
     
    debut <- 3
    longueur <- 5
     
    Addition( debut, longueur, fin )
    Contrairement au code précédent, fin est aussi un paramètre, mais un paramètre de sortie.

    On pourrait également définir addition comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Proc Addition(a, b)
      a <- (a + b)
    End
    Dans ce cas, a et b sont les paramètres, a est un paramètre d'entrée/sortie et b est un paramètre d'entrée.

    Utilisée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Var debut, longueur, chaine
    debut <- 0
    longueur <- 2
    chaine <- "Ce n'est qu'un au revoir."
     
    While debut < Longueur(chaine) Do
      Afficher(SousChaine(chaine, debut, longueur))
      Addition( debut, longueur)
    Done
    On affichera la chaine par tronçon de 2 caractères.
    Ici debut et longueur sont des paramètres de SousChaine en tant que paramètres d'entrée (ainsi que chaine), mais ils sont également paramètres de Addition, debut en tant que paramètres d'entrée/sortie et longueur en tant que paramètre d'entrée.


    Confus ? Cela te semble-t-il inutilement complexe ? En tout cas, pour moi c'est le cas, c'est l'une des raisons pour lesquelles je préfère les langages fonctionnels comme Haskell, qui n'ont qu'un seul type de paramètre : le paramètre d'entrée.

    --
    Jedaï

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Il faut prendre garde à un point qui dépend du langage. Le Fortran connait deux sortes de sous-programmes, les fonctions et les routines: il est donc possible d'écrire une fonction qui a deux paramètres (d'entrée) a et b et qui retourne la somme, ou une routine qui a trois paramètres, deux d'entrée comme précédemment et un de sortie pour la somme. D'autres langages ne connaissent pas les routines.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  6. #6
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    D'autres langages ne connaissent pas les routines.
    A part prolog (qui ne connait même pas les fonctions sauf à valeurs logiques, les prédicats) je n'en connais pas. Peux tu donner des exemples ?
    NB: Ne pas jouer sur les mots pour moi routine = procédure = fonction void.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  7. #7
    Membre émérite Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Points : 2 286
    Points
    2 286
    Par défaut
    Alors Adel01

    C'est plus clair pour toi après
    ces multiples explications ?
    Emérite, émérite je ne pense pas ... plutôt dans le développement depuis FORT FORT longtemps, c'est mon job, ça oui
    A part ça ... Il ne pleut jamais en Moselle !

  8. #8
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Il y a un vocabulaire précis. On distingue les paramètres formels (ceux que l'on utilise pour spécifier une fonction) des paramètres effectifs (ceux que l'on passe à l'appel d'une fonction). Au moment de la specification, à chaque paramètre formel peut être associé un mode IN, OUT et parfois IN/OUT. Ce mode détermine typiquement un passage par valeur ou par adresse.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/01/2013, 01h31
  2. Réponses: 2
    Dernier message: 17/07/2012, 17h14
  3. Algorithme pour afficher une surface paramètrée
    Par teodor21 dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 11/11/2011, 13h44
  4. Notion Algorithmes Combinatoires
    Par zouhour dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 12/12/2007, 18h16
  5. Notion d'algorithme
    Par gtr dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 10/12/2002, 11h46

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