Aller au contenu

Introduction générale à la programmation/Récursivité

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Récursivité
Icône de la faculté
Chapitre no 6
Leçon : Introduction générale à la programmation
Chap. préc. :Fonctions
Chap. suiv. :Pointeurs
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction générale à la programmation : Récursivité
Introduction générale à la programmation/Récursivité
 », n'a pu être restituée correctement ci-dessus.
descriptif indisponible
Wikipedia-logo-v2.svg
Wikipédia possède un article à propos de « Fonction récursive ».

La récursivité est le phénomène de faire appel à soi même.

Dans la programmation, la récursivité est très utilisée, notamment dans les fonctions.

En effet, une fonction est une procédure qui retourne une valeur. Cette spécificité permet donc de créer une fonction qui s’appelle elle-même en passant en paramètre le résultat du traitement effectué, et bien sûr ce second appel pourra lui-même appeler la fonction une troisième fois, et ainsi de suite.

On obtient donc un empilement d'appels, chacun réalisant une étape d’un traitement (souvent une manipulation de chaine de caractère).

Lorsqu'on arrive au bout du traitement, la dernière fonction fille appelée retourne une valeur qui se propagera jusqu'à la fonction mère par le même procédé. C’est de cette façon qu'une fonction récursive se termine.

Il est donc nécessaire de retenir deux points importants caractérisant la récursivité :

  • la pile mémoire est abondamment utilisée par la récursivité (la plupart des erreurs de programmation récursive génèrent un dépassement de pile) ;
  • une fonction récursive doit impérativement avoir une condition de fin qui provoquera le dépilement.

Voir aussi la leçon « Récursivité dans l'algorithmique et la programmation ».

L'exemple qui suit est particulièrement inutile, dans la mesure où l'opération effectuée par la procédure pourrait être réalisée bien plus efficacement, et sans utiliser de fonctions — il s'agit donc avant tout d'une illustration de ce principe :

Début de l'exemple
Fin de l'exemple


Récursivité et fonctions

[modifier | modifier le wikicode]

Quelques exemples classiques de mise en œuvre de la récursivité :

En outre, on peut aussi appeler une fonction depuis cette même fonction.