Back

Les fonctions récursives en PHP

Les fonctions récursives en PHP

  1. Objectifs

    • Connaitre les fonctions récursives en PHP
  2. Définition

    • En programmation, la récursivité consiste à créer une méthode ou une procédure qui s’appelle elle-même.
    • Une fonction est dite récursive si, à l’intérieur de son corps, elle s’appelle elle-même avec une valeur de paramètre différent (sinon elle boucle).
    • Chaque appel constitue un niveau de récursivité.
    • L’exemple le plus classique est celui de la fonction qui retourne la factorielle d’un nombre entier n (notée n!).
    • Pour calculer n!, une fonction récursive calcule n × (n – 1)!, ce qui implique un nouvel appel de la fonction factorielle et ainsi de suite jusqu’à calculer 1! (par définition 0! = 1), puis on remonte jusqu’à n!.



  3. Utilisation

    • <?php
      function facto($n)
      {
       if ($n==1) return 1;
       else {return $n*facto($n-1);}
       } echo "factorielle =",facto(150);
      ?>

      Une fonction qui s’appelle elle-même est un boucle infinie par définition, donc n’oubliez pas de toujours prévoir un cas de sortie.

  4. Applications

    1. App01
      • Écrire une fonction récursive pour calculer la factorielle pour un nombre donné, n :
      • <?php
        
        function factorielle($n) {
          // Cas de base
          if ($ n == 0) {
            echo "Cas de base: $n = 0. Renvoi de 1 ... <br>";
            return 1;
          }
        
          // Récursivité
          echo "$n = $n: Calcul de $n * factorielle (". ($n-1). ") ... <br>";
          $resultat = ($n * factorielle($n-1));
          echo "Résultat de $n * factorielle (". ($n-1). ") = $resultat. Renvoi de $resultat ... <br>";
          return $resultot;
        }
        
        echo "La factorielle de 5 est:". factorielle(5);
        
        ?>
    2. App02
      • Écrire une fonction récursive affichage pour afficher à l’écran les nombres inférieurs à 20 a partir d’un nombre donnée par l’utilisatuer:
      • function affichage($number) {    
            if($number<=10){    
             echo "$number <br/>";    
             affichage($number+1);    
            }  
        }    
        affichage(5);    
    3. App03
      • Ecrire un sous-programme récursif qui calcule la somme des n premiers carrés.
      • Par exemple, si n vaut 3, ce sous-programme calculera 12 + 22 + 32.
      • Ce sous programme n’est défini que pour un n supérieur à 0.






Riadh HAJJI

Laisser un commentaire

Abonnez vous à notre chaîne YouTube gratuitement