Algorithmique/Forme d'écriture
Un même algorithme peut être écrit de différentes manières, selon les compétences ou les goûts de son auteur. On remarque cependant deux grandes familles : la forme itérative et la forme récursive. Avant la présentation de ces familles, nous détaillerons ce qu'est la condition d'arrêt.
Fonction factorielle : Tout au long de cette leçon, nous utiliserons comme exemple la fonction mathématique factorielle. Cette fonction prend un entier en paramètre et retourne le produit des entiers strictement positifs inférieurs ou égaux à . Elle se note .
Condition d'arrêt
modifierLa condition d'arrêt est le point précis de la fonction qui met fin à la procédure voulu. Ex : (forme itérative) la boucle while (tant que).
---int veut exprimer que c'est un nombre entier, result le nom de la variable donnée (les nom des variables sont représentatifs pour celui qui crée la fonction, mais l'ordinateur l'associe tout le long de la fonction écrite, on aurait pu l'appeler X cela ne changerait rien).---
int result = 10; -----Variable X égale à dix--------
int sum = 1; -----Variable Y égale à un---------
Tant que (condition d'arrêt---variable X est plus grand que zéro---)----la fonction sera exécutée en boucle tant que X ne soit pas égale à 0----
result et sum, qui sont dans la boucle, seront exécutés par la suite, il vérifie si la condition est atteinte, si oui cela met fin à la boucle, sinon elle exécute à nouveau les variables result et sum, vérifie la condition temps et aussi longtemps que la condition soit atteinte.
while ( result > 0 ) {
result = result - 1 ;--------Variable X égale à X - 1 (dans cet exemple la variable vaut 10 donc X = 10 -1, au prochain tour la variable vaut 9 donc x = 9 - 1)-------
sum = sum + sum ;---------Variable Y égale à Y + Y donc Y = 1 + 1, au prochain tour Y = 2 + 2 , le tour suivant Y = 4 + 4, jusqu'à temps que la condition d'arrêt soit atteinte.---------
}
Forme itérative
modifierUn algorithme itératif est basé sur les procédures d'itération que sont le Tant que et le Pour. Il réalise donc une boucle jusqu'à ce que la condition d'arrêt soit respectée.
Voyons l'exemple de la fonction factorielle(x) en itératif :
Début
----
i ← x
résultat ← 1
Tant que i ≥ 1 faire
résultat ← résultat * i
i ← i - 1
Fin Tant que
Renvoyer résultat
----
Fin
Remarque : Nous aurions pu initier i à 1 et le faire croître.
Forme récursive
modifierL'algorithme récursif, lui, est basé sur la récursivité mathématique. Il demande plus d'intuition de la part de son auteur mais peut s'avérer plus simple d'écriture. La condition d'arrêt est de plus grandement utilisée.
Voici la fonction factorielle(x) en récursif :