Introduction à la Récursivité en Programmation

La récursivité
Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre JavaScript ES6 - Les fondamentaux
Revoir le teaser Je m'abonne
3,5
Transcription

69,90€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

Description Programme Avis
3,5
69,90€ Je commande

À partir de
27€ /mois
Je m'abonne à Elephorm

Les objectifs de cette vidéo sont de :
- Comprendre le principe de la récursivité.
- Savoir implémenter une fonction récursive.
- Apprendre à éviter les boucles infinies et les stack overflows.

Découvrez les notions essentielles de la récursivité en programmation, y compris la manière d'éviter les boucles infinies et les stack overflows.

Dans cette leçon, nous explorons en détail le concept de récursivité en programmation. La récursivité consiste à créer une fonction qui s'appelle elle-même. Ce principe repose sur l'idée d'une pile où chaque appel récursif empile une nouvelle valeur. Cependant, sans une condition d'arrêt, cela peut mener à des problèmes comme des boucles infinies ou des stack overflows.

Nous illustrons ce concept par la création d'une fonction récursive pour additionner les éléments d'un tableau. La fonction add prend deux arguments : un tableau et un index. Elle additionne l'élément courant à la somme des éléments suivants jusqu'à ce que l'index dépasse la taille du tableau, auquel cas elle retourne 0.

Cette vidéo inclut une démonstration pas à pas, en commençant par la mise en place de la condition d'arrêt essentielle pour prévenir un stack overflow, puis en détaillant chaque étape du processus récursif. Enfin, nous validons le fonctionnement correct de la fonction par un exemple pratique qui montre le résultat final attendu.

Voir plus
Questions réponses
Qu'est-ce que la récursivité en programmation?
La récursivité en programmation est une technique où une fonction s'appelle elle-même pour résoudre une tâche plus petite jusqu'à atteindre une condition d'arrêt.
Pourquoi est-il important d'éviter les boucles infinies dans une fonction récursive?
Éviter les boucles infinies est crucial pour prévenir les stack overflows, qui se produisent lorsque la pile d'appels dépasse sa capacité maximale.
Quel est le rôle de la condition d'arrêt dans une fonction récursive?
La condition d'arrêt permet de terminer les appels récursifs et ainsi de commencer à dépiler la pile pour retourner les résultats.
On attaque un principe un petit peu compliqué encore une fois, on va parler ici de récursivité. La récursivité en programmation, c'est quand on crée une fonction qui va se rappeler elle-même, et il va falloir faire très attention à ne pas faire de boucle infinie ou ne pas faire ce qu'on appelle un stack overflow. La récursivité en fait, ça fonctionne sur le principe d'une pile. Donc en fait, votre fonction, qui va s'appeler elle-même, va créer un empilement de valeurs qui vont s'enchaîner jusqu'à temps que vous arriviez dans votre fonction à une condition qui va arrêter cet empilement, et ensuite, ça va déplier la pile que vous avez rempilée, et ça va retourner un résultat. Donc j'ai gardé ici notre fameux tableau avec nos quatre valeurs, et on va essayer de coder en récursif une fonction qui va additionner les éléments. Donc il s'agit d'une fonction qu'on va toujours appeler add, et bien ça va prendre notre tableau et ça va prendre un index qu'on va appeler i. Le but ici, ça va être de dire qu'on va retourner, alors je vais enlever l'évaluation, on va retourner tab de i, donc qui va être la valeur courante, plus notre fonction add, avec toujours tab, et ensuite i plus 1. Donc là ça veut dire qu'à chaque fois que je lance la fonction avec par exemple ici tab, i, on va dire que ça démarre à 0 parce que j'ai envie de démarrer ma fonction d'ajout à partir du premier index, je vais retourner la valeur courante, donc ça, ça va être ici 1, et puis 2, et puis 3, et puis 42, et ensuite je vais ajouter i plus 1, enfin je vais ajouter toujours la même fonction add, mais cette fois-ci avec un index plus 1, un index supérieur juste après. Donc là en fait, c'est comme si j'ajoutais 1, plus j'ajoute toujours le même tableau avec 2, puis avec 3, puis avec 42. Et ensuite i va valoir 4, donc 4 ici ça n'existe pas, donc on va pas pouvoir enchaîner les appels de add parce qu'on risque de faire un stack overflow. Donc il va falloir mettre une condition ici, il va falloir dire que si tab de i n'existe pas, donc là ça veut dire est-ce qu'il existe, donc s'il n'existe pas on met un point d'exclamation devant pour dire qu'il n'existe pas. Si tab de i n'existe pas, on veut retourner 0, sinon on veut retourner tab de i plus ajouter encore table de i plus 1. Donc là en fait, ce qui va se passer c'est que si on tombe sur un i qui est égal à 4, et bien ici ça va être vrai, tab de i n'existe pas, donc on va retourner 0. Donc en fait on va ajouter systématiquement, c'est à dire que add, la fonction add ici, elle va retourner 0 à ce moment là. Quand i n'existe pas, la fonction add va retourner 0, et si i existe, la fonction add va retourner l'élément courant. Du coup au premier tour je vais retourner 1, plus au deuxième tour je vais retourner 2, plus au deuxième tour je vais retourner 3, plus au tour d'après je vais retourner 42, plus au tour d'après ça n'existe pas, je vais retourner 0, et ensuite ça va dépiler, donc 0, plus 42, plus 2, plus 1, et ça va renvoyer cette réponse là. Donc si je console log add de mon tableau, et du coup on démarre à l'index 0, et que j'évalue mon code, ça me renvoie 48, ça fonctionne correctement.

Programme détaillé de la formation

8 commentaires
3,5
8 votes
5
4
3
2
1
C0C23DAC-E0F0-4671-A5DA-98CC3C3F0FD7@cyberlibris.studi.fr
Il y a 2 weeks
Commentaire
RAS
elephorm-1344761@addviseo.com
Il y a 4 months
Commentaire
Le cours sont pas assez adaptés pour une personne qui débute un peu les langages informatiques
85F76F55-E9A7-4111-B6B2-79CB51A205B9@cyberlibris.studi.fr
Il y a 7 months
Commentaire
EXCELLENT
93DAC8BB-E168-4366-B5BE-6F3D0B39B74D@cyberlibris.studi.fr
Il y a 9 months
Commentaire
super
wastiaux.william
Il y a 2 years
Commentaire
Un peu léger, le cour survole toutes les notions de bases. L'idéal est de visionner les cours en x2.
Si vous êtes novices, vous pourrez rentrer rapidement dans le monde du js.
michaellaunay
Il y a 3 years
Commentaire
Bonne formation pour qui sait déjà programmer dans un autre langage. Une formation sur Javascript avancé serait fort appréciée ;-)
olivierousmail
Il y a 3 years
Commentaire
Formation inadaptée pour un débutant, donne des concepts sans les expliquer, qu'est ce qu'un tableau ? qu'est ce qu'une fonction ? focalise tout le premier module sur l'utilisation de constantes alors qu'on est loin de les utiliser régulièrement.

Formation faite pour revenir dessus après avoir suivi une "réelle" formation sur les bases de Javascript.
lepajollecfranck
Il y a 3 years
Commentaire
Très bons contenus et bonnes explications. Manque d'un second module pour aller plus loin dans l'exemple.

Nos dernières formations JavaScript
  • Apprendre Vue JS 3
    Découvrir
    Apprenez à créer des applications web modernes avec notre formation "Apprendre Vue JS 3". Rejoignez-nous et maîtrisez ce puissant framework JavaScript ! 🚀 #VueJS #FormationWeb #Développement
    11h47 91 leçons
  • Savoir programmer en Node.js
    Découvrir
    Apprendre à programmer en Node.js
    2h14 15 leçons
  • Apprendre Javascript - Les fondamentaux
    Découvrir
    Apprendre le langage de programmation JavaScript
    2h55 29 leçons 4,50 / 5