Objectif :
- Définir la récursivité.
- Reconnaître et identifier des algorithmes récursifs.
- Faire appel à des fonctions récursives pour résoudre certains problèmes.
- Proposer une analyse modulaire au problème.
- Analyser chacun des modules envisagés précédemment.
- Déduire les algorithmes correspondants.
- Traduire la solution en un programme Pascal.
Exercice 01
Convertir, en Pascal, la procédure itérative ci-dessous en une procédure récursive :
Procedure Compter ;
Var i : integer ;
Begin
For i := 1 to 10 do
Writeln('Bac 2011') ;
End;
Exercice 02
Ecrire une fonction récursive nommée Somme_Chiffre qui retourne la somme des chiffres d’un nombre N donné.
Exercice 03
Ecrire une fonction récursive nommée Chiffre_Droite qui détermine le Kième chiffre à partir de la droite d’un entier n > 0.
- Le 3ème chiffre de 89752 est 7
- Le 5ème chiffre de 21327 est 2
Exercice 04
On appelle palindrome une chaîne de caractères qui donne la même chaîne selon que l’on la lise de gauche à droite ou inversement. Autrement dit, le premier caractère est égal au dernier, le deuxième caractère est égal à l’avant dernier, etc.
Une définition récursive d’un palindrome est :
- La chaîne vide est un palindrome ;
- La chaîne constituée d’un seul caractère est un palindrome ;
aXbest un palindrome sia = bet siXest un palindrome. (Exemple : "ABCBA" ; A=A et "BCB" est un palindrome).
Écrire une fonction récursive nommée Palindrome qui vérifie si une chaîne donnée est palindrome.
Exercice 05
Écrire une fonction récursive Inverse qui permet de lire une phrase ou un mot et de l’écrire à l’envers, à partir du dernier caractère rentré.
Exercice 06
Écrire une fonction récursive nommée anag qui détermine si deux chaînes sont anagrammes.
Deux chaînes ch1, ch2 sont dites anagrammes, si les lettres qui composent la 1er chaîne existent toutes dans la 2ème chaîne.
Exercice 07
La fonction d’Ackermann f est définie, pour x et y entiers naturels, par :
Calculer f(2,3).
Ecrire une fonction récursive qui permet de calculer f pour x et y donnés.
Exercice 08
La suite de Fibonnacci est définie par :
Calculer f(7).
Ecrire une fonction récursive qui permet de déterminer la valeur retournée par la fonction f pour un entier n donné.
Exercice 09
Transformer la procédure suivante en une procédure récursive :
0/ Début Procédure Calcul (N : entier, var P : réel)
1/ P ← 1
2/ Pour i de 1 à N faire
P ← P * i
Fin Pour
3/ Fin Calcul
Exercice 10
Écrire un programme récursif qui affiche tout le contenu d'un tableau T de taille n.