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

Langage Pascal Discussion :

Priorité entre les opérateurs mod et *


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Priorité entre les opérateurs mod et *
    Salut
    Je voudrais savoir quelle est la fonction prioritaire dans le calcul : mod ou * ?

    10 mod 4*3 égal à 6 ou 10

    En Pascal il donne 6.
    Mais en utilisant * comme prioritaire, le résultat est 10.

    Quel est le bon résultat ?

    Merci

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 415
    Points
    59 415
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    La multiplication et le modulus sont des opérateurs de même priorité.
    L'apposition de parenthèses peut forcer la priorité de l'un sur l'autre. En l'absence de parenthèses, le compilateur effectuera les opérations de la gauche vers la droite.

    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    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
    Boe,

    Et un petit test t'aurait peut-être donné la réponse ?
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    Delphi 2009 nous donne, avec les optimisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Result := 10 mod 4 * 3;
    mov eax,$00000006 -> 10 mod 4 = 2 * 3 = 6 // mod en premier
    priorité LTR

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Result := (10 mod 4) * 3;
    mov eax,$00000006 -> 10 mod 4 = 2 * 3 = 6 // mod en premier
    priorité au modulo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Result := 10 mod (4 * 3);
    mov eax,$0000000a -> 10 mod 12 = 10 // * en premier
    priorité à la multiplication

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Result := 3 * 10 mod 4;
    mov eax,$00000002 -> 3 * 10 = 30 mod 4 = 2 // * en premier
    priorité LTR



    donc si la formule donnée est :
    10 % 4 * 3
    alors le bon resultat est :
    (10 % 4) * 3 = 6
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    La priorité des opérations n'étant pas un dogme, elle varie suivant le langage utilisé.
    Donc, pour ne pas me poser de questions métaphysiques inutiles, je place toujours des parenthèses là où il faut pour fixer la priorité telle que je la souhaite.
    Et le code n'en reste pas moins lisible !
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  6. #6
    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
    Lia,
    Citation Envoyé par ALT Voir le message
    La priorité des opérations n'étant pas un dogme, elle varie suivant le langage utilisé.
    Donc, pour ne pas me poser de questions métaphysiques inutiles, je place toujours des parenthèses là où il faut pour fixer la priorité telle que je la souhaite.
    Et le code n'en reste pas moins lisible !
    Je dirais même plus : il est plus lisible, l'ordre des opérations étant immédiatement visible.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut
    C'est aussi mon avis mais je voulais laisser une issue de secours aux autres.
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

Discussions similaires

  1. Réponses: 67
    Dernier message: 16/12/2007, 13h41
  2. [CSS] [FAQ] Quelles sont les règles de priorités entre CSS?
    Par BnA dans le forum Contribuez
    Réponses: 0
    Dernier message: 05/12/2007, 09h59
  3. fopen -> différences entres les types d'ouvertur
    Par Patrick PETIT dans le forum C
    Réponses: 10
    Dernier message: 01/06/2003, 18h19
  4. Benchmark entre les langages
    Par El blérot dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 27/12/2002, 01h22
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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