Comme nous l'a expliqué si bien mon professeur d'informatique à l'université, l'ordinateur est fondamentalement con. Si on prend une poule, qui est déjà un animal bien con, et qu'on lui jette des graines, elle va tout de même se mettre à les picorer. Un ordinateur, lui, est encore plus con que ça : jetez-lui des graines, tant que vous voulez... il ne bougera pas! Il faut donc tout lui dire, du début jusqu'à la fin. Et pour lui dire ce qu'il doit faire, on a les langages de programmation.
Ces langages doivent bien évidemment faire en sorte que toute ambigüité soit impossible, puisque l'ordinateur ne saurait prendre de décision tout seul. Ils suivent une grammaire et une syntaxe très précise, et c'est au programmeur d'aprendre à parler à sa machine, et pas à cette dernière d'aprendre à comprendre le programmeur. C'est pourquoi il nous faut adopter une logique d'expression et de reflexion un peu différente que celle que nous utilisons tous les jours. Il va falloir apprendre à rentrer plus en profondeur dans les problèmes qu'on veut résoudre, les décomposer en micro-étapes simples et toujours penser au chemin que doit suivre notre ami simplet pour résoudre ce problème. Seulement le passage de notre mode de pensée au mode de pensée du PC n'est pas toujours aussi évident qu'on le pense. On a donc pour nous aider une étape intermédiaire : l'algorithme.
Par exemple, imaginez que vous souhaitiez découper un concombre entier en rondelles de 1 cm d'épaisseur (l'ordinateur ne pourra jamais vous découper des concombres, mais c'est un exemple!). Si vous deviez donner ça à faire à quelqu'un, vous lui diriez :
Prends un concombre et un couteau, et découpe le concombre entier en rondelles de 1cm.
Quelqu'un de normalement constitué comprendra parfaitement ce que vous lui avez demandé de faire (demandez-moi la même chose au lever du lit, et c'est un tout autre problème...). Prenez maintenant Carl quand il avait 8 ans. A l'époque, Carl était un peu simplet, et il fallait tout lui dire. Voici ce que ça donnerait :
Et voilà : on à fait notre tout premier algorithme. En regardant ça, on se dit : C'est vrai qu'il est simplet, Carl. Mais ceci est encore bien trop compliqué pour un ordinateur, et il faudrait encore bien plus de détails.
Imaginez que le ton que j'emploie puisse être assimilé à un langage de programmation. Je pourrais très bien le dire en criant, en chantant ou en développant toutes mes resources de politesse et d'amabilité. Cependant, je n'ai pas employé de ton particulier pour écrire mon algorithme. En effet, avec un même algorithme, je dois pouvoir faire découper un concombre à Carl sur n'importe quel ton. Ce qui m'importe, c'est que l'algorithme soit clair et efficace.
Voici la règle générale pour faire un bon algorithme. Vous me la copierez vingt fois pour mardi prochain.
Ensuite, une fois qu'on a un bon algorithme, on doit pouvoir faire son programme sans trop de problèmes. Lorsque vous ferez vos premiers programmes, vous vous arrêterez souvent en vous disant : Comment est-ce que je peux programmer cela? Dans ce cas, prenez une feuille de papier, et décomposez le problème en tâches simples pour faire un bel algorithme. Alors, il vous sera très facile (à condition de savoir où trouver les bonnes instructions) de résoudre votre problème.
Vous vous demandez alors naturellement ce que le langage de programmation peut faire pour vous aider. Réponse dans notre prochain numéro...
Voir aussi: algorithme