4ème SI Algorithmique et Programmation                                               L.E.Tozeur




                                           Objectifs
           ·   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.


Pour chacun des exercices suivants :
       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é.
Exemple :     (417 4+1+7 = 12)
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.
Exemples :      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 ;
     ü aXb est un palindrome si a = b et si X est un palindrome. (Exemple : "ABCBA" ; A=A et
        ‘’BCB’’ est un palindrome).
Ecrire une fonction récursive nommée Palindrome qui vérifie si une chaîne donnée est
palindrome.




© Hassen.benbeya@savoir-programmer.com                                           Page 1 sur 2
Exercice 05
Ecrire 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é.
Exemple :
Miroir, qui est la plus belle ?       ? elleb sulp al tse iuq ,rioriM

Exercice 06
Ecrire 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 tous dans la 2ème chaîne.
Exemple :      ch1 = chien et ch2 = niche

Exercice 07

                                              +1           =0
La fonction d’Ackermann f est définie, pour x et y entiers naturels, par :

                       ( , )=            ( − 1, 1)          =0
                                       − 1, ( , − 1)           ≠ ≠0
    Ø Calculer f(2,3).
    Ø Ecrire une fonction récursive qui permet de calculer f pour x et y donnés.

Exercice 8

                                             1         =0
La suite de Fibonnacci est définie par :

                                   =         1         =1
                                            +          >2
   Ø 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é.

NB : les exercices sont ordonnés par difficultés croissantes.




© Hassen.benbeya@savoir-programmer.com                                             Page 2 sur 2

bac info : série récursivité

  • 1.
    4ème SI Algorithmiqueet Programmation L.E.Tozeur Objectifs · 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. Pour chacun des exercices suivants : 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é. Exemple : (417 4+1+7 = 12) 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. Exemples : 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 ; ü aXb est un palindrome si a = b et si X est un palindrome. (Exemple : "ABCBA" ; A=A et ‘’BCB’’ est un palindrome). Ecrire une fonction récursive nommée Palindrome qui vérifie si une chaîne donnée est palindrome. © Hassen.benbeya@savoir-programmer.com Page 1 sur 2
  • 2.
    Exercice 05 Ecrire unefonction récursive Inverse qui permet de lire une phrase ou un mot et de l’écrire à l’envers, à partir du dernier caractère rentré. Exemple : Miroir, qui est la plus belle ? ? elleb sulp al tse iuq ,rioriM Exercice 06 Ecrire 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 tous dans la 2ème chaîne. Exemple : ch1 = chien et ch2 = niche Exercice 07 +1 =0 La fonction d’Ackermann f est définie, pour x et y entiers naturels, par : ( , )= ( − 1, 1) =0 − 1, ( , − 1) ≠ ≠0 Ø Calculer f(2,3). Ø Ecrire une fonction récursive qui permet de calculer f pour x et y donnés. Exercice 8 1 =0 La suite de Fibonnacci est définie par : = 1 =1 + >2 Ø 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é. NB : les exercices sont ordonnés par difficultés croissantes. © Hassen.benbeya@savoir-programmer.com Page 2 sur 2