Cours 1 · Notions de baseLeçon 1 sur 3
Qu'est-ce qu'un algorithme ?
20 min de lecture7 sections Version PDF
Reconnaître entrée, traitement et sortie, lire un pseudocode, suivre une trace d'exécution.
Un algorithme est une suite finie d'instructions précises qui transforme des données d'entrée en un résultat. Rien de plus. Pas besoin d'ordinateur : une recette de cuisine, un mode d'emploi de montage, la méthode de la division posée apprise en primaire — ce sont des algorithmes.
Ce qui distingue l'algorithmique d'un simple mode d'emploi, c'est l'exigence de rigueur. Un humain comble les trous d'une consigne floue ; une machine, non.
Les trois exigences
Pour mériter le nom d'algorithme, une méthode doit satisfaire trois conditions. Elles paraissent évidentes tant qu'on ne cherche pas de contre-exemple.
Fini. L'exécution doit s'arrêter, en un nombre d'étapes borné. « Ajouter 1 à un compteur et recommencer » n'est pas un algorithme : ça ne finit jamais.
Précis. Chaque instruction n'admet qu'une seule interprétation. « Assaisonner à votre goût » est une consigne humaine acceptable et une instruction algorithmique nulle : deux exécutants obtiendraient deux résultats différents.
Effectif. Chaque instruction doit être réellement exécutable avec les moyens disponibles. « Prendre le plus petit nombre réel strictement positif » est parfaitement précis, parfaitement fini à énoncer… et impossible à exécuter, car ce nombre n'existe pas.
« Tant que le résultat ne vous plaît pas, recommencez. » Quelle exigence cette instruction viole-t-elle en premier ?
Entrée, traitement, sortie
Tout algorithme se lit sur trois temps, et c'est le premier réflexe à acquérir : avant d'écrire une ligne, savoir ce qui entre, ce qu'on en fait, ce qui sort.
| Temps | Question | Dans le pseudocode |
|---|---|---|
| Entrée | De quoi ai-je besoin ? | Lire(...) |
| Traitement | Qu'est-ce que je calcule ? | les affectations, avec ← |
| Sortie | Que dois-je produire ? | Écrire(...) |
Un algorithme n'invente rien : s'il a besoin de la longueur d'un rectangle, quelqu'un doit la lui fournir. Et s'il ne fait rien sortir, il ne sert à rien — un calcul dont personne ne voit le résultat est du travail perdu.
La structure d'un algorithme
Le pseudocode n'est pas un langage de programmation. C'est une convention d'écriture, à mi-chemin entre le français et le code, qui permet de raisonner sans se battre avec la syntaxe d'un langage particulier. Le même algorithme se traduira ensuite en Python, en C ou en JavaScript.
Algorithme RectangleVariables longueur, largeur : réels aire, perimetre : réelsDébut Lire(longueur) Lire(largeur) aire ← longueur × largeur perimetre ← 2 × (longueur + largeur) Écrire(aire) Écrire(perimetre)FinQuatre parties, toujours dans cet ordre : un nom, la déclaration des variables avec
leur type, puis le corps entre Début et Fin. Déclarer une variable, c'est réserver un
casier en mémoire et annoncer ce qu'on va y mettre.
L'affectation
La flèche ← est le symbole le plus important de tout le cours. aire ← longueur × largeur
se lit : calculer ce qui est à droite, puis ranger le résultat dans le casier de gauche.
Elle n'est pas symétrique. aire ← 21 a un sens ; 21 ← aire n'en a aucun. Et elle n'est
pas l'égalité mathématique : nous verrons à la leçon suivante que x ← x + 1, absurde en
mathématiques, est parfaitement ordinaire en algorithmique.
Suivre une trace d'exécution
Tracer un algorithme, c'est jouer le rôle de la machine : dérouler les lignes une par une en notant, après chaque ligne, le contenu de chaque variable. C'est l'exercice fondamental du semestre — et le seul moyen fiable de trouver pourquoi un algorithme ne fait pas ce qu'on croyait.
Faites défiler l'animation, ou cliquez directement une étape pour y sauter.
Les quatre variables sont déclarées, donc les casiers existent — mais ils ne contiennent aucune valeur utilisable. On note « ? ».
Trois choses à remarquer dans cette trace. Les variables commencent à ? : déclarée n'est
pas initialisée, et lire une variable jamais affectée est une erreur classique. Écrire ne
modifie rien en mémoire — afficher et calculer sont deux actions distinctes. Enfin, le
nombre d'étapes était connu d'avance : huit lignes, huit étapes, aucune répétition.
Voici la même trace telle que vous l'écririez sur une copie :
| Ligne | longueur | largeur | aire | perimetre | Sortie |
|---|---|---|---|---|---|
Lire(longueur) | 7 | ? | ? | ? | |
Lire(largeur) | 7 | 3 | ? | ? | |
aire ← ... | 7 | 3 | 21 | ? | |
perimetre ← ... | 7 | 3 | 21 | 20 | |
Écrire(aire) | 7 | 3 | 21 | 20 | 21 |
Écrire(perimetre) | 7 | 3 | 21 | 20 | 21, 20 |
Dans la trace, après la ligne Écrire(aire), que vaut la variable aire ?
Quel est l'ordre d'exécution de aire ← longueur × largeur ?
À vous
Écrivez les deux traitements de l'algorithme, puis vérifiez la sortie dans la console.
// Traduisez l'algorithme Rectangle en JavaScript. // Les Lire() sont remplacés par des valeurs fixées : ce n'est pas la saisie // qu'on travaille ici, c'est le traitement. const longueur = 7; const largeur = 3; let aire = 0; // à corriger let perimetre = 0; // à corriger console.log(aire); // attendu : 21 console.log(perimetre); // attendu : 20
À retenir
Vous avez parcouru les 7 sections.
Marquez-la terminée pour faire avancer votre parcours, ou revenez sur un point avant de passer à la suite.