Académique Documents
Professionnel Documents
Culture Documents
(BAC 2023)
CLASSE :
4ÈME SCIENCES DE L’INFORMATIQUE
THÈME :
LA RÉCURSIVITÉ
1
PLAN
01
LA RÉCURSIVITÉ
02 03
EXERCICES CONSIGNES GÉNÉRALES
PARTIE 01
LA RÉCURSIVITÉ
3
Exemple 1: Film insiption
4
Exemple 2:
5
Exemple 3:
6
Exemple 4 : Les poupées russes ou matriochkas
7
Exemple 5 : La vache qui rit
8
I. INTRODUCTION
Une fonction récursive est une fonction récursive
Une fonction récursive est une fonction qui fait appelle à
elle-même
On peut parler aussi d’une procédure récursive
La programmation récursive est une technique de
programmation qui remplace les instructions de boucle (pour,
tant que, répéter) par des appels de fonction ou de procédure
L'itération et la récursivité, correspondent à deux modes de
pensée différents.
9
Exemple :
SOMME (0) = 0
10
Exemple :
11
II. Les parties constitutives d’une fonction
récursive
La solution récursive comporte :
Une condition d’arrêt de l’appel récursif
Un appel récursif en changeant la valeur d’un ou plusieurs
paramètres
Fonction Somme (N : Entier) : Entier
Début Condition d'arrêt
Si (N=0) Alors (pas d'appel récursif)
Retourner 0
Sinon
Retourner N+Somme (N-1)
Fin SI
Appel récursif avec
Fin changement de valeur
de paramètre
12
II. Les parties constitutives d’une fonction
récursive
Somme(5)
3 + Somme(2)
4 + Somme(3) 4 + Somme(3)
5 + Somme(4) 5 + Somme(4) 5 + Somme(4)
0
1 +Somme(0)
1 +Somme(0)
2 + Somme(1) 2 + Somme(1)
2 + Somme(1)
3 + Somme(2) 3 + Somme(2)
3 + Somme(2)
4 + Somme(3) 4 + Somme(3)
4 + Somme(3)
5 + Somme(4) 5 + Somme(4) 14
5 + Somme(4)
II. Mécanisme de fonctionnement d’une pile
Déchargement de la pile
0
1 +Somme(0) 1 +0
2 + Somme(1) 2 + Somme(1) 2 +1
3 + Somme(2) 3 + Somme(2) 3 + Somme(2)
4 + Somme(3) 4 + Somme(3) 4 + Somme(3)
5 + Somme(4) 5 + Somme(4) 5 + Somme(4)
Pile vide
3 +3 Somme(5)=15
4 + Somme(3) 4 +6
5 + Somme(4) 5 + Somme(4) 5 10
15
PARTIE 02
EXERCICES
16
EXERCICE N°1: PGCD
Ecrire une fonction récursive permettant de calculer et de retourner le PGCD de
deux entiers A et B (A>0 et B>0) en utilisant la méthode par soustraction
Exemple : Pour A=28 et B=16
A>B A=A-B =28-16=12
B>AB=B-A=16-12=4
A>BA=A-B=12-4=8
A>BA=A-B=8-4=4
A=B=4 Donc PGCD(28,16)=4
Analyse:
1. Condition d’arrêt :A=B Retourner A ou B
2. Appels récursif : Appel avec modification de A / Appel avec modification
de B
3. Paramètres : A et B
17
CORRECTION EXERCICE N°1: PGCD
Fonction PGCD(A: Entier, B: Entier): Entier
Début
Si A=B Alors Condition d'arrêt
(pas d'appel récursif)
Retourner A
Sinon Si (A>B)Alors
Retourner PGCD(A-B, B) 1ère appel récursif
Sinon
Retourner PGCD(A, B-A)
Fin Si
Fin 2ème appel récursif
18
EXERCICE N°2: NOMBRE PREMIER
Ecrire une fonction récursive permettant de vérifier si un entier X >1 est premier
ou non.
Un nombre X est dit premier s’il est divisible uniquement par 1 et par lui-même
Exemple : 2, 3, 5, 7, 11, 13, 17 , etc.
Analyse:
1. Conditions d’arrêt :
Trouver un diviseur inférieur ou égal à X div 2 Faux
Dépasser X div 2Vrai
2. Appels récursif : Appel avec incrémentation du compteur
3. Paramètres : Un entier X et un entier D (Compteur)
19
CORRECTION EXERCICE N°2: NOMBRE PREMIER
Fonction Premier(X: Entier, D: Entier): Booléen
Début
Si D> X Div 2 Alors 1ère condition d'arrêt
X est Premier
Retourner Vrai
Sinon Si (X Mod D =0)Alors
2ème condition d'arrêt
Retourner Faux X n’est pas premier
Sinon
Retourner Premier(X, D+1)
Fin Si
Fin Appel récursif avec
incrémentation du compteur
Voici le code appelant de la fonction « Premier »
BPremier (X, 2)
20
EXERCICE N°3: NOMBRE COMBINAISON
Pour calculer le nombre de combinaison de P éléments (P>=0) parmi N>=p)
est basée sur les règles suivantes :
Si P=0 Alors =1
Si P=N Alors =1
Si P >= 1, N > P Alors = +
Analyse:
1. Déterminer la condition d’arrêt :
Si P=0 Le nombre de combinaison est 1
Si P=N Le nombre de combinaison est 1
2. Appels récursif : Double appel récursif avec modification de P et de N
3. Paramètres : Deux entiers N et P
21
CORRECTION EXERCICE N°3: NOMBRE COMBINAISON
22
EXERCICE N°4: CONVERSION DE B10 VERS B2
Analyse:
1. Déterminer la condition d’arrêt : La valeur de X est égale à 0 ou 1Retourner
‘’0’’ ou ‘’1’’
2. Appel Récursif: Appel avec modification de la valeur de X et en sauvegardant le
reste dans la pile
3. Paramètre : Un entier X positif
23
CORRECTION EXERCICE N°4: CONVERSION DE B10 VERS B2
N.B: L’appel doit être effectuer avant la sauvegarde du reste afin que le
Conv10_2(23)
Conv10_2(5)+ ‘1’
Conv10_2(11)+ ‘1’ Conv10_2(11)+ ‘1’
‘1’
Conv10_2(1)+ ‘0’ Conv10_2(1)+ ‘0’
Conv10_2(2)+ ‘1’ Conv10_2(2)+ ‘1’ Conv10_2(2)+ ‘1’
Conv10_2(5)+ ‘1’ Conv10_2(5)+ ‘1’ Conv10_2(5)+ ‘1’
Conv10_2(11)+ ‘1’ Conv10_2(11)+ ‘1’ Conv10_2(11)+ ‘1’
25
Pile de la fonction «Conv10_2»
Déchargement de la pile
‘1’
Conv10_2(1)+ ‘0’ ‘10’
Conv10_2(23)
Conv10_2(2)+ ‘1’ Conv10_2(2)+ ‘1’
Conv10_2(5)+ ‘1’ Conv10_2(5)+ ‘1’
Conv10_2(11)+ ‘1’ Conv10_2(11)+ ‘1’
Conv10_2(23)=‘10111’
‘101’
Conv10_2(5)+ ‘1’ ‘1011’
Conv10_2(11)+ ‘1’ Conv10_2(11)+ ‘1’ ‘10111’ 26
EXERCICE N°5: CONVERSION DE B16 VERS B10
27
CORRECTION EXERCICE N°5: CONVERSION DE B16 VERS B10
XConv16_10 (Hex, 1)
28
PARTIE 03 : CONSIGNES GÉNÉRALES