Leçon 01

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.

Objectif de la leçon

À 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.

Dans cette leçon
  1. Situation : la boutique en ligne
  2. Capsule théorique
  3. Démonstration guidée
  4. Exercices guidés
  5. Défi autonome
  6. 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

  1. Écrire (5 min). Rédigez, en français courant, la procédure pour calculer le total à payer d'une commande.
  2. É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.
  3. Comparer (10 min). En groupe, comparez les totaux obtenus pour une même commande.
Ce que l'activité révèle

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.

PartieQuestion à se poserPour la boutique
EntréesQuelles données reçoit-on ?Le montant de la commande
TraitementQue faut-il calculer ou décider ?Les frais de livraison, puis le total
SortiesQuel 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.

DÉBUTLIRE xx ← a + bx > 0 ?Début, finDÉBUT, FINEntrée, sortieLIRE, AFFICHERTraitementcalcul, ←DécisionOui ou NonLes flèches relient les symboles, de haut en bas.
Les quatre symboles de base. Le losange est le seul qui a deux sorties : l'une étiquetée Oui, l'autre Non.

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.

Question éclair

Quel symbole utiliseriez-vous pour chacune de ces étapes ?

  1. Lire l'âge du client.
  2. Calculer la taxe.
  3. Le client est-il membre ?
  4. 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.

DÉBUTLIRE montantmontant > 50 ?Ouifrais ← 0Nonfrais ← 7,99total ← montant + fraisAFFICHER totalFIN
Première version. Chaque sortie du losange est étiquetée, et les deux branches se rejoignent au point avant de poursuivre.

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.

ÉtapePseudocodeSymbole
Commencer et terminerDÉBUT … FINOvale
Lire une entréeLIRE montantParallélogramme
Calculer, affectertotal ← montant + fraisRectangle
Afficher une sortieAFFICHER totalParallélogramme
DéciderSI … ALORS … SINON … FIN SILosange

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.

Pseudocode · Livraison, première version
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éemontantfraistotalAffichage
LIRE montant50?? 
SI montant > 50 : faux, branche Non50?? 
frais ← 7,99507,99? 
total ← montant + frais507,9957,99 
AFFICHER total507,9957,9957,99
Une erreur apparaît

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ÉBUTLIRE montantmontant ≥ 50 ?Ouifrais ← 0Nonfrais ← 7,99total ← montant + fraisAFFICHER totalFIN
Version corrigée : seule la condition du losange a changé, de > à ≥.
Pseudocode · Livraison, version corrigée
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.

montantmontant ≥ 50 ?fraisTotal affiché
42Non7,9949,99
50Oui050
65Oui065
À retenir

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.

  1. Repérez l'entrée, le traitement et la sortie.
  2. Dessinez l'organigramme.
  3. Écrivez le pseudocode.
  4. 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. »

  1. Dessinez l'organigramme.
  2. Écrivez le pseudocode.
  3. 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
Pseudocode · Cinéma, à compléter
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.

CasExamenProjet
17255
25065

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.

DÉBUTLIRE joursRetardjoursRetard > 0 ?Ouiamende ← 0Nonamende ← joursRetard × 0,25AFFICHER amendeFIN
L'organigramme à vérifier.
  1. Écrivez le pseudocode qui correspond exactement à cet organigramme, erreur comprise.
  2. Faites la trace avec 4 jours de retard, puis avec 0 jour.
  3. 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 SI a son FIN 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

  1. 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 ?
  2. Quand trouvez-vous l'organigramme plus utile que le pseudocode, et inversement ?
  3. 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

ErreurPourquoi c'est un problème
Losange sans étiquettes, ou étiquettes inverséesOn ne sait pas quelle branche suivre, ou on suit la mauvaise.
Calcul placé dans un parallélogrammeLe 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 valeurLa 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, ←, AFFICHER et SI … ALORS … SINON … FIN SI.
  • Je sais faire une trace et choisir des valeurs qui testent les cas limites.
Billet de sortie

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ÉBUTLIRE celsiusfahrenheit ← celsius × 9 / 5 + 32AFFICHER fahrenheitFIN
Une séquence : les étapes s'enchaînent sans décision.
Pseudocode · Thermomètre
DÉBUT
  LIRE celsius
  fahrenheit ← celsius × 9 / 5 + 32
  AFFICHER fahrenheit
FIN
celsiusCalculfahrenheit affiché
2020 × 9 / 5 + 32 = 36 + 3268
−10−10 × 9 / 5 + 32 = −18 + 3214
Exercice 2 : Le cinéma de quartier
DÉBUTLIRE ageLIRE nombreage < 12 ?Ouiprix ← 9Nonprix ← 14total ← prix × nombreAFFICHER totalFIN
La décision choisit le prix d'un billet ; le total se calcule ensuite, une seule fois, pour les deux branches.
Pseudocode · Cinéma
DÉBUT
  LIRE age
  LIRE nombre
  SI age < 12 ALORS
    prix ← 9
  SINON
    prix ← 14
  FIN SI
  total ← prix × nombre
  AFFICHER total
FIN
agenombreage < 12 ?prixTotal affiché
83Oui927
122Non1428

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ÉBUTLIRE examenLIRE projetnoteFinale ← examen × 0,4 + projet × 0,6AFFICHER noteFinalenoteFinale ≥ 60 ?OuiAFFICHER "Réussite"NonAFFICHER "Échec"FIN
La note s'affiche dans tous les cas ; seul le message dépend de la décision. Chaque branche contient ici une sortie.
Pseudocode · 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
CasCalculnoteFinalenoteFinale ≥ 60 ?Message
172 × 0,4 + 55 × 0,6 = 28,8 + 3361,8OuiRéussite
250 × 0,4 + 65 × 0,6 = 20 + 3959NonÉ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 :

Pseudocode · Amende, fidèle à l’organigramme
DÉBUT
  LIRE joursRetard
  SI joursRetard > 0 ALORS
    amende ← 0
  SINON
    amende ← joursRetard × 0,25
  FIN SI
  AFFICHER amende
FIN
joursRetardjoursRetard > 0 ?Branche suivieAmende affichéeAttendu
4VraiOui : amende ← 001 ✘
0FauxNon : amende ← 0 × 0,2500 ✔

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.

Pseudocode · Amende, corrigée
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
Pseudocode · Note finale avec validation
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
ExamenProjetUne note invalide ?noteFinaleAffichage
10570Oui : 105 > 100?Note invalide
1000Non4040, puis Échec
0100Non6060, 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 ».