Aller au contenu

Les opérateurs et opérateurs logiques

1. Objectif du cours

Comprendre et utiliser les opérateurs arithmétiques, de comparaison et logiques pour construire des expressions booléennes et des décisions conditionnelles en pseudo-code/PHP. Savoir prioriser les opérations et vérifier le résultat des tests.

2. Notions et définitions essentielles

  • Modulo (%) : reste de la division euclidienne (ex. 14 % 3 = 2).
  • Exponentiation () : puissance d’un nombre (ex. 3 ** 5 = 33333).
  • Booléens : valeurs true (Vrai) et false (Faux).
  • Opérateurs de comparaison : ==, !=, <, <=, >, >= (retournent true/false).
  • Opérateurs logiques : ! (non), and / && (et), or / || (ou), xor (ou exclusif).

3. Fonctionnement et principes

  • Les opérations arithmétiques obéissent à une priorité : exponentiation > multiplication/division/modulo > addition/soustraction. En cas d’égalité de priorité, on évalue de gauche à droite.
  • Les parenthèses forcent un ordre d’évaluation explicite et améliorent la lisibilité.
  • Les comparaisons produisent des valeurs booléennes utilisées dans les structures conditionnelles (if/else) et les boucles (while).
  • Les opérateurs logiques combinent des expressions booléennes : ! inverse une valeur ; A et B est vrai seulement si A et B sont vrais ; A ou B est vrai si au moins un est vrai ; xor est vrai si exactement l’un des deux est vrai (équivalent à (A et non B) ou (non A et B)).

4. Commandes et manipulations

Regroupées par procédure / usage (présentes dans le PDF) : - Entrée / affichage : - readline("...") : lire une chaîne depuis l’utilisateur (PHP). - intval(readline("...")) : lire et convertir en entier. - DemanderUtilisateur("...") : pseudo-code pour demander une saisie. - afficher / echo : afficher une valeur ou un message. - type_et_valeur(expr) : afficher le type et la valeur (pseudo-code). - var_dump(expr) : afficher le type et la valeur (PHP, utilisé dans les quiz). - Affectation / expressions : - <- ou = : affectation de valeur (ex. résultat <- 1 + 2). - opérateur ternaire utilisé en pseudo-code : condition ? vrai : faux. - Contrôles : - Si (condition) Alors ... Sinon ... FinSi : structure conditionnelle en pseudo‑code. - while (condition) { ... } : boucle tant que la condition est vraie (PHP). - Opérateurs vus (syntaxiquement) : - Arithmétique : +, -, , /, %, *. - Comparaison : ==, !=, <, <=, >, >=. - Logique : !, and / &&, or / ||, xor.

5. Sécurité et bonnes pratiques

  • Valider systématiquement les saisies utilisateur (ex. jour entre 1 et 31, mois entre 1 et 12).
  • Utiliser les parenthèses pour lever les ambiguïtés et améliorer la compréhension du code.
  • Vérifier l’utilisation du bon opérateur d’égalité : == pour comparer, = pour affecter (erreur source d’un bug montré).
  • Tenir compte des priorités d’opérateurs pour éviter des résultats inattendus dans les expressions mixtes.

6. Points essentiels à retenir pour le TSSR

  • Modulo (%) donne le reste d’une division entière ; utile pour tests de divisibilité.
  • ** est l’opérateur d’exponentiation et a la plus haute priorité.
  • Priorités des opérateurs : ** > (* / %) > (+ -) ; même priorité → gauche à droite.
  • Les comparaisons retournent des booléens (true/false) utilisables dans if/while.
  • ! inverse une valeur booléenne ; and/or combinent des conditions ; xor exclut les deux vrais simultanés.
  • Deux façons courantes de coder des plages de notes : tests croissants (n < 10, n < 12, ...) ou décroissants (n >= 16, n >= 14, ...).
  • Attention aux erreurs logiques : confondre and/or dans une validation ou utiliser = au lieu de ==.
  • Dans les boucles, combiner conditions (&&) permet d’introduire une borne maximale.
  • Tester toujours le code avec exemples concrets pour vérifier le comportement attendu.
  • Préférer l’expression explicite des conditions plutôt que compter sur des présupposés sur l’ordre d’évaluation.

7. Tableau récapitulatif

Catégorie Symbole / exemple Rôle / effet
Exponentiation ** Plus haute priorité (ex. 2 ** 3 = 8)
Mult/Div/Modulo *, /, % Priorité intermédiaire ; % = reste (14 % 3 = 2)
Add/Sub +, - Priorité la plus basse
Comparaisons ==, !=, <, <=, >, >= Produisent true/false pour if/while
Logiques ! , and/&& , or/

8. Vérifications pratiques

  • Afficher le type et la valeur d’un booléen avec type_et_valeur(true/false) ou var_dump pour vérifier le résultat des comparaisons.
  • Vérifier expressions arithmétiques connues (ex. 5-3*2+23 donne 2) pour confirmer la priorité.
  • Tester modulo sur exemples (15 % 2 = 1, 23 % 4 = 3).
  • Pour contrôle de transaction, vérifier que l’affichage "Autoriser la transaction" survient si et seulement si S >= M.
  • Pour mentions d’examen, vérifier que chaque intervalle renvoie la chaîne attendue (non obtenu, passable, assez bien, bien, très bien).
  • Dans le programme d’intersection, vérifier l’un des messages : "Double et Triple valent X", "se croisent au-dessus de X", ou "ne se croisent pas..." selon les valeurs d’entrée.

9. Flashcards Anki

Symbole du modulo en programmation :: % Symbole de l’exponentiation en pseudo-code/PHP expliqué dans le cours :: ** Valeurs booléennes de base citées dans le document :: true et false Que retourne l’expression 14 % 3 selon l’exemple du cours :: 2 Opération la plus prioritaire parmi + - * / % ** :: ** Rôle de type_et_valeur(expr) dans les exemples :: Afficher le type et la valeur d’une expression booléenne Signification de l’opérateur xor selon le cours :: Vrai si A ou B est vrai mais pas les deux Que fait l’opérateur ! :: Négation : inverse true ↔ false Condition pour autoriser une transaction par carte à contrôle de solde :: S >= M Erreur repérée dans l’exemple de validation de date :: usage de '=' au lieu de '==' dans une comparaison