Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 122
    Points : 59
    Points
    59

    Par défaut Opérandes non booléens sur opérateurs booléens

    Bonjour à tous,

    D'après le manuel de FreePascal, Boolean operators can only have boolean type operands, and the resulting type is always boolean.

    Pourtant, le programme suivant est accepté par le compilateur:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PROGRAM bool;
    VAR
      vrai, faux: BOOLEAN;
    BEGIN
      vrai := TRUE;
      faux := FALSE;
      WRITELN(vrai AND faux);
      WRITELN((1 > 0) AND (1 = 0));
      // jusque là, c'est logique
      WRITELN(1 AND 0);
      // ici, à la limite...
      WRITELN(1 OR 2);
      // ??? 
    END.
    et donne

    Code :
    1
    2
    3
    4
    5
    F:\DOCS>bool
    FALSE
    FALSE
    0
    3
    Tant que l'entier résultant est 1 ou 0, je peux comprendre,
    mais est-ce que ça a du sens de renvoyer la somme des opérandes avec OR ?

    Merci d'avance,

    gvdmoort

  2. #2
    Expert Confirmé Sénior
    Inscrit en
    août 2006
    Messages
    3 575
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 575
    Points : 4 613
    Points
    4 613

    Par défaut

    Qia,

    1) OR ne fait pas une somme.

    2) Quand tu fais
    le résultat du AND donne 0, donc affichage OK.

    le résultat du OR donne 3, donc affichage OK.

    Attention, quand tu écris ce genre de code, tu ne manipules pas des résultats booléens, mais des opérations bit à bit, ce qui est tout à fait différent.
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  3. #3
    Membre du Club
    Inscrit en
    octobre 2006
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 122
    Points : 59
    Points
    59

    Par défaut ok

    Je n'avais pas pensé que ces opérateurs pouvaient être aussi des opérateurs logiques. Je n'avais jamais utilisé ce genre de calcul.

    Merci,

    Gvdmoort

  4. #4
    Expert Confirmé Sénior
    Inscrit en
    août 2006
    Messages
    3 575
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 575
    Points : 4 613
    Points
    4 613

    Par défaut

    Hoe,
    Citation Envoyé par gvdmoort Voir le message
    Je n'avais pas pensé que ces opérateurs pouvaient être aussi des opérateurs logiques. Je n'avais jamais utilisé ce genre de calcul.

    Merci,

    Gvdmoort
    Ça fait partie de la définition basique du langage.
    Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.

  5. #5
    Membre chevronné
    Avatar de EpiTouille
    Homme Profil pro Titouan Créac'h
    Étudiant
    Inscrit en
    mai 2009
    Messages
    332
    Détails du profil
    Informations personnelles :
    Nom : Homme Titouan Créac'h
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2009
    Messages : 332
    Points : 721
    Points
    721

    Par défaut

    C'est l'algèbre de bool ça ? non ?

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •