Qu'est-ce qu'un algorithme
Ce que ce chapitre apporte 6 points
- Dire ce qu'est un algorithme, avec ses propres mots.
- Reconnaître ce qui entre dans un algorithme et ce qui en sort.
- Distinguer les trois façons d'enchaîner des étapes : à la suite, au choix, en répétant.
- Écrire un algorithme simple en français, sans laisser une étape à deviner.
- Distinguer un algorithme, un programme et un langage.
- Constater que deux algorithmes justes peuvent avoir des coûts très différents.
Un technicien de maintenance rédige, pour l'équipe de nuit, la conduite à tenir quand une pompe de relevage s'arrête. Lui sait faire ; l'agent qui lira la consigne à trois heures du matin ne pourra pas l'appeler pour demander ce qu'il voulait dire. Toute la question est là : comment écrire une marche à suivre assez précise pour que n'importe qui l'exécute et obtienne le même résultat que son auteur ?
Une telle marche à suivre s'appelle un algorithme : une suite finie d'étapes précises qui mène d'une situation de départ au résultat voulu. Chacun en suit déjà tous les jours sans employer le mot : une recette, un itinéraire, une notice de montage. Ce chapitre part de là, et de rien d'autre. Premier du parcours, il ne s'appuie sur aucun chapitre antérieur : aucune connaissance en informatique n'est nécessaire pour le lire, et aucun langage de programmation n'y sera employé.
Expliquer à quelqu'un comment faire
Voici une consigne que tout le monde comprend : « faire un thé ».
Un être humain s'en sort. Il sait qu'il faut de l'eau, qu'elle doit chauffer, qu'un sachet s'infuse quelques minutes. Rien de tout cela n'est écrit dans la consigne : il le complète tout seul.
Maintenant, la même consigne pour quelqu'un qui ne complète rien, qui exécute exactement ce qui est écrit et rien de plus.
- Faire chauffer de l'eau.
- Mettre le sachet dans la tasse.
- Verser l'eau.
- Attendre.
- Retirer le sachet.
C'est mieux, et ce n'est toujours pas suffisant. Combien d'eau ? Chauffer jusqu'à quelle température, ou pendant combien de temps ? Attendre combien de minutes ? Chacune de ces questions sans réponse est un endroit où l'exécutant devra deviner, et deux personnes obtiendront deux thés différents.
Le critère, et il n'y en a qu'un. Une suite d'étapes est utilisable lorsque deux personnes qui la suivent obtiennent le même résultat, sans se concerter et sans rien ajouter de leur cru.
Tant que ce n'est pas le cas, il reste une étape à préciser. Chercher où, c'est déjà faire de l'algorithmique.
Ce qu'est un algorithme
Un algorithme est une suite d'étapes qui décrit comment obtenir un résultat, à trois conditions.
- Les étapes sont dans un ordre défini.
- Chaque étape est exécutable sans rien deviner.
- L'ensemble s'arrête au bout d'un nombre limité d'étapes.
La troisième condition paraît évidente et ne l'est pas : « remuer jusqu'à ce que ce soit bon » ne s'arrête pas nécessairement, faute de dire ce qu'est « bon ».
On distingue toujours trois parties dans un algorithme.
| Partie | Ce que c'est | Dans l'exemple du thé |
|---|---|---|
| Entrées | ce dont l'algorithme a besoin au départ | l'eau, le sachet, la tasse |
| Traitement | les étapes qu'il applique | chauffer, verser, attendre, retirer |
| Sortie | ce qu'il produit | le thé |
Repérer ces trois parties avant d'écrire quoi que ce soit évite bien des difficultés. Un algorithme dont on ne sait pas dire ce qui entre et ce qui sort n'est pas encore prêt à être écrit.
Trois exemples, et les trois seules façons d'enchaîner
À ce stade, un algorithme s'écrit en français, numéroté. C'est déjà un algorithme, à condition qu'aucune étape ne laisse de place à l'interprétation.
Les trois exemples qui suivent introduisent, l'un après l'autre, les trois seules façons d'enchaîner des étapes. Il n'y en a pas de quatrième, et tout ce qui sera écrit par la suite se ramènera à ces trois-là.
Les unes après les autres : le prix à payer
Un article coûte 200 euros. Il bénéficie d'une remise de 10 %, et la taxe de 20 % s'ajoute ensuite.
- Demander le prix de l'article.
- Retirer la remise de 10 %.
- Ajouter la taxe de 20 %.
- Afficher le prix à payer.
Quatre étapes, exécutées dans l'ordre, chacune une seule fois. C'est une séquence, la première façon d'enchaîner.
Le même algorithme, dessiné. Le parallélogramme marque ce qui entre ou ce qui sort, le rectangle un calcul, et les formes arrondies le début et la fin. Quatre étapes à la file entre le début et la fin, une flèche entre chacune : voilà une séquence.
Remplacer la remise en pourcentage par une remise fixe de 20 euros, et tout change : remise puis taxe donne 216 euros, taxe puis remise en donne 220. Quatre euros d'écart, pour deux algorithmes qui semblent dire la même chose.
La raison se prévoit sans rien recalculer. Deux pourcentages se multiplient, et l'ordre d'une multiplication est indifférent ; une remise fixe se soustrait, et soustraire avant ou après avoir multiplié ne donne pas le même nombre.
Devant une séquence, la question à se poser est donc toujours la même : l'ordre change-t-il le résultat ?
Selon le cas : le plus élevé de deux relevés
Deux capteurs relèvent la température d'un même local, et seule la plus élevée intéresse.
- Demander les deux relevés, les appeler
aetb. - Si
aest supérieur ou égal àb, alors le relevé le plus élevé esta. - Sinon, le relevé le plus élevé est
b. - Afficher le relevé le plus élevé.
L'étape 2 pose une question, et sa réponse décide de la suite : une seule des deux conclusions s'applique, celle de l'étape 2 ou celle de l'étape 3. C'est un choix, la deuxième façon d'enchaîner. Ce choix n'est pas laissé à l'exécutant : ce sont les valeurs de a et b qui le tranchent.
Le losange est le choix. Deux chemins en sortent, un seul est emprunté, et ils se rejoignent ensuite. Suivre du doigt le cas où a et b sont égaux : la comparaison est vraie, et c'est la branche de droite, marquée Vrai, qui est prise.
Il suffirait pourtant de demander lequel des deux capteurs a relevé la température la plus haute, et non sa valeur, pour que l'égalité réclame une troisième réponse : « aucun, ils sont égaux ».
C'est le réflexe à prendre dès maintenant : devant une comparaison, se demander ce qui se passe en cas d'égalité, et vérifier que la réponse convient.
Plusieurs fois : additionner les consommations d'une période
Un compteur électrique est relevé chaque jour, et il faut la consommation totale de la période.
- Demander combien de jours compte la période.
- Préparer un total, valant zéro au départ.
- Pour chaque jour de la période, demander la consommation relevée et l'ajouter au total.
- Afficher le total.
L'étape 3 ne s'exécute pas une fois, mais autant de fois qu'il y a de jours. C'est une répétition, la troisième et dernière façon d'enchaîner.
L'hexagone est la répétition, et la flèche qui revient du calcul et remonte sous l'hexagone montre le retour au début de chaque tour. La préparation du total est en dehors, avant d'y entrer : c'est ce que la forme rend visible d'un coup d'œil.
Préparer le total à l'intérieur de la répétition le remettrait à zéro à chaque tour, et il ne resterait à la fin que la dernière consommation ajoutée. L'erreur est fréquente, et elle donne un résultat qui ressemble encore assez à un total pour ne pas alerter.
Ce que devient le total, tour après tour
Le meilleur moyen de s'assurer d'une répétition est de la dérouler à la main, sans en sauter un seul tour. Pour une période de quatre jours, dont les relevés sont 12, 9, 15 et 11 kilowattheures :
| Moment | Consommation ajoutée | Total après |
|---|---|---|
| avant le premier tour | rien | 0 |
| premier tour | 12 | 12 |
| deuxième tour | 9 | 21 |
| troisième tour | 15 | 36 |
| quatrième tour | 11 | 47 |
| après le dernier tour | rien | 47 |
Et 12 + 9 + 15 + 11 font bien 47. Ce contrôle prend trente secondes et attrape une bonne part des erreurs de raisonnement, pourvu que ce cas ne soit pas le seul essayé. Le chapitre suivant en fait une méthode, et la plateforme en fait une figure que l'on déroule d'un clic.
Trois façons d'enchaîner, et pas une de plus.
La séquence : les étapes à la file.
Le choix : une étape qui ne s'exécute que dans certains cas.
La répétition : une étape qui s'exécute plusieurs fois.
Un algorithme de trois lignes et un logiciel de trois millions sont faits de ces trois-là, emboîtées les unes dans les autres.
1.Avec quelles façons d'enchaîner ses étapes tout algorithme est-il construit ?
2.Un algorithme compare deux relevés avec « si a est supérieur à b ». Qu'a-t-on oublié de vérifier ?
Algorithme, programme, langage
Trois mots reviennent constamment et désignent trois choses différentes.
- Un algorithme est un raisonnement : la suite d'étapes, indépendamment de la façon de l'écrire. Les trois exemples ci-dessus en sont.
- Un langage de programmation est une façon d'écrire ce raisonnement pour qu'une machine puisse l'exécuter. Python, C et JavaScript en sont.
- Un programme est le résultat : le même raisonnement, écrit dans un de ces langages.
Un même algorithme donne donc plusieurs programmes, selon le langage choisi. C'est la raison pour laquelle on l'écrit d'abord seul : le raisonnement, une fois juste, se traduit ensuite dans le langage que l'on veut.
Qu'est-ce qui distingue un algorithme d'un programme ?
Pourquoi ne pas écrire le programme tout de suite
Maintenant que les trois mots sont distingués, la question se pose vraiment.
Voici une consigne banale : « calculer la moyenne des mesures d'un lot et dire s'il est conforme ». Elle paraît claire, et trois questions restent sans réponse.
- Combien de mesures ? Cinq, ou un nombre connu seulement au moment de l'exécution ?
- Conforme à quelle condition ? La moyenne doit-elle atteindre un seuil, ou le dépasser strictement ? Le cas d'une moyenne exactement égale au seuil doit être tranché.
- Et s'il n'y a aucune mesure ? Diviser par zéro n'a pas de résultat.
Ce sont exactement les endroits où l'exécutant devrait deviner, comme pour le thé. Les régler prend deux minutes sur une feuille. Les découvrir une fois le programme écrit coûte bien davantage, parce qu'il faut d'abord comprendre pourquoi le programme fait ce qu'il fait.
Un algorithme faux ne devient pas juste une fois tapé. La machine exécute fidèlement le raisonnement qu'on lui donne, y compris quand il est mauvais. Elle ne corrige rien et ne signale rien.
« Calculer la moyenne des mesures d'un lot et dire s'il est conforme » n'est pas encore un algorithme. Pourquoi ?
Deux méthodes pour le même problème
Un dernier point, qui donne sa raison d'être à tout le parcours : pour un même problème, plusieurs algorithmes justes existent, et ils ne se valent pas.
Chercher un mot dans un dictionnaire papier de soixante mille mots.
Première méthode. Lire les mots depuis le début, un par un, jusqu'à tomber sur le bon. Elle marche à tous les coups, et demande au pire soixante mille comparaisons.
Seconde méthode. Ouvrir au milieu, regarder si le mot cherché vient avant ou après, et écarter d'un coup la moitié qui ne peut pas le contenir. Recommencer sur celle qui reste. C'est ce que tout le monde fait sans y penser.
| Taille du dictionnaire | Première méthode, au pire | Seconde méthode, au pire |
|---|---|---|
| 1 000 mots | 1 000 essais | 10 essais |
| 60 000 mots | 60 000 essais | 16 essais |
| 1 000 000 de mots | 1 000 000 d'essais | 20 essais |
Les deux méthodes donnent la même réponse. La différence ne tient ni à la machine, ni au langage, ni à la vitesse de celui qui cherche : elle tient au raisonnement, et à lui seul.
Tout algorithme s'appuie ainsi sur des conditions qu'il ne vérifie pas lui-même. Les nommer fait partie du travail.
Une liste de soixante mille références est rangée dans le désordre. La méthode qui écarte une moitié à chaque essai convient-elle ?
Les pièges du début
- Les consignes qui se complètent toutes seules. « Faire comme d'habitude » ne s'exécute pas : il faut écrire ce qu'est l'habitude.
- Les cas oubliés. Le zéro, le nombre négatif, l'égalité, l'absence de donnée. Ce sont eux qui font échouer un algorithme par ailleurs juste.
- Les étapes qui en cachent plusieurs. « Trier les relevés » est une phrase, pas une étape : elle demande elle-même un algorithme.
Le meilleur moyen de vérifier un algorithme avant de le programmer ?
Mettre en pratique
Les exemples du chapitre, sur d'autres nombres : un ordre qui change le prix, un total qu'on déroule, des essais qu'on compte.
Un ordre, un total, des essais
- 1.
Un article coûte 150 euros. Une remise fixe de 15 euros est retirée, puis la taxe de 20 % s'ajoute. Quel est le prix à payer ?
euros - 2.
Dans l'autre ordre, la taxe d'abord et la remise fixe ensuite, de combien le prix à payer augmente-t-il ?
euros - 3.
Cinq jours de relevés donnent 14, 9, 11, 17 et 8 kilowattheures. Que vaut le total après le dernier tour de la répétition ?
kilowattheures - 4.
Avec les mêmes relevés, la préparation du total est placée par erreur à l'intérieur de la répétition. De combien le total affiché est-il trop faible ?
kilowattheures - 5.
Une liste triée compte 4 000 références. Combien d'essais la seconde méthode demande-t-elle au pire ?
essais - 6.
Sur la même liste, combien d'essais la première méthode demande-t-elle de plus, au pire ?
essais
Chercher avant de regarder la solution : c'est en cherchant qu'on apprend. Les réponses s'écrivent en français numéroté, comme les exemples du chapitre. Aucune notation particulière n'est attendue ici.
Une pièce usinée doit mesurer 50 millimètres, avec une tolérance de 0,2 millimètre de part et d'autre : toute cote comprise entre 49,8 et 50,2 millimètres, bornes comprises, est acceptée. Écrire un algorithme qui demande la cote mesurée et affiche « conforme » ou « à reprendre ».
Indication : une cote est acceptée si elle n'est ni trop petite, ni trop grande. Cela fait deux comparaisons, qui doivent être vraies toutes les deux.
- Demander la cote mesurée, l'appeler
c. - Si
cest supérieur ou égal à 49,8 et inférieur ou égal à 50,2, alors afficher « conforme ». - Sinon, afficher « à reprendre ».
Quelle façon d'enchaîner reconnaît-on ? Un choix, aux étapes 2 et 3.
Une cote de 50,2 exactement est conforme, parce que l'énoncé a pris soin d'écrire « bornes comprises ». Sans cette précision, l'exécutant aurait dû deviner, et deux personnes auraient pu classer la même pièce de deux façons différentes.
Demander trois relevés de température et afficher le plus élevé.
Indication : commencer par supposer que le premier est le plus élevé, puis se corriger.
- Demander trois relevés, les appeler
a,betc. - Retenir
acomme plus élevé pour l'instant. - Si
best supérieur au plus élevé retenu, retenirbà la place. - Si
cest supérieur au plus élevé retenu, retenircà la place. - Afficher le plus élevé retenu.
Cette méthode fonctionne pour trois relevés comme pour mille : il suffirait de répéter l'étape 3 pour chacun. C'est le point de départ du chapitre sur les répétitions.
Reprendre l'algorithme qui additionne les consommations. Pour une semaine de sept jours, combien de fois l'étape d'addition est-elle exécutée ? Et si les relevés sont 12, 9, 15, 11, 10, 8 et 14 kilowattheures, que vaut le total à la fin ?
L'addition est exécutée sept fois, une par jour. Le total passe par 12, 21, 36, 47, 57, 65, puis 79.
Compter les exécutions d'une étape est un réflexe utile : c'est ce qui distingue les deux méthodes de recherche dans le dictionnaire.
Chapitre révisé en octobre 2026 · Une erreur dans ce chapitre ?
Dans la bibliothèque d'exercices
Exécuter une marche à suivre à la main, trouver l'étape qui manque, compter les étapes et les essais.
- Le contrôle d'un lot, à la main1 · Lire
- L'étape qui manque au remplissage2 · Appliquer
- Trouver une référence dans un catalogue2 · Appliquer