Bonjour ! Bienvenue dans cette quatrième leçon sur les fondamentaux de l'algorithmique.
Introduction
Dans la leçon précédente, nous avons appris à utiliser les variables comme des "boîtes" pour stocker des informations (nombres, textes, etc.). Nous savons les déclarer et leur assigner des valeurs avec l'instruction d'affectation (←).
Maintenant que nos données sont bien rangées, il est temps de les utiliser pour effectuer des opérations : des calculs, des comparaisons, des combinaisons logiques. C'est le rôle des expressions. Cette leçon est entièrement dédiée à l'apprentissage de l'écriture d'expressions arithmétiques et logiques en utilisant les opérateurs appropriés.
Maîtriser les expressions est une étape cruciale. C'est grâce à elles que vos algorithmes pourront effectuer des traitements, évaluer des conditions et, en fin de compte, résoudre de vrais problèmes. C'est le cœur du "traitement" dans le schéma Entrée -> Traitement -> Sortie.
1. Qu'est-ce qu'une expression ?
Une expression est une combinaison de valeurs, de variables et d'opérateurs qu'un algorithme peut "évaluer" pour produire un unique résultat.
- L'expression
5 + 3s'évalue à la valeur8. - Si la variable
prixHTcontient100, l'expressionprixHT * 1.2s'évalue à120. - Si la variable
agecontient25, l'expressionage >= 18s'évalue à la valeur booléenneVRAI.
Ces expressions sont ensuite utilisées, le plus souvent, dans une instruction d'affectation pour stocker le résultat dans une variable : prixTTC ← prixHT * 1.2.
Nous allons étudier deux grandes familles d'expressions : arithmétiques et logiques.
2. Les expressions arithmétiques
Ce sont les plus intuitives. Une expression arithmétique combine des nombres et/ou des variables numériques avec des opérateurs arithmétiques pour produire un résultat numérique.
Pour découvrir ces opérateurs et, surtout, une règle fondamentale qui est leur ordre de priorité, je vous invite à consulter la ressource suivante.
Chapitre 1 : Notions d'algorithme et de programme
Ce document PDF, que nous utiliserons pour cette leçon, explique de manière concise les différents types d'opérateurs que vous pouvez utiliser. Commençons par les opérateurs de calcul.
Lisez la section 6, point A 'DES OPERATEURS ARITHMETIQUES' pour voir la liste des opérateurs. Ensuite, lisez attentivement la section 7.1, en vous concentrant sur la partie 'Pour l’évaluation des expressions arithmétiques' qui explique l'ordre des priorités.
Résumé des opérateurs arithmétiques
| Opérateur | Description | Exemple | Résultat |
|---|---|---|---|
+ |
Addition | 7 + 3 |
10 |
- |
Soustraction | 7 - 3 |
4 |
* |
Multiplication | 7 * 3 |
21 |
/ |
Division réelle | 7 / 2 |
3.5 |
DIV |
Division entière | 7 DIV 2 |
3 |
MOD |
Modulo (reste de la division entière) | 7 MOD 2 |
1 |
La priorité des opérations est la même qu'en mathématiques :
- Les parenthèses
()sont évaluées en premier. - La multiplication
*, la division/(ainsi queDIVetMOD) viennent ensuite. - L'addition
+et la soustraction-sont effectuées en dernier.
C'est pour cela que l'expression 5 + 3 * 2 donne 11 (car 3 * 2 est calculé d'abord), alors que (5 + 3) * 2 donne 16 (car les parenthèses forcent l'addition en premier). En cas de doute, ou pour plus de clarté, n'hésitez jamais à utiliser des parenthèses !
3. Les expressions logiques
Les expressions logiques sont le cerveau de nos algorithmes. Elles ne produisent pas un nombre, mais une valeur booléenne : VRAI ou FAUX. Elles sont essentielles pour permettre à un algorithme de prendre des décisions.
Une expression logique est construite à l'aide de deux types d'opérateurs :
- Les opérateurs relationnels (de comparaison).
- Les opérateurs logiques.
L'image ci-dessous offre un excellent résumé visuel de ces opérateurs.
Maintenant, approfondissons avec notre document de référence.
Chapitre 1 : Notions d'algorithme et de programme
Retournons au même document pour voir les détails sur les opérateurs qui nous permettent de construire des conditions et des raisonnements logiques.
Relisez la section 6, mais cette fois, concentrez-vous sur les points B 'DES OPERATEURS RELATIONNELS' et C 'DES OPERATEURS LOGIQUES'. Ensuite, dans la section 7.1, examinez les priorités pour les 'expressions logiques'.
Résumé des opérateurs logiques et relationnels
Opérateurs relationnels : Ils comparent deux valeurs et renvoient VRAI ou FAUX.
| Opérateur | Description | Exemple (si A vaut 10) |
Résultat |
|---|---|---|---|
= |
Égal à | A = 10 |
VRAI |
<> |
Différent de | A <> 5 |
VRAI |
< |
Strictement inférieur à | A < 10 |
FAUX |
> |
Strictement supérieur à | A > 5 |
VRAI |
<= |
Inférieur ou égal à | A <= 10 |
VRAI |
>= |
Supérieur ou égal à | A >= 11 |
FAUX |
Opérateurs logiques : Ils combinent des valeurs ou expressions booléennes.
NON: Inverse une valeur (NON VRAIdevientFAUX).ET: RenvoieVRAIseulement si les deux côtés sontVRAI.OU: RenvoieVRAIsi au moins un des deux côtés estVRAI.
Exemple combiné :
Imaginons que nous voulons vérifier si un client a droit à une réduction "jeune". Il faut qu'il ait moins de 25 ans ET qu'il soit étudiant.
reductionActive ← (age < 25) ET (estEtudiant = VRAI)
L'ordinateur évalue d'abord (age < 25), puis (estEtudiant = VRAI). S'ils sont tous les deux VRAI, alors reductionActive recevra la valeur VRAI.
4. L'opérateur de concaténation
Il existe aussi un opérateur pour les chaînes de caractères : la concaténation. Il permet de "coller" des chaînes les unes à la suite des autres. En pseudo-code, on utilise souvent le & (ou parfois le +).
message ← "Bonjour " & "monde" // message vaudra "Bonjour monde"
C'est très utile pour construire des messages dynamiques.messageBienvenue ← "Bonjour, " & nomUtilisateur & " !"
5. Mise en pratique
Votre préférence allant à la pratique, mettons immédiatement ces connaissances en application avec quelques exercices. Essayez d'écrire la ligne d'affectation qui utilise la bonne expression pour résoudre chaque problème.
Exercice 1 : Calculatrice de TVA
- Objectif : Écrire l'expression pour calculer un prix TTC.
- Variables disponibles :
prixHT(Réel),tauxTVA(Réel, ex: 0.20),prixTTC(Réel). - Votre tâche : Écrivez la ligne de code qui affecte la bonne valeur à
prixTTC.
...
Solution :prixTTC ← prixHT * (1 + tauxTVA)
ou, de manière équivalente :prixTTC ← prixHT + (prixHT * tauxTVA)
Exercice 2 : Le test du nombre pair
- Objectif : Écrire une expression logique qui détermine si un nombre est pair.
- Indice : Un nombre est pair si le reste de sa division par 2 est égal à 0.
- Variables disponibles :
nombre(Entier),estPair(Booléen). - Votre tâche : Écrivez la ligne de code qui affecte
VRAIouFAUXàestPair.
...
Solution :estPair ← (nombre MOD 2) = 0
Exercice 3 : L'accès au club privé
- Objectif : Écrire une expression logique complexe pour décider si une personne peut entrer dans une zone restreinte.
- Conditions : La personne doit être majeure (18 ans ou plus) OU être accompagnée par un adulte.
- Variables disponibles :
age(Entier),estAccompagne(Booléen). La variablepeutEntrer(Booléen) doit recevoir le résultat. - Votre tâche : Écrivez la ligne d'affectation pour
peutEntrer.
...
Solution :peutEntrer ← (age >= 18) OU (estAccompagne = VRAI)
Résumé de la leçon
Excellent travail ! Vous savez maintenant comment donner vie à vos algorithmes.
- Une expression est une formule qui s'évalue à une valeur unique.
- Les expressions arithmétiques utilisent des opérateurs comme
+,*,MODpour effectuer des calculs et produisent un résultat numérique. - Les expressions logiques utilisent des opérateurs de comparaison (
>,=,<>) et logiques (ET,OU,NON) pour effectuer des raisonnements et produisent un résultat booléen (VRAIouFAUX). - La priorité des opérateurs (parenthèses d'abord) est essentielle pour garantir que vos expressions sont évaluées correctement.
Et après ?
Maintenant que nous savons écrire des instructions et des expressions, la prochaine étape logique est d'apprendre à suivre leur exécution pas à pas. Dans la prochaine leçon, nous nous concentrerons sur une compétence fondamentale pour tout développeur : tracer manuellement l'exécution d'un algorithme simple. Cela nous permettra de vérifier que nos expressions produisent bien les résultats attendus et de débusquer les erreurs de logique.