Exercice : Le fonctionnement
En vous aidant de l'algorithme, complétez le texte suivant en décrivant la succession d'actions réalisées suite à l'appel à fact(4) :
À l'entrée de la fonction, i n'étant pas nul, c'est la claude sinon qui est exécutée. Pour réaliser la multiplication, il est nécessaire d'évaluer les 2 paramètres. Ainsi, l'appel avec i-1 est fait, et ainsi de suite jusqu'à l'appel avec i=0. Dans ce cas, l'instruction exécutée est le retour de 1. Ce retour est l'évaluation de l'opérande de la dernière multiplication en attente. Donc l'opération sera 1*1. Le résultat est retourné pour faire l'objet d'une multiplication, etc.
Le résultat est 24.
Nous voyons que la fonction n'est pas récursive terminale car, dans l'instruction « return i * fact(i-1);
», le produit est réalisé après le retour de fact(i-1)
.
Nous allons écrire, sur la base de cette première fonction, une fonction récursive terminale.