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