Chapitre 4 — Opérateurs et expressions
Calculer, comparer et construire des conditions logiques
Fiche pédagogique du chapitre
Objectifs d’apprentissage
À la fin de ce chapitre, l’étudiant devra être capable de :
- identifier et utiliser les opérateurs arithmétiques usuels ;
- distinguer la division réelle de la division entière ;
- utiliser le modulo pour étudier la divisibilité et les restes ;
- construire des comparaisons à l’aide des opérateurs relationnels ;
- combiner des conditions avec les opérateurs logiques ET, OU et NON ;
- établir et exploiter des tables de vérité ;
- écrire et évaluer une expression arithmétique ou logique ;
- respecter les règles de priorité des opérateurs ;
- utiliser des parenthèses pour rendre une expression non ambiguë ;
- concevoir des algorithmes simples mettant en œuvre calculs et conditions.
Prérequis
- connaître les variables, les constantes et les types simples ;
- savoir utiliser la lecture, l’écriture et l’affectation ;
- maîtriser les opérations mathématiques élémentaires ;
- comprendre la notion de valeur booléenne.
Plan du chapitre
4.1 Opérateurs arithmétiques
4.2 Opérateurs relationnels
4.3 Opérateurs logiques
4.4 Expressions
Applications, synthèse, exercices et corrigé indicatif
Organisation pédagogique indicative
Activité | Durée indicative | Objectif principal |
|---|---|---|
| Cours | 3 h | Présenter les opérateurs, les expressions et leurs priorités. |
| Travaux dirigés | 2 h | Évaluer des expressions et construire des conditions correctes. |
| Travaux pratiques | 2 h | Mettre en œuvre les calculs et les tests dans un langage. |
Idée directrice du chapitre Les opérateurs transforment ou comparent des valeurs. Une expression combine des données et des opérateurs afin de produire un résultat numérique, textuel ou booléen. |
4.1 Opérateurs arithmétiques
4.1.1 Définition générale
Un opérateur arithmétique permet d’effectuer un calcul sur une ou plusieurs valeurs numériques appelées opérandes. Le résultat obtenu est lui-même une valeur numérique. Le type du résultat dépend des opérandes et de l’opérateur utilisé.
Opérateur | Notation en pseudo-code | Exemple | Résultat |
|---|---|---|---|
| Addition | + | 7 + 3 | 10 |
| Soustraction | - | 7 - 3 | 4 |
| Multiplication | × ou * | 7 × 3 | 21 |
| Division réelle | / | 7 / 2 | 3,5 |
| Division entière | DIV | 7 DIV 2 | 3 |
| Modulo | MOD | 7 MOD 2 | 1 |
| Puissance | ^ ou ** | 2 ^ 3 | 8 |
Vocabulaire Dans l’expression 12 + 5, les nombres 12 et 5 sont les opérandes, le signe + est l’opérateur et 17 est le résultat. |
4.1.2 Addition
L’addition calcule la somme de deux valeurs. Elle est notée par le symbole +. Elle s’applique aux entiers et aux réels. Dans certains langages, le même symbole sert aussi à concaténer des chaînes de caractères, mais cette utilisation doit être distinguée du calcul numérique.
Exemples d’addition
| somme ← 15 + 8 total ← prix1 + prix2 nouveau_solde ← ancien_solde + versement |
Expression | Type des opérandes | Résultat |
|---|---|---|
| 5 + 4 | Entiers | 9 |
| 5,5 + 4,2 | Réels | 9,7 |
| 5 + 4,2 | Entier et réel | 9,2, généralement de type réel |
4.1.3 Soustraction
La soustraction calcule la différence entre deux valeurs. Elle est notée par le symbole -. L’ordre des opérandes est important : a - b n’est généralement pas égal à b - a.
| reste_a_payer ← montant_total - montant_verse ecart ← valeur_finale - valeur_initiale temperature_variation ← temperature_jour - temperature_nuit |
Attention au signe Une soustraction peut produire une valeur négative. Le type choisi doit donc permettre de représenter cette valeur. |
4.1.4 Multiplication
La multiplication calcule le produit de deux valeurs. Elle est notée × dans les mathématiques et souvent * dans les langages de programmation. Elle est utilisée pour calculer une surface, un prix total, une conversion ou une répétition quantitative.
| surface ← longueur * largeur prix_total ← quantite * prix_unitaire distance ← vitesse * duree |
4.1.5 Division réelle
La division réelle calcule le quotient exact ou approché de deux nombres. Elle est notée /. Lorsque la division n’est pas exacte, le résultat comporte une partie décimale. Le résultat est généralement de type réel.
Expression | Résultat | Commentaire |
|---|---|---|
| 10 / 2 | 5,0 | Quotient exact, mais souvent représenté comme réel. |
| 7 / 2 | 3,5 | La partie décimale est conservée. |
| 1 / 4 | 0,25 | Résultat inférieur à 1. |
Division par zéro Une division par zéro est impossible. L’algorithme doit vérifier que le diviseur est différent de zéro avant d’effectuer le calcul. |
Contrôle du diviseur
| Si diviseur ≠ 0 Alors quotient ← dividende / diviseur Sinon Écrire("Division impossible") FinSi |
4.1.6 Division entière
La division entière ne conserve que la partie entière du quotient. Elle est souvent notée DIV. Elle est particulièrement utile lorsque l’on souhaite former des groupes complets ou convertir une quantité en unités plus grandes.
Expression | Résultat avec DIV | Interprétation |
|---|---|---|
| 17 DIV 5 | 3 | Trois groupes complets de cinq. |
| 120 DIV 60 | 2 | Deux minutes complètes. |
| 59 DIV 60 | 0 | Aucune minute complète. |
| 365 DIV 12 | 30 | Trente périodes complètes de douze, reste 5. |
Différence essentielle 7 / 2 donne 3,5, tandis que 7 DIV 2 donne 3. La division réelle conserve la partie décimale ; la division entière la supprime. |
4.1.7 Modulo
Le modulo fournit le reste d’une division entière. Il est noté MOD. Si a DIV b donne le nombre de groupes complets, a MOD b donne ce qui reste après la formation de ces groupes.
Calcul | Quotient entier | Reste |
|---|---|---|
| 17 DIV 5 et 17 MOD 5 | 3 | 2 |
| 20 DIV 4 et 20 MOD 4 | 5 | 0 |
| 125 DIV 60 et 125 MOD 60 | 2 | 5 |
Pour des entiers positifs a et b avec b > 0, on a la relation :
Relation fondamentale a = (a DIV b) × b + (a MOD b) |
- tester si un nombre est pair : nombre MOD 2 = 0 ;
- tester la divisibilité par un entier k : nombre MOD k = 0 ;
- extraire le dernier chiffre d’un entier positif : nombre MOD 10 ;
- convertir une durée en unités : secondes MOD 60 donne les secondes restantes ;
- réaliser un fonctionnement cyclique : indice MOD taille.
4.1.8 Puissance
La puissance élève une base à un exposant. Elle peut être notée ^ en pseudo-code et ** dans plusieurs langages. Par exemple, 2^3 signifie 2 × 2 × 2 et vaut 8.
Expression | Lecture | Résultat |
|---|---|---|
| 2 ^ 3 | Deux puissance trois | 8 |
| 5 ^ 2 | Cinq au carré | 25 |
| 10 ^ 0 | Dix puissance zéro | 1 |
| 4 ^ 0,5 | Racine carrée de quatre | 2, selon le langage |
Traduction en langage Le symbole de puissance varie selon le langage. Il faut vérifier la syntaxe : dans certains langages, ^ représente une opération binaire et non une puissance. |
4.1.9 Opérateur unaire
Le signe moins peut aussi être utilisé comme opérateur unaire : il agit sur une seule valeur pour changer son signe. Ainsi, -temperature représente l’opposé de la valeur de temperature. Cette utilisation diffère de la soustraction, qui nécessite deux opérandes.
4.2 Opérateurs relationnels
4.2.1 Principe
Un opérateur relationnel compare deux valeurs. Le résultat d’une comparaison est toujours une valeur booléenne : Vrai ou Faux. Les comparaisons sont utilisées pour construire les conditions des structures Si, TantQue et Répéter.
Relation | Notation | Exemple | Résultat si age = 20 |
|---|---|---|---|
| Égalité | = ou == | age = 20 | Vrai |
| Différence | ≠ ou != | age ≠ 20 | Faux |
| Supérieur | > | age > 18 | Vrai |
| Inférieur | < | age < 18 | Faux |
| Supérieur ou égal | >= ou ≥ | age >= 20 | Vrai |
| Inférieur ou égal | <= ou ≤ | age <= 20 | Vrai |
Résultat booléen Une comparaison ne produit pas un nombre, mais Vrai ou Faux. Par exemple, 12 > 5 vaut Vrai, tandis que 12 = 5 vaut Faux. |
4.2.2 Égalité
L’égalité vérifie si deux valeurs sont identiques. En pseudo-code, elle est souvent notée =. Dans de nombreux langages, l’opérateur de comparaison est == afin de le distinguer de l’affectation.
| est_majeur_exactement ← (age = 18) mot_correct ← (mot_saisi = mot_attendu) est_nul ← (nombre = 0) |
Ne pas confondre L’affectation modifie une variable : x ← 5. La comparaison vérifie une relation : x = 5. Les deux opérations n’ont pas le même rôle. |
4.2.3 Différence
L’opérateur de différence vérifie que deux valeurs ne sont pas égales. Il est noté ≠ en mathématiques et souvent != dans les langages de programmation.
| Si diviseur ≠ 0 Alors resultat ← nombre / diviseur FinSi |
4.2.4 Supérieur et inférieur
Les opérateurs > et < comparent l’ordre de deux valeurs. Ils sont stricts : les valeurs égales ne satisfont pas la condition.
Condition | Valeur testée | Résultat | Explication |
|---|---|---|---|
| note > 10 | note = 10 | Faux | L’égalité n’est pas acceptée. |
| note < 10 | note = 10 | Faux | L’égalité n’est pas acceptée. |
| note > 10 | note = 11 | Vrai | 11 est strictement supérieur à 10. |
| note < 10 | note = 9 | Vrai | 9 est strictement inférieur à 10. |
4.2.5 Supérieur ou égal et inférieur ou égal
Les opérateurs >= et <= incluent l’égalité. Ils servent notamment à vérifier une borne minimale ou maximale.
| admis ← (moyenne >= 10) age_valide ← (age >= 18) note_valide ← (note <= 20) |
4.2.6 Comparaison selon le type
Type | Comparaisons usuelles | Remarque |
|---|---|---|
| Entier ou réel | =, ≠, <, >, <=, >= | Comparer les valeurs numériques. |
| Booléen | =, ≠ | Comparer Vrai et Faux ; souvent une comparaison explicite est inutile. |
| Caractère | =, ≠, parfois ordre | L’ordre dépend du codage utilisé. |
| Chaîne | =, ≠, parfois ordre lexicographique | La casse et les accents peuvent influencer le résultat. |
Comparaison de réels Les calculs réels peuvent produire de petites erreurs d’arrondi. Dans un programme, tester directement resultat = 0,1 peut être risqué ; on utilise parfois une tolérance. |
4.3 Opérateurs logiques
4.3.1 Principe
Les opérateurs logiques agissent sur des valeurs ou expressions booléennes. Ils permettent de combiner plusieurs conditions afin de représenter une règle plus complexe. Les trois opérateurs fondamentaux sont ET, OU et NON.
Opérateur | Rôle | Exemple |
|---|---|---|
| ET | Vrai uniquement si toutes les conditions sont vraies. | (age >= 18) ET (age <= 65) |
| OU | Vrai si au moins une condition est vraie. | (jour = "samedi") OU (jour = "dimanche") |
| NON | Inverse la valeur logique d’une condition. | NON(est_absent) |
4.3.2 Opérateur ET
L’opérateur ET exprime la simultanéité. Une expression A ET B est vraie uniquement lorsque A est vraie et B est vraie. Dès qu’une condition est fausse, le résultat global est faux.
A | B | A ET B |
|---|---|---|
| Faux | Faux | Faux |
| Faux | Vrai | Faux |
| Vrai | Faux | Faux |
| Vrai | Vrai | Vrai |
| age_valide ← (age >= 18) ET (age <= 65) connexion_autorisee ← identifiant_correct ET mot_de_passe_correct |
Interprétation Pour appartenir à un intervalle fermé [minimum, maximum], une valeur doit respecter simultanément les deux bornes : valeur >= minimum ET valeur <= maximum. |
4.3.3 Opérateur OU
L’opérateur OU exprime une alternative. Une expression A OU B est vraie lorsque A est vraie, B est vraie ou les deux sont vraies. Le OU logique est généralement inclusif.
A | B | A OU B |
|---|---|---|
| Faux | Faux | Faux |
| Faux | Vrai | Vrai |
| Vrai | Faux | Vrai |
| Vrai | Vrai | Vrai |
| jour_repos ← (jour = "samedi") OU (jour = "dimanche") valeur_hors_intervalle ← (valeur < minimum) OU (valeur > maximum) |
OU inclusif Dans la logique usuelle, A OU B reste vrai lorsque A et B sont toutes les deux vraies. Un « ou exclusif » demanderait une règle supplémentaire. |
4.3.4 Opérateur NON
L’opérateur NON inverse une valeur booléenne. Il est unaire : il s’applique à une seule condition. NON(Vrai) vaut Faux et NON(Faux) vaut Vrai.
A | NON A |
|---|---|
| Faux | Vrai |
| Vrai | Faux |
| est_present ← NON(est_absent) mot_de_passe_incorrect ← NON(mot_de_passe_correct) |
4.3.5 Combinaison de plusieurs opérateurs
Une condition peut combiner plusieurs opérateurs relationnels et logiques. Les parenthèses sont fortement recommandées afin de rendre la règle explicite.
| eligible ← (age >= 18) ET (age <= 30) ET NON(dossier_incomplet) acces ← est_administrateur OU (est_membre ET abonnement_actif) |
Dans la deuxième expression, l’accès est accordé à un administrateur, ou à une personne qui est à la fois membre et possède un abonnement actif.
4.3.6 Lois logiques utiles
Transformation | Équivalence |
|---|---|
| Négation d’une égalité | NON(x = y) équivaut à x ≠ y |
| Négation d’une supériorité stricte | NON(x > y) équivaut à x <= y |
| Négation d’une infériorité stricte | NON(x < y) équivaut à x >= y |
| Loi de De Morgan | NON(A ET B) équivaut à NON(A) OU NON(B) |
| Loi de De Morgan | NON(A OU B) équivaut à NON(A) ET NON(B) |
Utilité Les lois de De Morgan permettent de simplifier ou de reformuler les conditions, notamment lors de la validation des données. |
4.4 Expressions
4.4.1 Définition
Une expression est une combinaison de constantes, de variables, d’appels de fonctions et d’opérateurs qui produit une valeur. Cette valeur peut être numérique, booléenne, textuelle ou d’un autre type selon le contexte.
Expression | Type du résultat | Exemple de résultat |
|---|---|---|
| prix_unitaire * quantite | Numérique | 149,50 |
| age >= 18 | Booléen | Vrai |
| prenom + " " + nom | Chaîne | "Sara Amrani" |
| nombre MOD 2 | Entier | 0 ou 1 pour un entier positif |
4.4.2 Expressions arithmétiques
Une expression arithmétique combine des valeurs numériques et des opérateurs arithmétiques. Son évaluation suit les règles de priorité. Elle peut être utilisée dans une affectation, un affichage, une comparaison ou comme paramètre d’une fonction.
| moyenne ← (note1 + note2 + note3) / 3 surface ← PI * rayon ^ 2 prix_ttc ← prix_ht * (1 + taux_tva) |
Lorsqu’une expression est affectée à une variable, son type doit être compatible avec le type de la variable de destination. Par exemple, une moyenne contenant des décimales doit être stockée dans une variable réelle.
4.4.3 Expressions logiques
Une expression logique produit Vrai ou Faux. Elle résulte souvent d’une comparaison ou d’une combinaison de comparaisons. Elle peut être affectée à une variable booléenne ou utilisée directement comme condition.
| est_pair ← (nombre MOD 2 = 0) age_valide ← (age >= 18) ET (age <= 65) annee_bissextile ← (annee MOD 400 = 0) OU ((annee MOD 4 = 0) ET (annee MOD 100 ≠ 0)) |
4.4.4 Priorité des opérateurs
Lorsque plusieurs opérateurs apparaissent dans une même expression, ils ne sont pas tous évalués dans l’ordre d’écriture. Les règles de priorité déterminent l’ordre des calculs. À priorité égale, l’évaluation se fait généralement de gauche à droite, sauf certains opérateurs comme la puissance selon le langage.
Niveau indicatif | Opérateurs | Exemples |
|---|---|---|
| 1 — priorité la plus élevée | Parenthèses ( ) | (a + b) * c |
| 2 | Puissance | a ^ b |
| 3 | Opérateurs unaires : NON, signe - | NON(A), -x |
| 4 | Multiplication, division, DIV, MOD | a * b, a / b, a MOD b |
| 5 | Addition, soustraction | a + b, a - b |
| 6 | Relations : =, ≠, <, >, <=, >= | age >= 18 |
| 7 | ET | A ET B |
| 8 — priorité la plus faible | OU | A OU B |
Prudence Les priorités exactes peuvent varier selon le langage. Dans un algorithme pédagogique, les parenthèses permettent d’exprimer clairement l’intention et d’éviter une dépendance inutile aux règles implicites. |
4.4.5 Exemples d’évaluation
Expression | Étapes principales | Résultat |
|---|---|---|
| 2 + 3 * 4 | 3 * 4 = 12, puis 2 + 12 | 14 |
| (2 + 3) * 4 | 2 + 3 = 5, puis 5 * 4 | 20 |
| 17 DIV 5 + 2 | 17 DIV 5 = 3, puis 3 + 2 | 5 |
| 17 MOD 5 = 2 | 17 MOD 5 = 2, puis 2 = 2 | Vrai |
| NON(4 > 1) | 4 > 1 vaut Vrai, puis NON(Vrai) | Faux |
4.4.6 Utilisation des parenthèses
Les parenthèses ont deux fonctions : elles imposent un ordre d’évaluation et rendent l’expression plus facile à comprendre. Elles doivent être équilibrées et entourer des sous-expressions cohérentes.
Sans parenthèses ou peu clair | Forme recommandée | Interprétation |
|---|---|---|
| a + b / c | a + (b / c) | La division est effectuée avant l’addition. |
| age >= 18 ET age <= 65 | (age >= 18) ET (age <= 65) | Les deux comparaisons sont clairement séparées. |
| A OU B ET C | A OU (B ET C) | B ET C est évalué ensemble. |
| NON x = 0 | NON(x = 0) ou x ≠ 0 | La portée de la négation est explicite. |
4.4.7 Erreurs fréquentes
- confondre l’affectation et la comparaison ;
- oublier de vérifier le diviseur avant une division ;
- utiliser / alors que l’on souhaite une division entière ;
- oublier les parenthèses dans le calcul d’une moyenne ;
- employer OU à la place de ET pour vérifier l’appartenance à un intervalle ;
- écrire une condition impossible, par exemple age < 18 ET age > 65 ;
- comparer des données de types incompatibles ;
- supposer que les priorités sont identiques dans tous les langages.
Applications guidées
Application 1 — Tester si un nombre est pair
Un entier est pair lorsqu’il est divisible par 2, c’est-à-dire lorsque le reste de sa division entière par 2 est nul.
Élément | Description |
|---|---|
| Entrée | Un entier nombre. |
| Traitement | Calculer nombre MOD 2 et comparer le résultat à 0. |
| Sortie | Un message indiquant si le nombre est pair ou impair. |
| Algorithme Tester_Parite Variables nombre : Entier Début Écrire("Saisir un entier : ") Lire(nombre) Si nombre MOD 2 = 0 Alors Écrire(nombre, " est pair") Sinon Écrire(nombre, " est impair") FinSi Fin |
nombre | nombre MOD 2 | Résultat |
|---|---|---|
| 8 | 0 | Pair |
| 13 | 1 | Impair |
| 0 | 0 | Pair |
| -6 | 0 | Pair |
Application 2 — Vérifier si un âge appartient à un intervalle
On souhaite vérifier qu’un âge est compris entre 18 et 65 ans inclus. Les deux contraintes doivent être satisfaites simultanément ; l’opérateur ET est donc nécessaire.
| Algorithme Verifier_Age Variables age : Entier Début Écrire("Saisir un âge : ") Lire(age) Si (age >= 18) ET (age <= 65) Alors Écrire("Âge compris dans l’intervalle") Sinon Écrire("Âge hors de l’intervalle") FinSi Fin |
age | age >= 18 | age <= 65 | Condition globale |
|---|---|---|---|
| 17 | Faux | Vrai | Faux |
| 18 | Vrai | Vrai | Vrai |
| 40 | Vrai | Vrai | Vrai |
| 65 | Vrai | Vrai | Vrai |
| 66 | Vrai | Faux | Faux |
Erreur classique La condition (age >= 18) OU (age <= 65) est presque toujours vraie. Par exemple, 10 <= 65 est vrai et 80 >= 18 est vrai. Pour être dans l’intervalle, il faut ET. |
Application 3 — Vérifier si une année est bissextile
Une année est bissextile lorsqu’elle est divisible par 400, ou lorsqu’elle est divisible par 4 sans être divisible par 100. Cette règle montre l’importance des parenthèses et de la combinaison des opérateurs ET et OU.
Règle Bissextile = divisible par 400 OU (divisible par 4 ET non divisible par 100). |
| Algorithme Annee_Bissextile Variables annee : Entier bissextile : Booléen Début Écrire("Saisir une année : ") Lire(annee) bissextile ← (annee MOD 400 = 0) OU ((annee MOD 4 = 0) ET (annee MOD 100 ≠ 0)) Si bissextile Alors Écrire(annee, " est bissextile") Sinon Écrire(annee, " n’est pas bissextile") FinSi Fin |
Année | Divisible par 4 | Divisible par 100 | Divisible par 400 | Bissextile ? |
|---|---|---|---|---|
| 2024 | Oui | Non | Non | Oui |
| 2025 | Non | Non | Non | Non |
| 1900 | Oui | Oui | Non | Non |
| 2000 | Oui | Oui | Oui | Oui |
| 2100 | Oui | Oui | Non | Non |
Application 4 — Calculer la moyenne de plusieurs notes
On souhaite calculer la moyenne arithmétique de quatre notes. La somme doit être calculée avant la division. Les parenthèses rendent cette intention explicite.
Élément | Description |
|---|---|
| Entrées | Quatre notes réelles note1, note2, note3 et note4. |
| Traitement | Additionner les quatre notes, puis diviser la somme par 4. |
| Sortie | La moyenne réelle. |
| Algorithme Moyenne_Quatre_Notes Variables note1, note2, note3, note4, moyenne : Réels Début Écrire("Saisir les quatre notes : ") Lire(note1, note2, note3, note4) moyenne ← (note1 + note2 + note3 + note4) / 4 Écrire("Moyenne = ", moyenne) Fin |
Pourquoi les parenthèses ? Sans parenthèses, l’expression note1 + note2 + note3 + note4 / 4 divise seulement note4 par 4, puis ajoute les autres notes. Le résultat serait incorrect. |
Notes | Somme | Moyenne |
|---|---|---|
| 12 ; 14 ; 10 ; 16 | 52 | 13 |
| 8,5 ; 11 ; 13,5 ; 15 | 48 | 12 |
| 20 ; 20 ; 20 ; 20 | 80 | 20 |
Synthèse du chapitre
Famille | Rôle | Résultat typique | Exemple |
|---|---|---|---|
| Arithmétique | Effectuer un calcul numérique. | Entier ou réel | (a + b) / 2 |
| Relationnelle | Comparer deux valeurs. | Booléen | age >= 18 |
| Logique | Combiner ou nier des conditions. | Booléen | A ET NON(B) |
| Expression | Assembler valeurs et opérateurs. | Dépend de l’expression | (prix * qte) > budget |
À retenir
- la division réelle et la division entière ne produisent pas le même résultat ;
- MOD fournit le reste d’une division entière ;
- une comparaison produit toujours Vrai ou Faux ;
- ET exige que toutes les conditions soient vraies ;
- OU exige qu’au moins une condition soit vraie ;
- NON inverse une valeur booléenne ;
- les parenthèses rendent l’ordre des opérations explicite ;
- une expression doit respecter les types de ses opérandes et de son résultat.
Méthode pour construire une expression
1. Identifier le résultat recherché et son type.
2. Repérer les données nécessaires.
3. Choisir les opérateurs adaptés.
4. Écrire les sous-expressions séparément.
5. Ajouter des parenthèses pour matérialiser les priorités.
6. Tester l’expression avec des valeurs normales et des cas limites.
7. Vérifier les risques : division par zéro, type incompatible, arrondi ou condition toujours vraie.
Correspondances fréquentes avec des langages
Concept | Pseudo-code | Python | C / Java |
|---|---|---|---|
| Affectation | x ← 5 | x = 5 | x = 5; |
| Égalité | x = 5 | x == 5 | x == 5 |
| Différence | x ≠ 5 | x != 5 | x != 5 |
| ET | A ET B | A and B | A && B |
| OU | A OU B | A or B | A || B |
| NON | NON(A) | not A | !A |
| Division entière | a DIV b | a // b | a / b pour des entiers |
| Modulo | a MOD b | a % b | a % b |
| Puissance | a ^ b | a ** b | fonction dédiée, selon le langage |
Important Ces correspondances sont indicatives. La syntaxe, les types et le comportement de la division dépendent du langage choisi. |
Travaux dirigés — Exercices
Exercice 1 — Évaluer des expressions arithmétiques
Calculer la valeur de chaque expression en respectant les priorités :
- A = 5 + 3 × 2 ;
- B = (5 + 3) × 2 ;
- C = 17 DIV 4 ;
- D = 17 MOD 4 ;
- E = 2 ^ 3 + 4 ;
- F = 20 / (2 + 3).
Exercice 2 — Traduire une formule
Écrire les expressions algorithmiques correspondant aux calculs suivants :
- le périmètre d’un rectangle ;
- la surface d’un disque ;
- le prix toutes taxes comprises ;
- la moyenne pondérée de deux notes avec les coefficients 2 et 3 ;
- la distance parcourue à vitesse constante.
Exercice 3 — Comparaisons
Pour x = 8 et y = 12, déterminer la valeur de vérité de :
- x = y ;
- x ≠ y ;
- x < y ;
- x >= 8 ;
- y <= 10 ;
- (x + 4) = y.
Exercice 4 — Tables de vérité
Compléter les tables de vérité de : A ET B, A OU B, NON(A), puis calculer NON(A ET B) et NON(A) OU NON(B). Comparer les deux dernières colonnes.
Exercice 5 — Construire des conditions
Écrire une expression logique qui vérifie chacune des situations suivantes :
- une note est comprise entre 0 et 20 inclus ;
- un nombre est positif et pair ;
- une personne est mineure ou âgée d’au moins 65 ans ;
- un caractère est égal à « O » ou à « o » ;
- un diviseur est valide ;
- un nombre n’appartient pas à l’intervalle [10, 100].
Exercice 6 — Corriger les expressions
Repérer et corriger les erreurs ou ambiguïtés :
| moyenne ← note1 + note2 + note3 / 3 dans_intervalle ← age >= 18 OU age <= 65 pair ← nombre / 2 = 0 division ← a / b acces ← administrateur OU membre ET abonnement_actif |
Pour la quatrième expression, proposer une vérification préalable. Pour la cinquième, ajouter les parenthèses correspondant à l’intention suivante : un administrateur a toujours accès ; un membre n’a accès que si son abonnement est actif.
Exercice 7 — Durée
Écrire un algorithme qui lit un nombre total de secondes et affiche le nombre d’heures complètes, de minutes restantes et de secondes restantes. Utiliser DIV et MOD.
Exercice 8 — Tarif conditionnel
Une réduction est accordée lorsqu’un client a moins de 18 ans ou au moins 60 ans. Écrire l’expression logique correspondante, puis un algorithme affichant « Tarif réduit » ou « Tarif normal ».
Corrigé indicatif des travaux dirigés
Corrigé de l’exercice 1
Expression | Évaluation | Résultat |
|---|---|---|
| A = 5 + 3 × 2 | 5 + 6 | 11 |
| B = (5 + 3) × 2 | 8 × 2 | 16 |
| C = 17 DIV 4 | Quotient entier | 4 |
| D = 17 MOD 4 | Reste de la division | 1 |
| E = 2 ^ 3 + 4 | 8 + 4 | 12 |
| F = 20 / (2 + 3) | 20 / 5 | 4 |
Corrigé de l’exercice 2
| perimetre ← 2 * (longueur + largeur) surface_disque ← PI * rayon ^ 2 prix_ttc ← prix_ht * (1 + taux_tva) moyenne_ponderee ← (2 * note1 + 3 * note2) / (2 + 3) distance ← vitesse * duree |
Corrigé de l’exercice 3
Expression | Résultat |
|---|---|
| x = y | Faux |
| x ≠ y | Vrai |
| x < y | Vrai |
| x >= 8 | Vrai |
| y <= 10 | Faux |
| (x + 4) = y | Vrai |
Corrigé de l’exercice 4
A | B | A ET B | A OU B | NON(A) | NON(A ET B) | NON(A) OU NON(B) |
|---|---|---|---|---|---|---|
| Faux | Faux | Faux | Faux | Vrai | Vrai | Vrai |
| Faux | Vrai | Faux | Vrai | Vrai | Vrai | Vrai |
| Vrai | Faux | Faux | Vrai | Faux | Vrai | Vrai |
| Vrai | Vrai | Vrai | Vrai | Faux | Faux | Faux |
Les deux dernières colonnes sont identiques. Elles illustrent la loi de De Morgan : NON(A ET B) équivaut à NON(A) OU NON(B).
Corrigé de l’exercice 5
| note_valide ← (note >= 0) ET (note <= 20) positif_et_pair ← (nombre > 0) ET (nombre MOD 2 = 0) tarif_special ← (age < 18) OU (age >= 65) reponse_oui ← (caractere = "O") OU (caractere = "o") diviseur_valide ← (diviseur ≠ 0) hors_intervalle ← (nombre < 10) OU (nombre > 100) |
Corrigé de l’exercice 6
| moyenne ← (note1 + note2 + note3) / 3 dans_intervalle ← (age >= 18) ET (age <= 65) pair ← (nombre MOD 2 = 0) Si b ≠ 0 Alors division ← a / b Sinon Écrire("Division impossible") FinSi acces ← administrateur OU (membre ET abonnement_actif) |
Corrigé de l’exercice 7
| Algorithme Convertir_Duree Variables total_secondes, heures, minutes, secondes, reste : Entiers Début Lire(total_secondes) heures ← total_secondes DIV 3600 reste ← total_secondes MOD 3600 minutes ← reste DIV 60 secondes ← reste MOD 60 Écrire(heures, " h ", minutes, " min ", secondes, " s") Fin |
Total | Heures | Minutes | Secondes |
|---|---|---|---|
| 3725 | 1 | 2 | 5 |
| 7200 | 2 | 0 | 0 |
| 59 | 0 | 0 | 59 |
Corrigé de l’exercice 8
| reduction ← (age < 18) OU (age >= 60) Si reduction Alors Écrire("Tarif réduit") Sinon Écrire("Tarif normal") FinSi |
Activité de prolongement
Concevoir un algorithme de validation d’une note qui :
- lit une note ;
- vérifie qu’elle appartient à l’intervalle [0, 20] ;
- affiche si elle est valide ;
- indique, lorsqu’elle est valide, si elle est supérieure ou égale à 10 ;
- utilise une variable booléenne pour chaque règle.
Conseil pédagogique Demander aux étudiants d’évaluer manuellement chaque expression avant de l’exécuter dans un langage. La confrontation entre la prévision et le résultat du programme aide à comprendre les priorités et les types. |
Glossaire
Terme | Définition |
|---|---|
| Opérande | Valeur sur laquelle agit un opérateur. |
| Opérateur | Symbole ou mot qui réalise une opération. |
| Expression | Combinaison qui produit une valeur. |
| Quotient entier | Nombre de groupes complets obtenu par DIV. |
| Modulo | Reste d’une division entière. |
| Relation | Comparaison produisant Vrai ou Faux. |
| Table de vérité | Table donnant le résultat d’une expression logique pour toutes les combinaisons possibles. |
| Priorité | Règle déterminant l’ordre d’évaluation des opérateurs. |
Auto-évaluation
L’étudiant peut considérer le chapitre acquis s’il sait répondre positivement aux questions suivantes :
- Puis-je expliquer la différence entre /, DIV et MOD ?
- Puis-je construire une comparaison produisant Vrai ou Faux ?
- Puis-je choisir correctement entre ET et OU ?
- Puis-je compléter une table de vérité ?
- Puis-je évaluer une expression en respectant les priorités ?
- Puis-je utiliser les parenthèses pour rendre une expression explicite ?
- Puis-je détecter une division par zéro ou une condition toujours vraie ?
- Puis-je traduire une règle écrite en français en expression algorithmique ?
Conclusion Les opérateurs et les expressions constituent le langage du calcul et de la décision. Leur maîtrise est indispensable avant d’aborder les structures conditionnelles et répétitives. |