Aide en ligne » Tutoriels » Premiers pas » La récursivité
La récursivité
Une procédure peut appeler une autre procédure, mais elle peut aussi s'appeler elle-même ! Une procédure qui s'appelle elle-même est dite récursive. Si la récursivité ouvre à la tortue de très vastes horizons, elle est assez délicate à utiliser à bon escient. Voici quelques indications pour bien débuter.
Commençons par un exemple :
- pour spirale n
- av n ; td 90 ; spirale n+5
- fin
spirale 5
La tortue ne s'arrête jamais ! (en fait, elle finit par s'arrêter lorsque la mémoire est saturée, ou lorsque l'on clique sur le bouton "stop")
Analysons un peu le comportement de la tortue :
- elle commence par obéir aux commandes av 5 ; td 90 (la variable n a la valeur 5 donnée dans la fenêtre de commande)
- elle doit alors exécuter la commande spirale 5+5 c'est à dire spirale 10 : elle commence donc par exécuter av 10 ; td 90
- elle doit alors exécuter spirale 15 etc.
L'exécution de la procédure n'est donc jamais terminée.
Transformons la procédure pour éviter cet inconvénient :
- pour spirale n
- si (n<=100) alors [
- av n ; td 90 ; spirale n+5
- ]
- fin
Le test d'arrêt permet à la procédure de s'achever, et toute procédure récursive doit inclure un tel test.