SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
ALGO & PROG                                                            PROF : Mohamed SAYARI


CHAPIITRE 2 ::
CHAP TRE 2

                                    LA RECURSIVITE
    I.      Introduction :
    1. Activité 1 :
1. Soit la définition de la fonction factoriel (module qui permet de calculer le factoriel d’un
nombre n positif)

    Factoriel (5) = 5 * 4 * 3 * 2 * 1  Factoriel (n) = n * n-1 * n-2 * n-3 * …………… * 2 * 1
    Factoriel (4) = 4 * 3 * 2 * 2 * 1  Factoriel (n-1) = n-1 * n-2 * n-3 * …………… * 2 * 1
                                    Factoriel (n) = n * Factoriel (n-1)

2. Et soit la définition de la fonction inverse (module qui permet d’inverser une chaîne de
caractères .
Inverse ("ALGO") = "O" + inverse ("ALG")  Inverse (ch) = denier caractère + Inverse du reste de la chaîne
privé du dernier caractère
Inverse ("ALG") = "G" +inverse ("AL")  Inverse (ch) = denier caractère + Inverse du reste de la chaîne
privé du dernier caractère
                Inverse (ch) =ch[Long(ch)] + inverse (sous-chaîne (ch, 1, Long(ch)-1))
Constatation 1 :
Dans toutes les activités précédentes, nous avons utilisés, pour définir un module, le module lui
même avec différents paramètres :
                                   Factoriel (n) = Factoriel (n-1)
                      Inverse(ch) = ch[ L] + inverse (sous-chaîne (ch, 1, L-1))

Lorsqu’un module (fonction ou procédure) s’appelle lui-même : ce procédé sera appelé récursivité
et le module est dit module récursif.

    II. Définition :
               -    Un programme récursif est un module qui s’appelle lui-même.
               - La récursivité permet de résoudre certains problèmes d'une manière très rapide,
                    alors que si on devrait les résoudre de manière itérative, il nous faudrait
                    beaucoup plus de temps et de structures de données intermédiaires.
    III. Principe et Présentation d’une solution récursive :
1. Activité 2 :
Exécuter manuellement :
La fonction factoriel pour n = 4                        La fonction inverse pour ch = "salut"
F(4) = 4 * f (3)                                        Inverse ("salut") = "t" + Inverse("salu")
     F(3) = 3 * f (2)                                        Inverse("salu") = "u" + Inverse("sal")
            F(2) = 2 * f (1)                                      Inverse("sal") = "l"+ Inverse("sa")
                  F(1) = 1 * f (0)                                   Inverse ("sa") = "a" + Inverse("s")
                          F(0) = 0* f (-1)                              Inverse ("s") = "s" + Inverse("")
                                                                          Inverse ("") = "" + Inverse(?).
Peut-on calculer le factoriel d’un nombre négatif ?     On doit s’arrêter
                                                                                             Page 1 sur 3
ALGO & PROG                                                                   PROF : Mohamed SAYARI
                                             Interprétations :
   Non bien sûr. Donc les appels récursifs doivent Lorsque la chaîne devient vide, on arrête les
   être arrêté lorsque n = 0.                        appels récursifs.
   Lorsque n =0, factoriel(0) = 1                    Lorsque ch =  , inverse ( ) =  
   On appelle n = 0 le point d’arrêt de la fonction On appelle ch =   point d’arrêt de la fonction
   factoriel                                         inverse

   2 . C o n s ta ta tio n 2 :
   Dans une définition récursive, on doit s’arrêter après autant d’appels récursifs.
   Une solution récursive se traduit alors par une structure conditionnelle :
   Si point(s) d’arrêt(s) alors
          Valeur prise par la fonction si atteinte du point d’arrêt
   Sinon
          appel(s) récursif(s)
   Fin si

   Remarque :
   Une solution récursive peut avoir 1 ou plusieurs points d’arrêts et encore 1 ou plusieurs appels récursifs.

                 Fonction factoriel (n : entier) : entier long           function factoriel(n: integer): longint;
                 Résultat =factoriel                                     begin
  Exemple 1 :    Factoriel= [ ] Si n = 0 alors                          if n = 0 then
    Calcul          Point d’arrêt         Factoriel  1                            factoriel := 1
factoriel d’un                   Sinon                                   else
  nombre n                       Factoriel  n * factoriel (n-1)                   factoriel := n * factoriel(n - 1);
                                 Fin si                                  end;
                                              Appel récursif

                 Fonction inverse (ch : chaîne) : chaîne                 function inverse(ch: string): string;
                 Résultat = inverse                                      begin
 Exemple 2 :     Inverse=[ ] si ch = "" alors                           if ch = ‘’ then
 Inversion                                inverse  ""                                inverse := ‘’
d’une chaîne                sinon                                        else
     ch          inverse  ch [long(ch)] + inverse (sous-chaîne (ch,1,             inverse := ch [length(ch)] + inverse
                 long(ch)-1))                                            (copy (ch,1, length(ch)-1))
                             fin si                                      end;



   3. Application:
   Ecrire une analyse, un algorithme d'une fonction permettant de calculer le PGCD (plus grand
   commun diviseur) de deux entiers positifs non nuls a et b, en utilisant la méthode de la différence
   Exemple:
          PGCD (22 , 6 ) = PGCD ( 22-6, 6 ) = PGCD ( 16,6) car 22 > 6
                         = PGCD (16-6 ,6 ) = PGCD (10 , 6) car 16 > 6
                         = PGCD (10-6, 6) = PGCD (4, 6) car 10 > 6
                         = PGCD (4, 6-4) = PGCD (4, 2) car 4 < 6
                         = PGCD (4-2, 2) = PGCD (2, 2) car 4 > 2
                         =2




                                                                                                         Page 2 sur 3
ALGO & PROG                                                           PROF : Mohamed SAYARI

* Interprétation
On remarque que:
-      Si a > b alors PGCD (a, b) = PGCD (a-b, a)
-      Si b>a alors PGCD (a, b) = PGCD (a, b-a)
-      Si a=b alors PGCD (a, b)=a (*** condition d'arrêt ****)
Nous remarquons qu'on a appelé la même fonction PGCD pour calculer le PGCD de a et b.
 Il s'agit d'un traitement récursif

La fonction PGCD devient:
0)    Fonction PGCD (a, b : entier) : entier
1)    Si a=b alors PGCD  a
      Sinon si a>b alors PGCD  PGCD (a-b, b)
      Sinon PGCD  PGCD (a, b-a)
      Finsi
2)    Fin PGCD



   IV. Remarques :
1. Activité 3:
    Ecrire un programme pascal qui permet de chercher et d’afficher l’inverse d’une chaîne
        de caractères. (Utiliser au moins un module défini selon un procédé récursif).
    Testez avec les chaînes suivantes et déterminer les résultats trouvés :
             Chaîne à introduire                      Valeur retournée par le programme
             "Salut"                                  ………………………….
             "Bonjour"                                ………………………….
             "azertyuiopqsdfghjk"                     ………………………….


    Le programme a généré une erreur d’exécution. Rendez-vous au help de pascal, et
        consulter la signification de l’erreur.
                            L’erreur est due à un débordement de mémoire.

2 . C o n s ta ta tio n 3
La récursivité utilise toujours la pile du programme en cours. (La pile est la mémoire stockant
les données intermédiaires de sous-programmes). lorsque le nombre des appels devient
important, la pile déborde. (cas de la chaîne azertyuiopqsdfghjk  )


   V.      Applications :
                                                  Série N°2


                                                                                          Page 3 sur 3

Más contenido relacionado

La actualidad más candente

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitésalah fenni
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaineAfef Ilahi
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombressalah fenni
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)mohamed_SAYARI
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiquesmohamed_SAYARI
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Ines Ouaz
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018salah fenni
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)salah fenni
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 

La actualidad más candente (20)

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
Exercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivitéExercices en turbo pascal sur la récursivité
Exercices en turbo pascal sur la récursivité
 
Serie2
Serie2Serie2
Serie2
 
Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximation
 
Fonctions chaine
Fonctions chaineFonctions chaine
Fonctions chaine
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
Exercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombresExercices en turbo pascal sur les nombres
Exercices en turbo pascal sur les nombres
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiques
 
Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)Travaux dirigés 1: algorithme & structures de données (corrigés)
Travaux dirigés 1: algorithme & structures de données (corrigés)
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Recursiviteeeeeeeeee
RecursiviteeeeeeeeeeRecursiviteeeeeeeeee
Recursiviteeeeeeeeee
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 

Destacado

Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TPmohamed_SAYARI
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitresborhen boukthir
 
Congres ATLAS AFMI 2012
Congres ATLAS AFMI 2012Congres ATLAS AFMI 2012
Congres ATLAS AFMI 2012Andre CIPRIANI
 
Coliback, reverse e-logistique
Coliback, reverse e-logistiqueColiback, reverse e-logistique
Coliback, reverse e-logistiqueE-LOGIK
 
Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)Cdi_LgtBaimbridge
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueRima Lassoued
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheRiadh Harizi
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Hichem Kemali
 

Destacado (16)

Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
bac info : série récursivité
bac info : série récursivitébac info : série récursivité
bac info : série récursivité
 
Correction
CorrectionCorrection
Correction
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TP
 
DCT1 4SI
DCT1  4SIDCT1  4SI
DCT1 4SI
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
Congres ATLAS AFMI 2012
Congres ATLAS AFMI 2012Congres ATLAS AFMI 2012
Congres ATLAS AFMI 2012
 
Coliback, reverse e-logistique
Coliback, reverse e-logistiqueColiback, reverse e-logistique
Coliback, reverse e-logistique
 
Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)Tipe 2017 - Nouvelles directives (15/09/20176)
Tipe 2017 - Nouvelles directives (15/09/20176)
 
Le problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétiqueLe problème de voyageur de commerce: algorithme génétique
Le problème de voyageur de commerce: algorithme génétique
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Chap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-rechercheChap04 les-algorithme-de-tri-et-de-recherche
Chap04 les-algorithme-de-tri-et-de-recherche
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Allen solly
Allen sollyAllen solly
Allen solly
 
Reverse Logistic
Reverse LogisticReverse Logistic
Reverse Logistic
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 

Similar a Récursivité

chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdfdonixwm
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de triYassine Anddam
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerSana Aroussi
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfMbarkiIsraa
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours sarah Benmerzouk
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Frank Nielsen
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R SumAmy Isleb
 
FiltrageNumérique.pptx
FiltrageNumérique.pptxFiltrageNumérique.pptx
FiltrageNumérique.pptxAyoubELJAFRY1
 
LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONborhen boukthir
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéSana REFAI
 
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdfChapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdfHeithem2
 
Cours-maths3-2eme-Annee-ST.pdf
Cours-maths3-2eme-Annee-ST.pdfCours-maths3-2eme-Annee-ST.pdf
Cours-maths3-2eme-Annee-ST.pdfArsalanTlm
 
Cours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous ContraintesCours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous Contraintesanonymousmega02
 
Projet d'Analyse Numérique
Projet d'Analyse NumériqueProjet d'Analyse Numérique
Projet d'Analyse NumériqueYassineElaroui2
 

Similar a Récursivité (20)

chap 3 complexité (3).pdf
chap 3 complexité (3).pdfchap 3 complexité (3).pdf
chap 3 complexité (3).pdf
 
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de trirécursivité algorithmique et complexité algorithmique et Les algorithmes de tri
récursivité algorithmique et complexité algorithmique et Les algorithmes de tri
 
Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Video
VideoVideo
Video
 
Chapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régnerChapitre iii récursivité et paradigme diviser pour régner
Chapitre iii récursivité et paradigme diviser pour régner
 
Chapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdfChapitre 2 -Complexité des problèmes avec correction.pdf
Chapitre 2 -Complexité des problèmes avec correction.pdf
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
transparents-Algo-correction.pdf
transparents-Algo-correction.pdftransparents-Algo-correction.pdf
transparents-Algo-correction.pdf
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours
 
Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)Traitement des données massives (INF442, A4)
Traitement des données massives (INF442, A4)
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R Sum
 
FiltrageNumérique.pptx
FiltrageNumérique.pptxFiltrageNumérique.pptx
FiltrageNumérique.pptx
 
LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATION
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdfChapitre 1 Rappels sur le filtrage numérique 1.pdf
Chapitre 1 Rappels sur le filtrage numérique 1.pdf
 
Cours-maths3-2eme-Annee-ST.pdf
Cours-maths3-2eme-Annee-ST.pdfCours-maths3-2eme-Annee-ST.pdf
Cours-maths3-2eme-Annee-ST.pdf
 
Cours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous ContraintesCours DEA Satisfaction et Optimisation sous Contraintes
Cours DEA Satisfaction et Optimisation sous Contraintes
 
Projet d'Analyse Numérique
Projet d'Analyse NumériqueProjet d'Analyse Numérique
Projet d'Analyse Numérique
 

Último

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdftrendingv83
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 

Último (16)

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 

Récursivité

  • 1. ALGO & PROG PROF : Mohamed SAYARI CHAPIITRE 2 :: CHAP TRE 2 LA RECURSIVITE I. Introduction : 1. Activité 1 : 1. Soit la définition de la fonction factoriel (module qui permet de calculer le factoriel d’un nombre n positif) Factoriel (5) = 5 * 4 * 3 * 2 * 1  Factoriel (n) = n * n-1 * n-2 * n-3 * …………… * 2 * 1 Factoriel (4) = 4 * 3 * 2 * 2 * 1  Factoriel (n-1) = n-1 * n-2 * n-3 * …………… * 2 * 1 Factoriel (n) = n * Factoriel (n-1) 2. Et soit la définition de la fonction inverse (module qui permet d’inverser une chaîne de caractères . Inverse ("ALGO") = "O" + inverse ("ALG")  Inverse (ch) = denier caractère + Inverse du reste de la chaîne privé du dernier caractère Inverse ("ALG") = "G" +inverse ("AL")  Inverse (ch) = denier caractère + Inverse du reste de la chaîne privé du dernier caractère Inverse (ch) =ch[Long(ch)] + inverse (sous-chaîne (ch, 1, Long(ch)-1)) Constatation 1 : Dans toutes les activités précédentes, nous avons utilisés, pour définir un module, le module lui même avec différents paramètres : Factoriel (n) = Factoriel (n-1) Inverse(ch) = ch[ L] + inverse (sous-chaîne (ch, 1, L-1)) Lorsqu’un module (fonction ou procédure) s’appelle lui-même : ce procédé sera appelé récursivité et le module est dit module récursif. II. Définition : - Un programme récursif est un module qui s’appelle lui-même. - La récursivité permet de résoudre certains problèmes d'une manière très rapide, alors que si on devrait les résoudre de manière itérative, il nous faudrait beaucoup plus de temps et de structures de données intermédiaires. III. Principe et Présentation d’une solution récursive : 1. Activité 2 : Exécuter manuellement : La fonction factoriel pour n = 4 La fonction inverse pour ch = "salut" F(4) = 4 * f (3) Inverse ("salut") = "t" + Inverse("salu") F(3) = 3 * f (2) Inverse("salu") = "u" + Inverse("sal") F(2) = 2 * f (1) Inverse("sal") = "l"+ Inverse("sa") F(1) = 1 * f (0) Inverse ("sa") = "a" + Inverse("s") F(0) = 0* f (-1) Inverse ("s") = "s" + Inverse("") Inverse ("") = "" + Inverse(?). Peut-on calculer le factoriel d’un nombre négatif ? On doit s’arrêter Page 1 sur 3
  • 2. ALGO & PROG PROF : Mohamed SAYARI Interprétations : Non bien sûr. Donc les appels récursifs doivent Lorsque la chaîne devient vide, on arrête les être arrêté lorsque n = 0. appels récursifs. Lorsque n =0, factoriel(0) = 1 Lorsque ch =  , inverse ( ) =   On appelle n = 0 le point d’arrêt de la fonction On appelle ch =   point d’arrêt de la fonction factoriel inverse 2 . C o n s ta ta tio n 2 : Dans une définition récursive, on doit s’arrêter après autant d’appels récursifs. Une solution récursive se traduit alors par une structure conditionnelle : Si point(s) d’arrêt(s) alors Valeur prise par la fonction si atteinte du point d’arrêt Sinon appel(s) récursif(s) Fin si Remarque : Une solution récursive peut avoir 1 ou plusieurs points d’arrêts et encore 1 ou plusieurs appels récursifs. Fonction factoriel (n : entier) : entier long function factoriel(n: integer): longint; Résultat =factoriel begin Exemple 1 : Factoriel= [ ] Si n = 0 alors if n = 0 then Calcul Point d’arrêt Factoriel  1 factoriel := 1 factoriel d’un Sinon else nombre n Factoriel  n * factoriel (n-1) factoriel := n * factoriel(n - 1); Fin si end; Appel récursif Fonction inverse (ch : chaîne) : chaîne function inverse(ch: string): string; Résultat = inverse begin Exemple 2 : Inverse=[ ] si ch = "" alors if ch = ‘’ then Inversion inverse  "" inverse := ‘’ d’une chaîne sinon else ch inverse  ch [long(ch)] + inverse (sous-chaîne (ch,1, inverse := ch [length(ch)] + inverse long(ch)-1)) (copy (ch,1, length(ch)-1)) fin si end; 3. Application: Ecrire une analyse, un algorithme d'une fonction permettant de calculer le PGCD (plus grand commun diviseur) de deux entiers positifs non nuls a et b, en utilisant la méthode de la différence Exemple: PGCD (22 , 6 ) = PGCD ( 22-6, 6 ) = PGCD ( 16,6) car 22 > 6 = PGCD (16-6 ,6 ) = PGCD (10 , 6) car 16 > 6 = PGCD (10-6, 6) = PGCD (4, 6) car 10 > 6 = PGCD (4, 6-4) = PGCD (4, 2) car 4 < 6 = PGCD (4-2, 2) = PGCD (2, 2) car 4 > 2 =2 Page 2 sur 3
  • 3. ALGO & PROG PROF : Mohamed SAYARI * Interprétation On remarque que: - Si a > b alors PGCD (a, b) = PGCD (a-b, a) - Si b>a alors PGCD (a, b) = PGCD (a, b-a) - Si a=b alors PGCD (a, b)=a (*** condition d'arrêt ****) Nous remarquons qu'on a appelé la même fonction PGCD pour calculer le PGCD de a et b.  Il s'agit d'un traitement récursif La fonction PGCD devient: 0) Fonction PGCD (a, b : entier) : entier 1) Si a=b alors PGCD  a Sinon si a>b alors PGCD  PGCD (a-b, b) Sinon PGCD  PGCD (a, b-a) Finsi 2) Fin PGCD IV. Remarques : 1. Activité 3:  Ecrire un programme pascal qui permet de chercher et d’afficher l’inverse d’une chaîne de caractères. (Utiliser au moins un module défini selon un procédé récursif).  Testez avec les chaînes suivantes et déterminer les résultats trouvés : Chaîne à introduire Valeur retournée par le programme "Salut" …………………………. "Bonjour" …………………………. "azertyuiopqsdfghjk" ………………………….  Le programme a généré une erreur d’exécution. Rendez-vous au help de pascal, et consulter la signification de l’erreur. L’erreur est due à un débordement de mémoire. 2 . C o n s ta ta tio n 3 La récursivité utilise toujours la pile du programme en cours. (La pile est la mémoire stockant les données intermédiaires de sous-programmes). lorsque le nombre des appels devient important, la pile déborde. (cas de la chaîne azertyuiopqsdfghjk  ) V. Applications : Série N°2 Page 3 sur 3