La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

RABAH M ed Ali 2018/2019

Présentations similaires


Présentation au sujet: "RABAH M ed Ali 2018/2019"— Transcription de la présentation:

1 RABAH M ed Ali 2018/2019 informatique@LRPSoliman

2  I- Introduction: Activité 1

3   On constate un phénomène de répétition de la même chose en appliquant le même processus mais à des dimensions différentes.  Pour chaque cas le traitement s’arrête après un certain nombre d’itérations.  Chaque objet est définie à partir de lui même.  C’est qu’on appelle la Récursivité I- Introduction: Constatation

4 Essayons de trouver le phénomène de la récursivité

5  Proposez un algorithme d’une fonction permettant de calculer la factorielle d’un entier N.  Comment appelle-t-on le procédé utilisé dans ce traitement ? I- Introduction: Activité 2

6  I- Introduction: Solution  Il s’agit d’un procédé itératif  on a utilisé la boucle itératif Pour. Algorithme de la fonction Factorielle : 0) DEF FN Factorielle (n : Entier) : Entier 1) F  1 2) Pour i de 2 à N Faire F  F * i Fin Pour 3) Factorielle  F 4) Fin Factorielle

7   Notation mathématiquement: N! = n x (n-1) x (n-2) x (n-3) x.......x 2 x 1 Et 0! =1 N!= n x (n-1)! Et 0! =1  Notation algorithmique: Factorielle (n) = n * Factorielle (n-1) Factorielle (0) = 1  Remarque: Pour définir factorielle (n) on a appelé la même fonction sur d’autres données plus simples (factorielle (n-1)).  dans ce cas la fonction Factorielle est dite Récursive. I- Introduction: Suite

8   Factorielle (4) =4 * Factorielle (3)  Factorielle (3) =3 * Factorielle (2)  Factorielle (2) =2 * Factorielle (1)  Factorielle (1) =1 * Factorielle (0)  Factorielle (0)= I- Introduction: Exécution manuelle En utilisant la formule précédente calculer manuellement Factorielle (4): = 24 = 6 = 2 = 1 1

9   Pour calculer Factorielle (n) on a :  1/ Fait l’appel de la fonction Factorielle (n-1) : Factorielle (n) = n * Factorielle (n-1)  L’appel de la fonction elle-même  2/ Arrêté le traitement quand n arrive à 0 : Si (n = 0) Alors Factorielle  1  La condition d’arrêt du procédé de calcul (cas trivial pas d’appel du module lui-même) I- Introduction: Conclusion

10  I- Introduction: Version récursive Etape 1 : Paramétrage Etape 2 : Rechercher le point d’arrêt Etape 3 : Appel récursive 0) DEF FN Factorielle (n : Octet) : Entier Long 1) Si (n = 0) Alors Factorielle  1 Sinon Factorielle  n * Factorielle (n-1) Fin Si 2) Fin Factorielle Pour le cas n=0 on a: Factorielle (0)= 1 n : Octet Factorielle(n) = n * Factorielle (n-1)

11   Un module est dit récursif, si dans sa définition fait appelle à lui-même. II- Définition:

12  1/ Tout module récursif doit avoir au moins un cas qui ne doit pas comporter d’appel au module lui-même (cas de base ou trivial). Factorielle  1 pour N =0 sinon le module sera infini 2/ Tout module récursif doit avoir au moins un appel à lui-même avec des paramètres s’approchant de plus en plus du point d’arrêt. Factorielle  N * Factorielle (N-1) sinon le module sera infini 3/ Tout module récursif se traduit par une structure conditionnelle. III-Règles de construction

13  1/ A chaque appel, il y a mémorisation d’une valeur différente d'un même paramètre formel dans un espace mémoire dit : une pile. 2/ Tout module récursif se traduit par une structure conditionnelle dont l’une des alternatives correspond au point d’arrêt. Remarques:

14  Applications Tours de Hanoï

15   Le jeu des tours de Hanoï est un jeu de réflexion qui consiste à déplacer n disques d'une tour de « départ » A à une tour d'« arrivée » C en passant par une tour intermédiaire » B, et ceci en un minimum de coups. Principe

16   Les règles de jeu sont :  Déplacer un seul disque à la fois  Déplacer un disque uniquement sur un disque plus grand,  Nous ne pouvons déplacer un disque qui se trouve sous un autre Règles

17  Solution pour n=1 Déplacer le disque de A à C

18  Solution pour n=2 Déplacer un disque de A vers B utilisant C Déplacer un disque de A vers C

19  Solution pour n=2 Déplacer un disque de A vers B utilisant C Déplacer un disque de A vers C Déplacer un disque de B vers C utilisant A

20  Solution pour n=3 Déplacer 2 disques de A vers B utilisant C Déplacer un disque de A vers C

21  Solution pour n=3 Déplacer 2 disques de A vers B utilisant C Déplacer un disque de A vers C Déplacer 2 disques de B vers C utilisant A

22  Solution pour n tours Déplacer n-1 disques de A vers B utilisant C Déplacer un disque de A vers C Déplacer n-1 disques de B vers C utilisant A

23  0) DEF PROC Hanoi (n: octet; A, B, C:caractère) 1) Si (n>0) Alors PROC Hanoi (n-1, A, C, B) Ecrire (Déplacer un disque de, A, vers, C) PROC Hanoi (n-1, B, A, C) Fin Si 2) Fin Hanoi  Appel de la procédure ( n=3 ) :PROC Hanoi ( 3, ‘A’, ‘B’, ‘C’) Solution algorithmique Déplacer n-1 disques de A vers B utilisant C Déplacer un disque de A vers C Déplacer n-1 disques de B vers C utilisant A

24  Trace d’exécution pour n=3 Hanoi (3, A, B, C) Hanoi (2, A, C, B) Hanoi (2, B, A, C) A Vers C B Vers C Hanoi (2, A, B, C) Hanoi (2, B, C, A) A Vers B Hanoi (2, C, A, B) Hanoi (2, A, B, C) A Vers C B Vers A C Vers B A Vers C A  C, A  B, C  B, A  C, B  A, B  C, A  C


Télécharger ppt "RABAH M ed Ali 2018/2019"

Présentations similaires


Annonces Google