Vous êtes sur la page 1sur 3

Année-académique : 2023-2024

UE : Algorithmes avancés
TD/TP N°1 : La récursivité
Service de la Scolarité et des Examens Niveau : Licence 2 Informatique

LA RECURSIVITE
Exercice 1 : Somme des n nombres
Ecrire un algorithme récursif qui calcule la somme des entiers de 1 à n, n étant saisie au clavier.
S=1+2+3+…+n

Exercice 2 : Conversion décimal-binaire


Ecrire un algorithme récursif qui convertit un nombre décimal (base 10) en binaire (base 2).

Exercice 3 : Combinaison
Ecrire une fonction qui permet de déterminer le nombre de combinaisons possibles de p élément parmi n
sachant que C np peut être calculé par :
p p−1 p
C n =C n−1 +C n−1
n
C n=1
1
C n=n

Exercice 4 : Croissant/décroissant
Ecrire un programme contenant les deux procédures récursives suivantes :
- Procédure montee qui affiche les entiers de 1 à n, dans l’ordre croissant.
- Procédure descente qui affiche les entiers de 1 à n, dans l’ordre décroissant.

Exercice 5 : Ackermann-Péter
La fonction d’Ackermann-Péter est définie récursivement comme suit :

Ecrire une fonction qui, à partir de deux arguments m et n, calcule A(m,n).

1/3
Année-académique : 2023-2024
UE : Algorithmes avancés
TD/TP N°1 : La récursivité
Service de la Scolarité et des Examens Niveau : Licence 2 Informatique

Exercice 6 : Récursivité croisée


On considère deux suites U(n) et V(n) définies, pour n >= 0 par :
U(0) = 1
V(0) = 2
U(n) = 3U(n-1) + 2V(n-1)
V(n) = 2U(n-1) + 3V(n-1)
Ces deux suites ont pour particularité que : V(n) – U(n) = 1 pour tout n.
 Ecrire un programme qui, à l’aide de fonctions récursives, donne les valeurs de ces deux suites
pour un n donnée (tester avec n = 3) et qui vérifie que la différence entre ces valeurs est égale à 1.
 Etablir les arbres des appels.

Exercice 7 : Fonction mutuellement récursives


Le but de cet exercice consiste à écrire les fonctions récursives est_pair et est_impair sans utiliser le
modulo.
La fonction est_pair respectivement est_impair retourne Vrai si son argument entier est pair
respectivement impair.
 n ∈ N est impair si n−1 est pair .
 n ∈ N est pair si n−1 est pair .
 0 est pair .
 '
0 n est pas impair .

Exercice 8 : PCGD de nombre


Ecrire une fonction récursive qui retourne le plus grand diviseur commun de deux entiers passés comme
arguments. On se servira de l’algorithme d’Euclide :

a si b = 0
pgcd(a,b) = pgcd(b, a) si a < b
pgcd(b, a mod b) sinon

2/3
Année-académique : 2023-2024
UE : Algorithmes avancés
TD/TP N°1 : La récursivité
Service de la Scolarité et des Examens Niveau : Licence 2 Informatique

Exercice 9 : Récursivité et tableau


Soit un T tableau d’entiers de taille N,

1. Ecrire une fonction récursive permettant d’afficher les éléments du tableau T.


2. Ecrire une fonction récursive permettant de calculer la somme de tous les éléments du tableau T.
3. Ecrire une fonction récursive qui renverse le tableau T. cette dernière doit prendre en entrée le
tableau T et le renvoyer dans l’ordre inverse.
4. Ecrire une fonction récursive qui recherche séquentiellement une valeur dans le tableau T.
5. Ecrire une fonction récursive qui recherche dichotomiquement une valeur dans le tableau T.
6. Ecrire la procédure itérative indiceMaxTab qui renvoie l’indice du plus grand élément du tableau.
7. Ecrire la procédure itérative echangeElmtTab qui permet de permuter deux éléments du tableau.
8. Ecrire la procédure récursive triSelectionTab utilisant les deux procédures précédentes pour trier
le tableau T.
9. Tester vos fonctions.

3/3

Vous aimerez peut-être aussi