Vous êtes sur la page 1sur 3

Récursivité

Définition :
Un sous programme récursif est un sous programme qui, lors de sa définition, fait
appel à lui-même.
Principe :
La notion de récursivité se repose principalement sur les trois points suivants :
L'expression récursive (auto-appeler la fonction) ;
La condition d'arrêt (quand arrête-t-on de boucler?) ;
La convergence (ce qui nous amène vers la condition d'arrêt).
Le sous programme récursif fait appel à lui-même jusqu’à ce qu’il atteigne la condition
d’arrêt. Donc il faut qui il ait une convergence vers le point d’arrêt (point d’appui). Pour
les suites réelles ou entières définies à partir d’une relation de récurrence, le point
d’appui représente les premiers termes. Un sous programme peut être une procédure
ou bien une fonction.

EXERCICE N°1 : Calculer la factorielle d’un entier positif <=7 par récursivité
Rappelons que : soit n un entier naturel
n ! = 1*2*3*…*(n-1)*n si n>0
n ! = 1 si n=0

EXERCICE N°2 : Calculer xn par récursivité , x et n deux entiers tel que  (1<x<7)
et ( 0<n<5) .
1 1 1 1
S (n )=1+ + + +.. .+
EXERCICE N°3 : Calculer par récursivité 2 3 4 n sachant
que 1<n<7
1 1 1 1
S (n )=1− + − +. ..+(−1 )n
EXERCICE N°4 : Calculer par récursivité 3 5 7 2 n+1
sachant que 0<n<7

EXERCICE N°5 : Ecrire une fonction récursive calculant le PGCD de deux


entiers strictement positifs en utilisant l’algorithme d'Euclide. On rappelle que le
PGCD de 2 entiers A et B se calcule ainsi : Il est égal à B si ce dernier divise A,
sinon on recommence avec le couple formé de B et du reste.
EXERCICE N°6 : Ecrire une fonction récursive calculant le PGCD de deux entiers
strictement positifs en utilisant l’algorithme des soustractions successives.
On rappelle que le PGCD de 2 entiers A et B se calcule ainsi : Si A = B, alors PGCD
= A, sinon on recommence avec le couple formé par la différence entre le plus grand
et le plus petit, et le plus petit.
EXERCICE N°7 : La fonction d’Ackermann
Soit i et j deux entiers positifs. La fonction Ackermann est définie :
+ Ackermann (i, j) = Ackermann (i-1, Ackermann(i, j-1))
+ Ackermann (i, 0) = Ackermann (i-1, 1)
+ Ackermann (0,j) = j+1
Exemple : Entrez les deux coefficients de la fonction d'Ackermann : 2 et 3.
On trouve Ackermann(2,3 ) = 9.
EXERCICE N°8 : Écrire un sous programme permettant de tester respectivement
si un entier naturel est pair ou impair en utilisant la récursivité simple.

EXERCICE N°9 : Soit le nombre de combinaisons C (n, r) de r objets choisis parmi


n, sans tenir compte de l’ordre. Ces combinaisons peuvent se calculer par la célèbre
formule du triangle de Pascal :

On prendra n et p deux entiers dans [0..5].


EXERCICE N°10 : Pour tout n entier positif, la suite de FIBONACCI est définie
comme suit :
Si (n =0) ou (n =1) alors //point d’arrêt
fibo(n) =1
sinon // n entier >= 2 
fibo(n) =fibo(n-1) + fibo(n-2 )

Finsi
Calculer par récursivité Fibo(n) sachant que n est un entier donné dans [0,6].
EXERCICE N°11 : Ecrire un sous programme récursif permettant d’inverser une
chaîne de caractères de longueur maximale 5 caractères.

EXERCICE N°12 : Écrire un sous-programme qui teste récursivement si une


chaîne de caractères de longueur maximale 5 caractères est un palindrome ou
non.

EXERCICE N°13 : Un nombre premier est un entier naturel > 2, admettant


exactement deux diviseurs distincts dans IN. Ecrire une fonction récursive qui
décide si un entier est un nombre premier ou non

EXERCICE N°14 : Ecrire une fonction récursive qui supprime tous les espaces
contenus dans une chaîne de caractères donnée (Au maximum 10 caractères).
EXERCICE N°15 : Ecrire une fonction récursive qui supprime la première
occurrence d'un caractère donnée une chaîne de caractères donnée.

EXERCICE N°16 : Ecrire un programme permettant de :


 Remplir un tableau "t" de "n" entiers (1<n<10).
 Afficher le tableau "t".
 Saisir une valeur "val" et vérifier son existence dans le tableau "t".
Définir tous les modules d'une façon récursive.
EXERCICE N°17 :
Ecrire un programme permettant de :
 Remplir un tableau "t" de "n" entiers (1<n<10).
 Afficher le tableau "t".
 Afficher la position du premier minimum dans le tableau "t".
Définir tous les modules d'une façon récursive.