Introduction aux algorithmes · Leçon 1
Introduction aux algorithmes : organigrammes et pseudocode
Décrire la solution d'un problème étape par étape, en organigramme et en pseudocode, puis la vérifier à la main avant de la programmer.
À la fin de la leçon, vous représentez l'algorithme d'un problème simple, avec une suite d'étapes et une décision, sous forme d'organigramme et de pseudocode, puis vous le vérifiez avec une trace.
- Situation : la boutique en ligne
- Capsule théorique
- Démonstration guidée
- Exercices guidés
- Défi autonome
- Retour réflexif
Ce que vous allez faire
- Découvrir pourquoi une procédure en français courant ne suffit pas.
- Dessiner un organigramme avec les quatre symboles de base.
- Écrire le même algorithme en pseudocode.
- Vérifier un algorithme à la main avec une trace, et y trouver une erreur.
Vous aurez réussi si…
- chaque symbole de vos organigrammes correspond au bon genre d'étape ;
- votre organigramme et votre pseudocode disent exactement la même chose ;
- vos traces donnent les résultats attendus, y compris dans les cas limites.
A. Situation : la boutique en ligne
Les Paniers du Plateau, une petite boutique en ligne de produits locaux, applique une règle simple : la livraison est gratuite à partir de 50 d'achats ; sinon, elle coûte 7,99 . Pourtant, les employés se trompent souvent en calculant le total à payer. La propriétaire veut une méthode que n'importe qui, ou n'importe quel programme, pourrait suivre sans erreur.
Activité en équipe de deux
- Écrire (5 min). Rédigez, en français courant, la procédure pour calculer le total à payer d'une commande.
- Échanger et exécuter (5 min). Échangez votre feuille avec une autre équipe. Exécutez sa procédure à la lettre, sans rien deviner ni compléter, pour trois commandes : 42 , 50 et 65 . Notez le total obtenu pour chacune.
- Comparer (10 min). En groupe, comparez les totaux obtenus pour une même commande.
Les totaux ne concordent pas toujours, surtout pour 50 : « plus de 50 » inclut-il 50 ? Certaines procédures oublient d'additionner les frais, d'autres ne disent pas quoi annoncer au client. Pour qu'une procédure donne toujours le même résultat, peu importe qui la suit, il faut l'écrire de façon précise, complète et sans ambiguïté. C'est exactement ce qu'est un algorithme.
B. Capsule théorique
Qu'est-ce qu'un algorithme ?
Un algorithme est une suite finie d'étapes précises, dans un ordre déterminé, qui mène d'un problème à sa solution. Une recette, un itinéraire ou une notice de montage sont des algorithmes de la vie courante. En informatique, l'algorithme se prépare avant le programme : on règle d'abord la logique, on écrit le code ensuite.
Entrées, traitement et sorties
Avant d'écrire un algorithme, on repère trois choses dans le problème.
| Partie | Question à se poser | Pour la boutique |
|---|---|---|
| Entrées | Quelles données reçoit-on ? | Le montant de la commande |
| Traitement | Que faut-il calculer ou décider ? | Les frais de livraison, puis le total |
| Sorties | Quel résultat affiche-t-on ? | Le total à payer |
Deux structures pour commencer
- La séquence : les étapes s'exécutent l'une après l'autre, de la première à la dernière.
- La décision : l'algorithme choisit entre deux chemins selon une condition, qui est vraie ou fausse. Par exemple : « le montant est-il d'au moins 50 ? »
Une troisième structure, la répétition, viendra dans une leçon ultérieure.
L'organigramme
L'organigramme représente un algorithme sous forme de schéma. Chaque forme indique le genre d'étape, et les flèches donnent l'ordre dans lequel on les exécute.
La flèche ← se lit « reçoit » : x ← a + b signifie que la variable x reçoit le résultat de a + b. Une variable est simplement un nom qui mémorise une valeur, comme montant ou total.
Quel symbole utiliseriez-vous pour chacune de ces étapes ?
- Lire l'âge du client.
- Calculer la taxe.
- Le client est-il membre ?
- Afficher le total.
Réponses de la question éclair
1. Parallélogramme (entrée). 2. Rectangle (traitement). 3. Losange (décision). 4. Parallélogramme (sortie).
La deuxième partie de la capsule, le pseudocode et la trace, se trouve au cœur de la démonstration, juste après l'organigramme.
C. Démonstration guidée
Reprenons la boutique et construisons l'algorithme pas à pas.
Étape 1 : analyser le problème
Entrée : montant. Traitement : déterminer frais selon le montant, puis calculer total. Sortie : total.
Étape 2 : dessiner l'organigramme
La règle contient un choix, donc un losange. Voici une première version.
Capsule théorique, suite : le pseudocode
Le pseudocode décrit le même algorithme en texte, avec quelques mots-clés en majuscules. Il ne dépend d'aucun langage de programmation : on peut le traduire ensuite en C#, en Python ou dans un autre langage.
| Étape | Pseudocode | Symbole |
|---|---|---|
| Commencer et terminer | DÉBUT … FIN | Ovale |
| Lire une entrée | LIRE montant | Parallélogramme |
| Calculer, affecter | total ← montant + frais | Rectangle |
| Afficher une sortie | AFFICHER total | Parallélogramme |
| Décider | SI … ALORS … SINON … FIN SI | Losange |
Les instructions placées à l'intérieur d'un SI ou d'un SINON sont décalées vers la droite (indentées) : on voit ainsi d'un coup d'œil ce qui dépend de la condition. Les nombres s'écrivent à la française, avec une virgule.
Capsule théorique, suite : la trace
Faire la trace, c'est exécuter l'algorithme à la main avec des valeurs réelles. Chaque ligne du tableau correspond à une étape exécutée, et chaque colonne suit une variable. Un ? indique une variable qui n'a pas encore de valeur. La trace permet de trouver les erreurs avant d'écrire la moindre ligne de code.
Étape 3 : traduire l'organigramme en pseudocode
On suit l'organigramme de haut en bas, symbole par symbole.
DÉBUT LIRE montant SI montant > 50 ALORS frais ← 0 SINON frais ← 7,99 FIN SI total ← montant + frais AFFICHER total FIN
Étape 4 : faire la trace
Commençons par le cas qui a posé problème dans l'activité : une commande de 50 .
| Étape exécutée | montant | frais | total | Affichage |
|---|---|---|---|---|
LIRE montant | 50 | ? | ? | |
SI montant > 50 : faux, branche Non | 50 | ? | ? | |
frais ← 7,99 | 50 | 7,99 | ? | |
total ← montant + frais | 50 | 7,99 | 57,99 | |
AFFICHER total | 50 | 7,99 | 57,99 | 57,99 |
La règle dit : livraison gratuite à partir de 50 . Le client devrait payer 50,00 , mais l'algorithme affiche 57,99 . La condition montant > 50 exclut 50 ; il fallait montant ≥ 50. Une trace faite seulement avec 42 ou 65 n'aurait rien révélé : c'est la valeur limite, 50, qui trahit l'erreur.
Étape 5 : corriger, puis vérifier de nouveau
On corrige la condition dans l'organigramme et dans le pseudocode.
DÉBUT LIRE montant SI montant ≥ 50 ALORS frais ← 0 SINON frais ← 7,99 FIN SI total ← montant + frais AFFICHER total FIN
On refait la trace des trois commandes de l'activité. Cette fois, chaque résultat respecte la règle.
| montant | montant ≥ 50 ? | frais | Total affiché |
|---|---|---|---|
| 42 | Non | 7,99 | 49,99 |
| 50 | Oui | 0 | 50 |
| 65 | Oui | 0 | 65 |
Testez toujours une valeur de chaque côté de la décision et la valeur limite exacte. C'est le moyen le plus sûr de vérifier que la condition utilise le bon opérateur.
D. Exercices guidés
Travaillez en équipe de deux. Dessinez les organigrammes à la main ou dans diagrams.net (gratuit, en ligne).
GuidéExercice 1 : Le thermomètre
Énoncé : « L'algorithme lit une température en degrés Celsius et affiche la température équivalente en degrés Fahrenheit, avec la formule F = C × 9 / 5 + 32. »
Cet échauffement ne demande aucune décision : c'est une séquence.
- Repérez l'entrée, le traitement et la sortie.
- Dessinez l'organigramme.
- Écrivez le pseudocode.
- Faites la trace pour 20 °C, puis pour −10 °C.
Vous avez réussi si votre trace donne 68 °F pour 20 °C et 14 °F pour −10 °C.
GuidéExercice 2 : Le cinéma de quartier
Énoncé : « L'algorithme lit l'âge du client et le nombre de billets. Le billet coûte 9 pour un client de moins de 12 ans, et 14 sinon. L'algorithme affiche le prix total. »
- Dessinez l'organigramme.
- Écrivez le pseudocode.
- Faites la trace pour deux cas : un client de 8 ans qui achète 3 billets, puis un client de 12 ans qui en achète 2.
Bloqués ? Ouvrez les indices un à la fois, seulement si vous en avez besoin.
Indice 1
Commencez par l'analyse. Il y a deux entrées : age et nombre.
Indice 2
Il y a une seule décision, et elle porte sur l'âge. Le calcul du total, lui, se fait une seule fois, après la décision.
Indice 3
« Moins de 12 ans » : un client de 12 ans paie-t-il 9 ou 14 ? Votre condition doit envoyer le cas limite dans la bonne branche.
Indice 4 : le squelette du pseudocode
DÉBUT LIRE age LIRE nombre SI ________ ALORS prix ← ____ SINON prix ← ____ FIN SI total ← ________ AFFICHER total FIN
Vous avez réussi si votre trace donne 27 pour le premier cas et 28 pour le second.
E. Défi autonome
Travaillez seul, sans consulter les solutions, à la fin de la page, avant d'avoir terminé. Vérifiez ensuite votre travail avec la grille d'autovérification.
AutonomeExercice 3 : La note finale
Énoncé : « L'algorithme lit la note de l'examen et la note du projet, toutes deux sur 100. L'examen compte pour 40 % de la note finale et le projet pour 60 %. L'algorithme affiche la note finale, puis le message « Réussite » si elle vaut au moins 60, et « Échec » sinon. »
Produisez l'organigramme, le pseudocode et la trace des deux cas suivants.
| Cas | Examen | Projet |
|---|---|---|
| 1 | 72 | 55 |
| 2 | 50 | 65 |
Vous avez réussi si votre trace affiche 61,8 et « Réussite » pour le cas 1, puis 59 et « Échec » pour le cas 2.
AutonomeExercice 4 : L'amende de retard
Énoncé : « La bibliothèque demande une amende de 0,25 par jour de retard. Un document rendu à temps (0 jour de retard) n'entraîne aucune amende. »
Un collègue a dessiné cet organigramme. Il contient une erreur.
- Écrivez le pseudocode qui correspond exactement à cet organigramme, erreur comprise.
- Faites la trace avec 4 jours de retard, puis avec 0 jour.
- Repérez l'erreur, expliquez-la en une phrase, puis écrivez le pseudocode corrigé.
Vous avez réussi si votre explication nomme l'erreur et si la trace de votre version corrigée affiche 1 pour 4 jours de retard et 0 pour 0 jour.
DéfiExercice 5 : Refuser une note invalide
Pour aller plus loin, si vous avez terminé. Reprenez l'exercice 3 : si l'une des deux notes est plus petite que 0 ou plus grande que 100, l'algorithme affiche « Note invalide » et ne calcule rien. Vous aurez besoin d'une deuxième décision, et du mot OU, qui rend une condition vraie dès qu'une de ses parties est vraie.
Écrivez le pseudocode, puis faites la trace de ces cas : (105, 70), (100, 0) et (0, 100).
Vous avez réussi si vous obtenez « Note invalide », puis 40 et « Échec », puis 60 et « Réussite ».
Grille d'autovérification
- Chaque symbole correspond au bon genre d'étape : aucun calcul dans un parallélogramme, par exemple.
- Chaque losange a deux sorties, étiquetées Oui et Non, et les branches se rejoignent.
- Mon pseudocode dit exactement la même chose que mon organigramme.
- Chaque
SIa sonFIN SI, et le contenu est indenté. - Aucune variable n'est utilisée avant d'avoir été lue ou calculée.
- Mes traces donnent les résultats attendus, y compris au cas limite.
F. Retour réflexif
Trois questions pour faire le bilan
- Relisez la procédure écrite par votre équipe dans l'activité A. Qu'est-ce qui la rendait ambiguë ? Comment l'algorithme règle-t-il ces ambiguïtés ?
- Quand trouvez-vous l'organigramme plus utile que le pseudocode, et inversement ?
- Dans la démonstration comme dans l'exercice 4, qu'est-ce qui a permis de trouver l'erreur ?
Les erreurs les plus fréquentes
| Erreur | Pourquoi c'est un problème |
|---|---|
| Losange sans étiquettes, ou étiquettes inversées | On ne sait pas quelle branche suivre, ou on suit la mauvaise. |
| Calcul placé dans un parallélogramme | Le parallélogramme est réservé aux entrées et aux sorties ; le lecteur se trompe sur le rôle de l'étape. |
> au lieu de ≥ | La valeur limite part dans la mauvaise branche. |
FIN SI oublié | On ne sait plus où la décision se termine ni ce qui s'exécute dans tous les cas. |
| Variable utilisée avant d'avoir une valeur | La trace montre un ? : le calcul est impossible, et l'ordre des étapes est à revoir. |
Je fais le point
- Je sais expliquer ce qu'est un algorithme et pourquoi on l'écrit avant de programmer.
- Je sais repérer les entrées, le traitement et les sorties d'un problème.
- Je sais dessiner un organigramme avec les quatre symboles de base.
- Je sais écrire le pseudocode correspondant, avec
LIRE,←,AFFICHERetSI … ALORS … SINON … FIN SI. - Je sais faire une trace et choisir des valeurs qui testent les cas limites.
Avant de partir, notez sur une feuille une chose que vous savez maintenant faire, et une chose qui reste floue. Remettez-la à votre enseignant.
À la prochaine leçon, ces algorithmes deviendront de vrais programmes : le pseudocode se traduit presque ligne par ligne dans un langage de programmation.
Solutions
Exercice 1 : Le thermomètre
Entrée : celsius. Traitement : le calcul de fahrenheit. Sortie : fahrenheit.
DÉBUT LIRE celsius fahrenheit ← celsius × 9 / 5 + 32 AFFICHER fahrenheit FIN
| celsius | Calcul | fahrenheit affiché |
|---|---|---|
| 20 | 20 × 9 / 5 + 32 = 36 + 32 | 68 |
| −10 | −10 × 9 / 5 + 32 = −18 + 32 | 14 |
Exercice 2 : Le cinéma de quartier
DÉBUT LIRE age LIRE nombre SI age < 12 ALORS prix ← 9 SINON prix ← 14 FIN SI total ← prix × nombre AFFICHER total FIN
| age | nombre | age < 12 ? | prix | Total affiché |
|---|---|---|---|---|
| 8 | 3 | Oui | 9 | 27 |
| 12 | 2 | Non | 14 | 28 |
Le client de 12 ans n'a pas « moins de 12 ans » : il paie le plein tarif. La condition age < 12 l'envoie bien dans la branche Non. Avec age ≤ 12, il paierait 9 par erreur.
Exercice 3 : La note finale
DÉBUT LIRE examen LIRE projet noteFinale ← examen × 0,4 + projet × 0,6 AFFICHER noteFinale SI noteFinale ≥ 60 ALORS AFFICHER "Réussite" SINON AFFICHER "Échec" FIN SI FIN
| Cas | Calcul | noteFinale | noteFinale ≥ 60 ? | Message |
|---|---|---|---|---|
| 1 | 72 × 0,4 + 55 × 0,6 = 28,8 + 33 | 61,8 | Oui | Réussite |
| 2 | 50 × 0,4 + 65 × 0,6 = 20 + 39 | 59 | Non | Échec |
40 % s'écrit 0,4 et 60 % s'écrit 0,6 : on multiplie chaque note par son poids, puis on additionne.
Exercice 4 : L'amende de retard
Pseudocode fidèle à l'organigramme, erreur comprise :
DÉBUT LIRE joursRetard SI joursRetard > 0 ALORS amende ← 0 SINON amende ← joursRetard × 0,25 FIN SI AFFICHER amende FIN
| joursRetard | joursRetard > 0 ? | Branche suivie | Amende affichée | Attendu |
|---|---|---|---|---|
| 4 | Vrai | Oui : amende ← 0 | 0 | 1 ✘ |
| 0 | Faux | Non : amende ← 0 × 0,25 | 0 | 0 ✔ |
L'erreur : les étiquettes Oui et Non du losange sont inversées. Un usager en retard ne paie rien, tandis que le calcul est fait pour celui qui n'est pas en retard. Remarquez que le cas de 0 jour donne par hasard le bon résultat, puisque 0 × 0,25 = 0 : seul le cas de 4 jours révèle l'erreur. Il faut toujours tester les deux branches.
DÉBUT LIRE joursRetard SI joursRetard > 0 ALORS amende ← joursRetard × 0,25 SINON amende ← 0 FIN SI AFFICHER amende FIN
Avec la version corrigée, 4 jours donnent 4 × 0,25 = 1 , et 0 jour donne 0 .
Remarque : ici, amende ← joursRetard × 0,25 seul suffirait, puisqu'il donne déjà 0 pour 0 jour. La décision a l'avantage de rendre la règle « à temps, pas d'amende » visible dans l'algorithme.
Exercice 5 : Refuser une note invalide
DÉBUT LIRE examen LIRE projet SI examen < 0 OU examen > 100 OU projet < 0 OU projet > 100 ALORS AFFICHER "Note invalide" SINON noteFinale ← examen × 0,4 + projet × 0,6 AFFICHER noteFinale SI noteFinale ≥ 60 ALORS AFFICHER "Réussite" SINON AFFICHER "Échec" FIN SI FIN SI FIN
| Examen | Projet | Une note invalide ? | noteFinale | Affichage |
|---|---|---|---|---|
| 105 | 70 | Oui : 105 > 100 | ? | Note invalide |
| 100 | 0 | Non | 40 | 40, puis Échec |
| 0 | 100 | Non | 60 | 60, puis Réussite |
La deuxième décision est placée à l'intérieur du SINON de la première : on ne calcule et on ne juge la note que si les données sont valides. Les notes 0 et 100 sont acceptées, puisque seules les valeurs plus petites que 0 ou plus grandes que 100 sont refusées. Le dernier cas vérifie aussi la limite de réussite : 60 exactement donne « Réussite ».
