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

avec Java Discussion :

Qu'est-ce qu'un argument muet ?


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 32
    Points
    32
    Par défaut Qu'est-ce qu'un argument muet ?
    bonjour j'ai lu ca
    Si plusieurs méthodes sont acceptables, le compilateur essaie d’en trouver une qui soit
    meilleure que toutes les autres. Pour ce faire, il procède par éliminations successives. Plus
    précisément, pour chaque paire de méthodes M et M’, il regarde si tous les arguments
    (muets, cette fois) de M sont compatibles par affectation avec tous les arguments muets de
    M’ ; si tel est le cas, M’ est éliminée (elle est manifestement moins bonne que M)
    c'est quoi un argument muet
    merci
      0  0

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par yacin87 Voir le message
    c'est quoi un argument muet
    merci
    Bonne question, merci de l'avoir posée....

    Sérieusement, tu le sort d'où ce texte ?
      0  0

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Points : 32
    Points
    32
    Par défaut réponse
    slt c'est dans le livre de claude delonney programmez en java
    merci
      0  0

  4. #4
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Points : 380
    Points
    380
    Par défaut
    Sur le peu que je lis, cela ressemble à un des problèmes de l'héritage multiple, même héritage qui n'existe pas en java. Es-tu sur que le contexte parlais de java et non d'une comparaison avec le C++ ?
      0  0

  5. #5
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Ca ressemble aussi à la résolution des méthodes surchargées.
      0  0

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si il parle d"'argument muet, un bon lovre t'as surement expliqué avant ce qu'est un argument muet, sinon, tu jette au feu
      0  0

  7. #7
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2007
    Messages : 643
    Points : 305
    Points
    305
    Par défaut
    Un argument muet c'est :

    C'est un argument formel qui ne peut être qu'un indicateur de variables. On trouve les arguments muets dans les déclarations de fonction(et non leurs appels dans le programme).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    age (int annee) // déclaration de fonction (en tête) qui contient un arg muet
    {
        age = annee_actuelle - annee;
        return age;
    }
    main
    {
        cout << en quel annee etes-vous ne << endl;
        cin >> annee;
        age = age (annee); // appel de la fonction avec des arguments effectifs
        cout << vous etes agee de : << age << ans << endl;
    }

    L'argument est dit muet car, au final, on peut lui retourner n'importe quelles valeurs sans que cela ai de l'importance.

    Par contre ce que je ne comprend pas moi, c'est, qu'est ce qu'un argument non muet dans ce cas alors ? Puisque je ne connais, et est codé, que des fonctions à argument muet au final. Donc je ne vois pas trop pourquoi distinguer cette notion si je ne connais pas son contraire.
      0  0

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    si il parle d"'argument muet, un bon lovre t'as surement expliqué avant ce qu'est un argument muet, sinon, tu jette au feu
    Bah ca peut toujours se revendre sur Priceminister mais avec peut être un sentiment d'arnaquer l'acheteur
    Ils flottent tous en bas
      0  1

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Après lecture des extraits du bouquin cité, il semble qu'il explique bel et bien de quoi il s'agit. Mais je suis pas sûr d'avoir compris.

    Je pense qu'il s'agit simplement de distinguer deux choses quand on parle d'arguments :
    - Est-ce qu'on parle des arguments que la méthode peut prendre, ceux auxquels on donne un nom dans la définition de la méthode, nom qui sera utilisé pour les identifier dans le corps d'implémentation de la méthode. Ceux-là, apparemment, seraient appelés les arguments muets.

    - Ou est-ce qu'on parle des arguments qu'on passe au moment de l'appel de méthode, autrement dit, des expressions qu'on passe en argument de cet appel de méthode. Ceux-là seraient appelés les arguments effectifs

    La distinction existe, en gros, il s'agit de dire si on est en train de regarder une déclaration de méthode ou un appel de méthode.
    C'est effectivement important de savoir faire la différence quand on calcule la résolution de méthodes surchargées.
    Drôles de noms, toutefois.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
      0  0

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    si c'est ça, personellement, j'au toujours entendu appeler ça respectivement: les arguments de la méthodes, et les valeur/paramètres effectives/ifs

    La distinction me semblant d'ailleurs plus claire à faire dans ce cas, car je vois absolument pas ce que le mot "muet" viens faire là dedans, c'est pas comme si ça parlait en général un argument Bref un auteur qui s'est inventé son vocabulaire à lui?
      0  0

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    C'est un vocabulaire utilisé en mathématiques. Une variable muette est une variable qui sera remplacée par des valeurs effectives lors de l'utilisation d'une fonction mathématique pour calculé la valeur de retour :
    par exemple :
    f(x) = x²

    x est une variable muette.

    C'est un peu plus compliqué que ça mais vous avez l'idée.
      0  0

  12. #12
    Nouveau membre du Club Avatar de TheZopo
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    Cela fait partie de la notion mathématique "est fonction de ... ", c'est pour cela qu'on l'a retrouve en programmation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public func(int x) {
         int y = x*x
         return y;
    }
    On dit que :
    - L'image de x par la fonction "func" est y
    - L'antécédent de y par la fonction "func" est x

    Faisons une analogie :
    Prenons l'exemple d'un appareil photo : L'image du paysage (ici x), par la fonction "appareil photo" (ici "func") est la photo (ici y)

    Maintenant que j'ai mis au clair "est fonction de ...", parlons de cette fameuse variable timide ( :troll: )

    Prenons un exemple : f(x) = x*t
    Ici x est muette car le résultat ne dépend pas d'elle.
    C'est plutôt compliquer a concevoir, mais le résultat dépend de t et non de x

    Comprendo ?
      1  0

  13. #13
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par TheZopo Voir le message
    Prenons un exemple : f(x) = x*t
    Ici x est muette car le résultat ne dépend pas d'elle.
    C'est plutôt compliquer a concevoir, mais le résultat dépend de t et non de x

    Comprendo ?
    Bien sûr que le résultat dépend de x -_-°.

    Je ne sais pas vraiment quel est l'idée derrière l'adjectif muette, mais j'imagine que ça doit être ainsi :

    x "ne dit rien".
    x ne fait pas partie du problème que nous sommes en train d'étudier. x est une variable que nous avons arbitrairement créée pour le seul besoin de définir comment on calcule les images des valeurs par f. À tout moment du problème nous pourrions réécrire f(x) par f(y) et cela ne modifierait pas le problème.

    Exemples de variables non-muettes :
    - Soit a un réél quelconque. Nous allons étudier la fonction f(x) = a * x

    x est muette, a ne l'est pas. La variable a est créée par l'énoncé du problème, et pas seulement pour le seul contexte de la définition de f.

    - Soit f(x) = 2 * x + 8
    On notera x0 le nombre réél tel que f(x0) = 0

    x est muette, x0 ne l'est pas. Pour les mêmes raisons.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
      1  0

  14. #14
    Nouveau membre du Club Avatar de TheZopo
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    x ne fait pas partie du problème que nous sommes en train d'étudier. x est une variable que nous avons arbitrairement créée pour le seul besoin de définir comment on calcule les images des valeurs par f. À tout moment du problème nous pourrions réécrire f(x) par f(y) et cela ne modifierait pas le problème.
    Oui, en fait c'est ce que je voulais dire, je me suis embrouillé tout seul en pensant aux irrationnels, enfin bref, je suis partis très loin là
      0  0

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Moi j'aurais dit que x est une variable muette car la fonction f comme un tout, c'est-à-dire la courbe de f, ou le mécanisme qui fait le calcul de l'image d'un antécédent par f, ne dépend pas de x.

    Par contre dans une fonction du genre " f(x) = a*x " la courbe de f dépend de a.

    Pour ce qui est du mot "muette", c'est probablement parce que x n'ajoute aucune information sur la nature de la fonction f. Par contre "a" dans l'exemple précédent ajoute une information sur la courbe de f (qui est la pente dans ce cas).
      0  0

  16. #16
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Je trouve tout ce vocabulaire particulièrement "savant" pour des choses bien plus simple...
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.
      0  0

  17. #17
    Nouveau membre du Club Avatar de TheZopo
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    Ha bah oui, mais les maths "abstraites" c'est toujours compliqué...

    @Sami : Je pense que c'est ça, moi aussi
      0  0

  18. #18
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par kolodz Voir le message
    Je trouve tout ce vocabulaire particulièrement "savant" pour des choses bien plus simple...
    Pas si simple que ça, comme on s'en rend compte quand on discute conception de compilateur avec des programmeurs pas habitués.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
      0  0

  19. #19
    Traductrice
    Avatar de Mishulyna
    Femme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 504
    Points : 7 840
    Points
    7 840
    Par défaut
    Bonjour à tous,

    La question se trouve à la page 137 (164 sur 816) du livre cité, Chapitre 8, "Surdefinition des méthodes".
    Quant à l'info sur l'argument muet, elle est disponible à partir de la page 126 (153 sur 816), Chapitre 6 "Les classes et les objets" du livre même livre (Edition Eyrolles 2008):
    6.2 Les arguments d’une méthode
    6.2.1 Arguments muets ou effectifs
    Comme dans tous les langages, les arguments figurant dans l’en-tête de la définition d’une
    méthode se nomment arguments muets (ou encore arguments ou paramètres formels). Ils
    jouent un rôle voisin de celui d’une variable locale à la méthode, avec cette seule différence
    que leur valeur sera fournie à la méthode au moment de son appel. Par essence, ces arguments
    sont de simples identificateurs ; il serait absurde de vouloir en faire des expressions.
    Il est possible de déclarer un argument muet avec l’attribut final. Dans ce cas, le compilateur
    s’assure que sa valeur n’est pas modifiée par la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       void f (final int n, double x)
       { 
            .....
            n = 12 ; // erreur de compilation
            x = 2.5 ; // OK
            .....
       }
    Les arguments fournis lors de l’appel de la méthode portent quant à eux le nom d’arguments
    effectifs (ou encore paramètres effectifs). Comme on l’a déjà vu à travers de nombreux exemples,
    en Java, il peut s’agir d’expressions (bien sûr, un simple nom de variable ou une constante
    constituent des cas particuliers d’expressions). On notera que cela n’est possible que
    parce que ce sont les valeurs de ces arguments qui seront effectivement transmises1 ; nous
    reviendrons en détail sur ce point au paragraphe 9.
    Si besoin: je reste à la disposition des utilisateurs avisés pour plus de renseignements.

    Bonne soirée à tous!
    Chaque fois que tu dis "je ne peux pas", n'oublie pas d'ajouter le mot "encore".
      0  0

  20. #20
    Nouveau membre du Club Avatar de TheZopo
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 34
    Points
    34
    Par défaut
    Hummm, mais ici c'est normal qu'il y est une erreur sur n = 12 car on a le mot clef "final" devant sa déclaration...
      0  0

Discussion fermée
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [POO] Est-il possible de récupérer les arguments muets d'une fonction ?
    Par RomainVALERI dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 16/11/2009, 13h51
  2. Arguments muets ou effectifs
    Par gap-en-force dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 11/03/2009, 17h53
  3. passer une fonction en argument, c'est possible ?
    Par kamouminator dans le forum C
    Réponses: 4
    Dernier message: 10/11/2006, 21h13
  4. Réponses: 6
    Dernier message: 19/10/2006, 15h47
  5. [Win XP]: est muet.
    Par JavaAcro dans le forum Windows XP
    Réponses: 7
    Dernier message: 07/05/2006, 20h46

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