Un tutoriel sur les valeurs booléenes.

Objectif.

Le but de ce tutoriel est de découvrir quelques notions de logique à travers la programmation.

Travail proposé.

  1. Calculer les tables de vérité.

    De même que nous connaissons les tables de multiplication, il y des tables pour les "opérateurs" logiques ET, OU et PAS. Compléter les tableaux suivants:

    x !x
    false ?
    true ?

    x y x || y
    false false ?
    false true ?
    true false ?
    true true ?

    x y x && y
    false false ?
    false true ?
    true false ?
    true true ?


  2. Programmer le ou exclusif.

    Il y a le ou inclusif comme par exemple "grand ou gentil" (on peut être les deux !) c'est le cas de ||, et le ou "`exclusif" comme par exemple "grand ou petit3 (mais pas les deux !). Nous voulons étudier ici comment :
    • non pas écrire "x OU y" (x || y) c'est à dire soit x est vrai, soit y est vrai, soit les deux le sont
    • mais écrire "SOIT x SOIT y" c'est à dire soit x est vrai et y est faux, soit x est faux et y est vrai.
    Prenons deux variables booléennes x et y.
    • Compléter le tableau suivant:

      x y SOIT x ,SOIT y
      false false ?
      false true ?
      true false ?
      true true ?

    • Vérifier à la main ou en utilisant le bout de code suivant, que l'expression (((!x) && y) || (x && (!y))) convient.
      println("x ?"); boolean x = readBoolean();
      println("y ?"); boolean y = readBoolean();
      println("Réponse: " + (((!x) && y) || (x && (!y))));
    • Coder l'expression autrement, sous la forme "x ou y et pas x et y".
  3. Comprendre l'implication logique.

    Prenons un exemple : voler un oeuf implique toujours de voler un boeuf
    • Certes, si nous trouvons quelqu'un qui a volé un oeuf mais n'a pas volé de boeuf, la phrase est assurément fausse.
    • De plus, si nous trouvons quelqu'un qui a volé un oeuf et un boeuf, la phrase est assurément vraie.
    • Par ailleurs.. Et si personne n'a volé d'oeuf ? Ou si quelqu'un a volé (directement) un boeuf sans voler d'oeuf ? La phrase, en tant que telle, n'est PAS fausse. Donc elle est vraie1.
    Bref, nous pouvons dire que la phrase est :
    • Vraie, si et seulement si on n'a pas volé d'oeuf ou si on a volé un oeuf et un boeuf. Ou encore.
    • Ou encore, si et seulement si quelqu'un qui n'a pas volé de boeuf ne peut pas avoir volé d'oeuf.
    Pour formaliser les choses :
    • Compléter le tableau suivant :

      x y x IMPLIQUE y
      false false ?
      false true ?
      true false ?
      true true ?

    • En prenant l'exemple : Savoir écrire implique toujours de savoir lire, ré-écrire avec des mots l'explication ci-dessus qui commence par Vraie et Ou encore et celle qui commence par Certes, De plus, Par ailleurs.
    • Prenons deux variables booléennes x et y, écrire (à partir de la phrase qui commence par Vraie ou bien celle qui commence par Ou encore) une formule avec des &&, || et ! et qui corresponde à x IMPLIQUE y.

Remarques.

  1. A propos de l'implication.

    Dire A implique B consiste à dire que si A est vrai alors forcément B est vrai, tandis que si A est faux et bien tout peut arriver à B vrai ou faux, c'est ok.
    Noter aussi que l'implication ne signifie pas qu'il y a une relation de de cause à effet ; par exemple, qu'il pleuve implique que je prenne mon parapluie, mais ce n'est pas la pluie qui est la cause que je prenne mon parapluie, c'est moi !