Vous êtes sur la page 1sur 4

TD1 Récursivité

Définition : Une procédure (ou une fonction) récursive est une procédure (ou une
fonction) dont le corps contient un ou plusieurs appels à elle-même.

//itérative et récursive
fonction Factoriel (N : Entier) : entier
Variables :
i,P : Entier
Début
P1
Pour i de 1 à N faire
PP*i
FinPour
FactorielP
FinFactoriel

Fonction Factoriel2 (n : Entier) : Entier


Var
Si n<=1 alors
Factoriel21
Si non
Factoriel2n*Factoriel2 (n-1)
FinSi
FinFactoriel2

2)

3)

1
4)

Fonction Fibonacci(n: entier): entier


Var
Debut
Si(n<= 1) Alors
Fibonacci1
Sinon
Fibonacci Fibonacci(n - 1) + Fibonacci(n - 2);
FinSi
Fin

Exercice N2 :

1- Version itérative et récursive

2
2- Procedure Afficher (T : tab ; n entier)
Debut
Si (n>=1) alors
Ecrire (T[n])
Afficher (T, n-1)
FINSI
FIN

Procedure Afficher2(i : entier, T :tab, n :entier)


Debut
Si(i<=n) alors
ecrire(T[i])
Afficher2(i+1, T, n)
FINSI
FIN

3- Fonction Rechercher-min(T : tab, debut, n : entier) :entier


Var
min, i : entier
Debut
min debut
pour i de debut+1 à n faire
Si (T[i]<T[min] alors
mini
FINSI
FINPOUR
Rechercher-minmin
FIN

4- Procedure Permuter (ind1, ind2 : entier ; var T : tab)


Var
temp : entier
Debut
temp <- T[ind1]
T[ind1] <- T[ind2]
T[ind2] <- temp
FIN

5- Procedure Tri-Selection(debut, n: entier ; var T : tab )


Var
min : entier
Debut
Si(debut<n) alors
minrechercher-min(T, debut, n)
Permuter(T, debut,min)
Tri-Selection(T, debut+1, n)

3
FinSi
FIN

• seuls les problèmes dont la solution se base sur une relation de récurrence avec une
condition de sortie peuvent être résolus de façon récursive.
• Le choix doit être fait uniquement en fonction des critères d’efficacité (contraintes de
temps et d’espace).
• Si la solution récursive satisfait ces critères, il n’y a pas lieu de chercher
systématiquement une solution itérative.
• Lorsqu'un sous-programme récursif dont l’appel à lui-même contient un autre appel à
lui même, on parle de récursivité imbriquée.

Vous aimerez peut-être aussi