Vous êtes sur la page 1sur 2

Université Kasdi Merbah Ouargla

Faculté des Mathématiques et des Sciences de la Matière


Domaine des mathématiques et informatique
Module: ASD2 Algorithmique et structure de données 2
Enseignants: Mourad Belhadj, Mihoub Mazouz, Khadidja Ameur
Année universitaire: 2020/2021
Classe: Tronc commun math. et informatique
Type: Travaux dirigés, Série n◦ 02 Récursivité

Exercice 1
Écrire une fonction sous_chaine(str, i, j) qui permet de retourner une sous chaîne de caractères comprise
entre i et j à partir d’une chaîne de caractères donnée comme paramètre d’entrée.
Exemple:
st1=’abcdef’
sous_chaine(st1, 2, 5)=’bcde’

Exercice 2

1. Écrire une fonction récursive qui calcule le produit de deux entiers positifs, puis une autre qui élève un
nombre flottant à une puissance entière.
2. Écrire l’algorithme d’Euclide sous sa forme d’une fonction récursive.

Exercice 3
Écrire un programme qui calcule récursivement et affiche le nombre de chiffres d’un entier strictement positif
donné par l’utilisateur.
Exemple d’exécution :
Donnez un entier positif : 15789
Ce nombre possède 5 chiffres.

Exercice 4
Réaliser la fonction qui permet d’évaluer une expression de type (’1+9+6+3’), en utilisant la récursivité.

Exercice 5
Donner une solution sous forme de fonction puis procédure récursive qui inverse une chaîne de caractères.

Exercice 6

• Écrire la fonction Fib, en version itérative et une autre récursive, pour calculer le terme n de la suite
de fibonacci.
• Écrire la fonction récursive pour trouver le PGCD de deux nombres.

Exercice 7
Écrire une fonction ou procédure récursive permettant de vérifier si une chaîne de caractères est un palindrome
(Un palindrome est une chaîne de caractères qui se lit dans les deux sens).

Exercice 8
Écrire la procédure récursive qui permet d’afficher un tableau en ordre, puis en sens inverse.
Exercice 9
Donner sous sa forme récursive une fonction ou procédure qui affiche toutes permutations possibles d’une
chaînes de caractères, ceci est appelé une anagramme.
Exemple d’exécution :
Donnez une chaîne de caractère : abc
Les cas possibles sont: acb, bca, bac, cab et cba.

Travail personnel

Exercice 10

1. Soit un tableau de nombres entiers classés en ordre croissant. Écrire une fonction ou procédure récursive
qui permet de rechercher un élément donner dans le tableau.
2. Trouver la somme de chiffres d’un nombre.
3. Trouver la somme de n nombre entier.

Exercice 11
On a les valeurs suivantes :
Chiffre romain I V X L C D M
Valeur 1 5 10 50 100 500 1000
Si le premier chiffre d’un nombre romain a une valeur inférieure au deuxième, alors on le soustrait de la
valeur de tout le reste, sinon on l’additionne à la valeur de tout le reste.
Si le nombre romain a un seul chiffre, alors on prend simplement la correspondance (M=1000, . . . ).
Évidemment, pour calculer tout le reste, il faut appliquer à nouveau ce principe, ce qui rend ce principe
récursif.
Écrire cet algorithme en pseudo-code.
Exemple :

"MCMLXXV" = 1 000 + (1 000 - 100) + 50 + 10+ 10 + 5 = 1975


Idée générale : le décodage s’effectue lettre après lettre de la gauche vers la droite. Nous ajoutons ou
retranchons la lettre précédente selon la valeur de lettre en cours de décodage

Exercice 12
Écrire un sous programme récursive qui permet d’écrire un nombre en décimal dans la base binaire.