Qu'est ce qu'un algorithme ? Explication avec la recette des crêpes

Une recette de cuisine, par exemple, est un algorithme : une suite d'opérations simples permettant de passer des ingrédients à un plat préparé.
On représente souvent l'algorithme de façon schématique, en décomposant les étapes et en les reliant par des flèches, un peu comme ci-dessous :
Pour faire des crêpes, il suffit de suivre les instructions dans l'ordre. Les recettes sont des algorithmes destinés aux humains et sont donc écrites dans un langage compréhensible par des humains. Comme on suppose que les humains sont raisonnablement intelligents, il y a plein de choses qu'on n'a pas besoin de préciser dans la recette, par exemple qu' il faut retirer la coquille des œufs ou ne pas utiliser du lait de raton-laveur. En plus, l'algorithme de la recette des crêpes est très simple car il n'y a qu'un seul choix possible à chaque étape. Pour aborder cette notion de choix, nous allons considérer un autre algorithme : celui qui permet de déterminer si on peut faire des crêpes ou non, en fonction de ce qu'il y a dans le frigo et les placards.

Les conditions dans les algorithmes

Avant de se lancer dans la confection des crêpes, on vérifie d'ordinaire qu'on a bien tout ce qu'il faut. C'est quelque-chose de facile pour un humain, mais supposons que tu aies la chance d'avoir un robot pour t'aider en cuisine. Pour s'assurer qu'il dispose de suffisamment d'ingrédients, voici un des algorithmes qu'il pourrait utiliser, sachant qu'il lui faudra des œufs, du lait, de la farine, du sucre et du beurre. Dans ce schéma, le robot va vérifier une à une toutes les conditions nécessaires au bon déroulement de la préparation des crêpes. Les questions qu'il doit se poser sont affichées dans des losanges et les instructions dans des rectangles. À chaque étape, en fonction des réponses, les instructions peuvent changer :

De manière générale, un algorithme sert à traiter ce qu'on appelle des "entrées" (dans notre cas, les ingrédients et le matériel de cuisine) pour donner un résultat (les crêpes). Les instructions décrites dans l'algorithme doivent être très simples et ne pas porter à confusion. Pour obtenir le même résultat, il existe une infinité d'algorithmes possibles.
Un bon algorithme est une recette facile à suivre, qui ne fait pas perdre de temps inutilement et qui ne provoque pas d'erreurs. Un bon algorithme doit aussi avoir un début et surtout .. une fin ! Tous les informaticiens du monde se sont un jour retrouvés confrontés à l'horreur absolue d'une boucle infinie.