L’algorithmique
1. Programmer, c’est un art
Pour obtenir un résultat donné, il faut généralement suivre une méthode, une certaine logique. Sauf à être un grand
pâtissier dont la science des mélanges des ingrédients est innée (ou le fruit d’une longue pratique), vous n’obtiendrez
jamais un délicieux gâteau au chocolat même si vous disposez des meilleurs ingrédients et accessoires de cuisson, si
vous ne connaissez pas les bonnes proportions, l’ordre dans lesquels ajouter les ingrédients, le temps de cuisson, la
température : bref, la recette. De même, sans formation de mécanicien ou sans la documentation technique du moteur
de votre véhicule, inutile de vous lancer dans un changement de joint de culasse : c’est la casse assurée.
Il en est de même de la programmation. Il existe plusieurs langages de programmation très simples, extrêmement
simples parfois, qui peuvent donner un temps l’illusion que vous savez programmer. En entreprise même, certains
employés sont bombardés développeurs pour leurs quelques connaissances confuses de Visual Basic, de Delphi ou de
Windev. Le résultat risque d’être catastrophique. Les publicités sont alléchantes mais trompeuses. Les bons
programmeurs, y compris les autodidactes, ont tous à un moment ou un autre eu affaire avec les algorithmes, car il
existe en programmation une multitude de moyens d’arriver à un résultat, mais très peu pour obtenir le meilleur
résultat possible, ce qui explique pourquoi beaucoup de programmes ayant la même fonction, se ressemblent (au
niveau de la programmation) alors que ce ne sont pas les mêmes programmeurs qui les ont développés. Les débutants
qui se lancent dans des projets de programmation audacieux se retrouvent parfois bloqués, ne maîtrisant pas une
technique particulière de logique de programmation. Certains abandonnent, d’autres trouvent un moyen de
contournement (souvent peu reluisant). Les derniers liront peutêtre un livre d’algorithmique comme celuici, qui à
défaut de donner une solution complète à leur problème, leur fournira les bases et les techniques pour avancer.
Les ordinateurs personnels du début des années 1980 étaient tous livrés soit avec un langage BASIC inclus
directement dans la machine (en ROM), soit sur une cartouche, cassette ou disquette annexe. Le Basic de Microsoft
(Qbasic, Quickbasic) était livré avec le DOS du PC. Les Amstrad avaient le basic Locomotive, les Atari ST l’Atari Basic et
surtout le GFA Basic, un langage de grande classe, etc. Une génération complète d’utilisateurs s’est lancée dans la
programmation à l’aide de ces langages et de la documentation fournie qui bien souvent fournissait non seulement les
références du langage mais aussi les méthodes de base de programmation. Avec plus ou moins de succès. Le résultat
était souvent un infâme bidouillage, mais qui marchait.
Or le but n’est pas que le programme fonctionne, mais qu’il fonctionne vite et bien, bref le mieux possible. Le meilleur
ordinateur au monde et le meilleur langage au monde ne vous y aideront pas.
2. Définition : L’algorithme est une recette
Avezvous déjà eu l’occasion de programmer un magnétoscope (en voie de disparition) ou un enregistreur de dvd ?
Qu’avezvous fait la première fois que vous avez allumé votre poste de télévision pour régler la réception des chaînes ?
Nul doute que vous avez ouvert le mode d’emploi et suivi la séquence d’instructions indiquée: appuyer sur la touche
Menu de la télécommande, se déplacer sur Enregistrement et appuyer sur OK, se déplacer sur une ligne puis indiquer
la chaîne, l’heure, etc.
Avezvous déjà eu l’occasion de faire la cuisine ? Pour un gâteau, vous êtesvous lancé directement ou avezvous
ouvert un livre pour récupérer la liste et la quantité de chaque ingrédient, pour suivre la recette : faites fondre le
chocolat et le beurre dans une casserole à feu doux, retirez la casserole du feu, incorporez les jaunes d’oeuf, puis le
sucre et la farine, battez les oeufs en neige puis incorporez doucement dans le mélange, etc.
Dans les deux cas, félicitations ! Vous avez déroulé votre premier algorithme !
Une définition simple d’un algorithme : c’est une suite d’instructions qui, quand elles sont exécutées correctement
aboutissent au résultat attendu. C’est un énoncé dans un langage clair, bien défini et ordonné qui permet de résoudre
un problème, le plus souvent par calcul. Cette définition est à rapprocher du fonctionnement de la machine de Turing
qui avant l’apparition de l’ordinateur utilisait cette démarche pour résoudre de nombreux problèmes. L’algorithme est
donc une recette pour qu’un ordinateur puisse donner un résultat donné.
Le mot algorithme vient du nom du mathématicien Al Khuwarizmi (Muhammad ibn Mūsā alKhuwārizmī), savant persan
du IX ème siècle, auteur d’un ouvrage appelé "La transposition et la réduction", Aljabr wa’lmuqābalah. Le mot Aljabr
deviendra algèbre, le nom de l’auteur sera latinisé en Algoritmi, qui sera à la base du mot algorithme.
3. Pourquoi utiliser un algorithme ?
L’algorithme décrit formellement ce que doit faire l’ordinateur pour arriver à un but bien précis. Ce sont les instructions
qu’on doit lui donner. Ces instructions sont souvent décrites dans un langage clair et compréhensible par l’être
humain : faire ceci, faire cela si le résultat a telle valeur, et ainsi de suite.
Un algorithme bien établi et qui fonctionne (tout au moins en théorie) pourra être directement réécrit dans un langage
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
9
1. Programmer, c’est un art
Pour obtenir un résultat donné, il faut généralement suivre une méthode, une certaine logique. Sauf à être un grand
pâtissier dont la science des mélanges des ingrédients est innée (ou le fruit d’une longue pratique), vous n’obtiendrez
jamais un délicieux gâteau au chocolat même si vous disposez des meilleurs ingrédients et accessoires de cuisson, si
vous ne connaissez pas les bonnes proportions, l’ordre dans lesquels ajouter les ingrédients, le temps de cuisson, la
température : bref, la recette. De même, sans formation de mécanicien ou sans la documentation technique du moteur
de votre véhicule, inutile de vous lancer dans un changement de joint de culasse : c’est la casse assurée.
Il en est de même de la programmation. Il existe plusieurs langages de programmation très simples, extrêmement
simples parfois, qui peuvent donner un temps l’illusion que vous savez programmer. En entreprise même, certains
employés sont bombardés développeurs pour leurs quelques connaissances confuses de Visual Basic, de Delphi ou de
Windev. Le résultat risque d’être catastrophique. Les publicités sont alléchantes mais trompeuses. Les bons
programmeurs, y compris les autodidactes, ont tous à un moment ou un autre eu affaire avec les algorithmes, car il
existe en programmation une multitude de moyens d’arriver à un résultat, mais très peu pour obtenir le meilleur
résultat possible, ce qui explique pourquoi beaucoup de programmes ayant la même fonction, se ressemblent (au
niveau de la programmation) alors que ce ne sont pas les mêmes programmeurs qui les ont développés. Les débutants
qui se lancent dans des projets de programmation audacieux se retrouvent parfois bloqués, ne maîtrisant pas une
technique particulière de logique de programmation. Certains abandonnent, d’autres trouvent un moyen de
contournement (souvent peu reluisant). Les derniers liront peutêtre un livre d’algorithmique comme celuici, qui à
défaut de donner une solution complète à leur problème, leur fournira les bases et les techniques pour avancer.
Les ordinateurs personnels du début des années 1980 étaient tous livrés soit avec un langage BASIC inclus
directement dans la machine (en ROM), soit sur une cartouche, cassette ou disquette annexe. Le Basic de Microsoft
(Qbasic, Quickbasic) était livré avec le DOS du PC. Les Amstrad avaient le basic Locomotive, les Atari ST l’Atari Basic et
surtout le GFA Basic, un langage de grande classe, etc. Une génération complète d’utilisateurs s’est lancée dans la
programmation à l’aide de ces langages et de la documentation fournie qui bien souvent fournissait non seulement les
références du langage mais aussi les méthodes de base de programmation. Avec plus ou moins de succès. Le résultat
était souvent un infâme bidouillage, mais qui marchait.
Or le but n’est pas que le programme fonctionne, mais qu’il fonctionne vite et bien, bref le mieux possible. Le meilleur
ordinateur au monde et le meilleur langage au monde ne vous y aideront pas.
2. Définition : L’algorithme est une recette
Avezvous déjà eu l’occasion de programmer un magnétoscope (en voie de disparition) ou un enregistreur de dvd ?
Qu’avezvous fait la première fois que vous avez allumé votre poste de télévision pour régler la réception des chaînes ?
Nul doute que vous avez ouvert le mode d’emploi et suivi la séquence d’instructions indiquée: appuyer sur la touche
Menu de la télécommande, se déplacer sur Enregistrement et appuyer sur OK, se déplacer sur une ligne puis indiquer
la chaîne, l’heure, etc.
Avezvous déjà eu l’occasion de faire la cuisine ? Pour un gâteau, vous êtesvous lancé directement ou avezvous
ouvert un livre pour récupérer la liste et la quantité de chaque ingrédient, pour suivre la recette : faites fondre le
chocolat et le beurre dans une casserole à feu doux, retirez la casserole du feu, incorporez les jaunes d’oeuf, puis le
sucre et la farine, battez les oeufs en neige puis incorporez doucement dans le mélange, etc.
Dans les deux cas, félicitations ! Vous avez déroulé votre premier algorithme !
Une définition simple d’un algorithme : c’est une suite d’instructions qui, quand elles sont exécutées correctement
aboutissent au résultat attendu. C’est un énoncé dans un langage clair, bien défini et ordonné qui permet de résoudre
un problème, le plus souvent par calcul. Cette définition est à rapprocher du fonctionnement de la machine de Turing
qui avant l’apparition de l’ordinateur utilisait cette démarche pour résoudre de nombreux problèmes. L’algorithme est
donc une recette pour qu’un ordinateur puisse donner un résultat donné.
Le mot algorithme vient du nom du mathématicien Al Khuwarizmi (Muhammad ibn Mūsā alKhuwārizmī), savant persan
du IX ème siècle, auteur d’un ouvrage appelé "La transposition et la réduction", Aljabr wa’lmuqābalah. Le mot Aljabr
deviendra algèbre, le nom de l’auteur sera latinisé en Algoritmi, qui sera à la base du mot algorithme.
3. Pourquoi utiliser un algorithme ?
L’algorithme décrit formellement ce que doit faire l’ordinateur pour arriver à un but bien précis. Ce sont les instructions
qu’on doit lui donner. Ces instructions sont souvent décrites dans un langage clair et compréhensible par l’être
humain : faire ceci, faire cela si le résultat a telle valeur, et ainsi de suite.
Un algorithme bien établi et qui fonctionne (tout au moins en théorie) pourra être directement réécrit dans un langage
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
9
