Un algorithme, c’est tout simplement une façon de décrire dans ses moindres détails comment procéder pour résoudre un problème donné : aucune information implicite, aucun élément de contexte ne doit être pré-supposé, tout doit être détaillé, au moment où il y en a besoin.
Exemple 1
En vous lavant les mains, vous pratiquez un algorithme sans savoir que cela s’appelle comme cela :
- J’ouvre le robinet
- Je mouille mes mains
- Je prends du savon
- Je frotte tant que mes mains ne sont pas propres
- Je rince
- Je m’essuie
- Je ferme le robinet
Le lavage de mains est décrit en indiquant sept opérations simples. On utilise le mot « instructions« . Un algorithme est une suite d’instructions. C’est une recette, une manière de faire, décrite pas à pas. L’avantage est que n’importe qui peut se servir de cette description.
Attention : l’important est de ne pas oublier une instruction dans la liste des instructions.
Exemple 2
Pour me rendre à l’école j’effectue l’itinéraire suivant :
- Je monte dans la voiture
- Je démarre et avance
- Je tourne à gauche
- Je tourne à droite
- Je fais le tour du rond point
- etc….
La liste des instructions pour aller d’un point à un autre est une sorte d’algorithme.
Exemple 3
Effectue le calcul suivant :
- Prends un nombre au hasard
- Multiplie le par 3
- Si le résultat est pair alors ajoute 10 sinon on ajoute 11
Dans ce type d’algorithme, il faut choisir une valeur avant d’effectuer la série de calculs.
Conclusion
Un algorithme est mot savant pour dire « recette de calcul pour ordinateur ». Un algorithme est paramétrable : il est possible de paramétrer des valeurs avant de lancer l’exécution de l’algorithme. Enfin, il est exigeant : toutes les étapes à réaliser doivent être décrites précisément et sans en oublier.
Un algorithme comporte trois types d’instructions:
- Ordre d’exécution (ajouter, multiplier, affecter …)
- Test conditionnel (si ceci alors … sinon …)
- Définition de boucle (faire 10 fois, tant que n <10 faire …)
Un algorithme est universel : il fonctionne quelle que soit la machine utilisée. Cependant il faudra traduire l’algorithme dans le langage du programme à réaliser.