Module: (Python) Sous-programmes. récursivité


Problem

1/12

Récursivité. Qu'est-ce que c'est?

Theory Click to read/hide

Récursivité

Une procédure ou une fonction peut contenir un appel à une autre procédure en son sein. Y compris, le sous-programme peut s'appeler. Dans ce cas, l'ordinateur s'en fiche. Il exécute également, comme toujours, systématiquement les commandes qu'il a rencontrées de haut en bas.

Si vous vous souvenez des mathématiques, vous pouvez y rencontrer le principe d'induction mathématique. C'est comme suit :
une affirmation est vraie pour chaque n naturel si
    1. il est valable pour n = 1 et
    2. de la validité de l'énoncé pour tout n = k naturel arbitraire, il s'ensuit qu'il est vrai pour n = k + 1.

En programmation, cette technique est appelée récursivité.
 
La récursivité est un moyen de définir un ensemble d'objets en termes d'ensemble lui-même, en fonction de données cas de base simples.

Récursif est une procédure (fonction) qui s'appelle elle-même directement ou via d'autres procédures et fonctions.
 
Exemple
def Rec(a) : si (a>0) : Rec(a-1) imprimer(a)
Schématiquement, le travail de récursivité peut être représenté par un organigramme



La procédure Rec() est exécutée avec le paramètre 3. Ensuite, à l'intérieur de la procédure avec le paramètre 3, la procédure avec le paramètre 2 est appelée, et ainsi de suite, jusqu'à ce que la procédure avec le paramètre 0 soit appelée. Lorsque la procédure avec le paramètre 0 est appelée, l'appel récursif ne se produira plus et la procédure avec le paramètre 0 imprimera le numéro 0 et sortira. Ensuite, le contrôle est renvoyé à la procédure avec le paramètre 1, elle termine également son travail en imprimant le numéro 1, et ainsi de suite. avant la procédure avec le paramètre 3. 

Toutes les procédures appelées sont stockées en mémoire jusqu'à ce qu'elles terminent leur travail. Le nombre de procédures concurrentes est appelé profondeur de récursivité.
 

Problem

En utilisant la procédure analysée, ajoutez les lignes nécessaires au programme principal.
Comprendre pourquoi le programme donne une telle réponse.