Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
les_fiches_revisions:langages_programmation:recursivite [2021/01/11 15:23] clemercier |
les_fiches_revisions:langages_programmation:recursivite [2022/04/29 12:05] (Version actuelle) lt |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | La **récursivité** en algorithmique est le fait qu'un algorithme contienne un ou plusieurs appels | + | ====== La récursivité (oe) ====== |
| - | {{ : | + | |
| + | La **récursivité** en algorithmique est le fait qu'un algorithme contienne un ou plusieurs appels | ||
| + | {{ : | ||
| + | {{ : | ||
| + | \\ \\ \\ | ||
| + | ===== La pile d' | ||
| + | |||
| + | {{ : | ||
| + | <code python> | ||
| + | def fctA(): | ||
| + | print (" | ||
| + | i=0 | ||
| + | while i<5: | ||
| + | print(f" | ||
| + | i = i + 1 | ||
| + | print ("Fin fonction fctA" | ||
| + | def fctB(): | ||
| + | print (" | ||
| + | i=0 | ||
| + | while i<5: | ||
| + | if i==3: | ||
| + | fctA() | ||
| + | print(" | ||
| + | print(f" | ||
| + | i = i + 1 | ||
| + | print ("Fin fonction fctB" | ||
| + | |||
| + | fctB() | ||
| + | </ | ||
| + | |||
| + | La fonction //fctB// appelle la fonction //fctA//, lors de son exécution, la fonction | ||
| + | |||
| + | {{: | ||
| + | Pour gérer ces fonctions qui appellent d' | ||
| + | La pile d' | ||
| + | |||
| + | La fonction au sommet est la fonction en cours d' | ||
| + | Une fois qu'une fonction à terminé son exécution, elle sortira, on dit qu' | ||
| + | |||
| + | \\ \\ \\ \\ | ||
| + | |||
| + | ===== Les fonctions récursives ===== | ||
| + | |||
| + | {{ : | ||
| + | <code python> | ||
| + | def fonct(n): | ||
| + | if n>0: | ||
| + | fonct(n-1) | ||
| + | print(n) | ||
| + | |||
| + | fonct(3) | ||
| + | </ | ||
| + | Cette fonction est une fonction **récursive** (elle s' | ||
| + | |||
| + | |||
| + | Mais comment cette fonction fonctionne-t-elle? | ||
| + | {{ : | ||