14. récursion



Une méthode récursive est une méthode qui fait appel à elle-même (directement ou indirectement). En général, l'appel à soi-même se fait sur un objet différent, ou sur le même objet, mais avec des paramètres différents. (si on utilise toujours le même objet avec la même méthode et les mêmes paramètres, on risque d'avoir une récursion infinie - par analogie avec une boucle infinie).
[revoir la formulation]

Exemple : le dessin de la figure ci-dessus utilise typiquement une méthode récursive.

On remarque que c'est toujours le même schéma qui est reproduit, de plus en plus petit.

class Tortue extends SuperTortue{

    void arbre(int longueur, int x, int y){
        Coordonnee c;
        double dir;
        saute(x,y);
        tourneGauche(40);
        avance(longueur);
        c = position();
        dir = directionRadians();
        if ((longueur/2)>5){
           arbre(longueur/2, c.x(), c.y());
        }
        for (int i=0; i<2; i++){
            directionRadians(dir);
            saute(x,y);
            tourneDroite(60);
            avance(longueur);
            c = position();
            dir = directionRadians();
            if ((longueur/2)>5){
               arbre(longueur/2, c.x(), c.y());
            }
        }
    }
}
 

public class MonProg14a{

 public static void main(String[] args){

  Tortue rosalie = new Tortue();

  rosalie.arbre(150, 250, 450);
 }
}
MonProg14a.java

Attention de ne pas faire une récursion sans fin ! Ici, si on n'a pas la condition if ((longueur/2)>5) le programme ne dessinerait que



Exercices

8/1/2001
CLMJ