SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Enseignant : Mohamed SAYARI                                4 SI                             Algorithmique & Programmation


                              LES ALGORITHMES RECURRENTS

 I. Introduction
      Un algorithme ou un traitement est dit récurrent s’il utilise un procédé itératif ou récursif pour
 engendrer un résultat qui peut dépendre de p résultats précédents, nous parlons d’un algorithme ou d’un
 traitement récurrent d’ordre p. (voir livre page 124).


 II. Calcule de somme
 ACTIVITE1 : écrire un programme modulaire en Pascal qui permet de remplir une matrice carré d’ordre
 N (4≤N≤20) par des entiers aléatoires appartenant à l’intervalle [-30,30], calcule puis affiche la somme des
 éléments de M.
      a) Analyse du programme principal
         2) Résultat = Ecrire ("la somme des éléments de la matrice =", FN SOMME (M, N))
         1) (M, N) = Proc remplir (M, N)
                                                                             Algorithme du programme principal
                             TDNT
                                                                   0) Début SOMME_MATRICE
                         TYPE
                                                                   1) Proc remplir (M, N)
        Matrice = Tableau [1..50, 1..50] d’entiers
                        TDOG                                       2) Ecrire ("la somme des éléments de la matrice =",
    Objet    Type/Nature                Rôle                          FN SOMME (M, N))
     M            matrice           Contient des entiers           3) Fin SOMME_MATRICE
     N             Entier             Taille de matrice
   remplir       Procédure           Remplit la matrice
   somme          Fonction           Calcule la somme



       b) Analyse de la procédure remplir
       DEF PROC REMPLIR (var M : matrice ; var N : entier)
             Résultat= M, N
             2) M= [ ] pour i de 1 à n faire
                          Pour j de 1 à n faire
                          M [i,j]  Hasard(30) – Hasard(30)
                          Fin Pour                              Algorithme de la procédure Remplir
                        Fin Pour
             1) N = [ ] Répéter                       0) DEF PROC REMPLIR (var M : matrice ; var n : entier)
                                                      1) Répéter
                            N= Donnée ("N=")
                                                          Ecrire ("N="), lire (N)
                        Jusqu’à (N dans [4..20])
                                                                     Jusqu’à (N dans [4..20])
                                                                  2) pour i de 1 à n faire
                       TDOL                                            Pour j de 1 à n faire
                                                                          M [i,j]  Hasard(30) – Hasard(30)
         objet    Type/Nature         Rôle                              Fin Pour
           I         Entier         Compteur                         Fin Pour
           j         Entier         compteur                      3) Fin Remplir


LES ALGORITHMES RECURRENTS                                                                                            1
Enseignant : Mohamed SAYARI                       4 SI                       Algorithmique & Programmation

      c) Analyse de la fonction somme
     DEF FN SOMME (M : matrice ; N : entier) : entier            Algorithme de la fonction SOMME
    2) Résultat = somme  S
                                                         0) DEF FN SOMME (M : matrice ; N : entier) : entier
     1) S= [S0] pour i de 1 à n faire
                                                         1) S0
                  Pour j de 1 à n faire
                                                            Pour i de 1 à n faire
                    S  S + M [i,j]
                                                              Pour j de 1 à n faire
                  Fin pour
                                                                    S  S + M [i,j]
                  Fin pour
                                                              Fin pour
                             TDOL                           Fin pour
                                                         2) Somme s
             objet   Type/Nature      Rôle
                                                         3) Fin SOMME
               I        Entier      Compteur
               j        Entier      compteur




LES ALGORITHMES RECURRENTS                                                                                2
Enseignant : Mohamed SAYARI                          4 SI                                      Algorithmique & Programmation


 III. Algorithmes récurrents sur les chaînes
 ACTIVITE2 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le N ième terme
 de la suite de Thue-Morse à partir du premier terme U0 ("1" ou "0") avec 2≤N ≤100.
 Exemples :
                       U0= "0"                     U0= "1"
                       U1= "01"                    U1= "10"
                       U2= "0110"                  U2= "1001"
                       U3= "01101001"              U3= "10010110"
                       U4= "0110100110010110" U4= "1001011001101001"

     On remarque que ce traitement est récurrent d’ordre 1.
 a) Analyse du programme principal

 2) Résultat= Ecrire ("la suite Thue Morse à partir de ", U0, "d’ordre ", N "=", FN Thue_Morse (U0, n))
 1) (U0, N)= proc saisir (U0, N)
                                                                    Algorithme du programme principal
                     TDOL                         0) Début suite_thue_Morse
                                                  1) Proc saisir (U0, N)
     objet     Type/Nature         Rôle           2) ("la suite Thue Morse à partir de ", U0, "d’ordre ", N "=", FN
      N            entier     Nombre de terme        Thue_Morse(U0, n))
      U0         caractère     Premier terme      3) Fin suite_thue_Morse
  Thue_Morse     Fonction          suite

                                                                              Algorithme de la procédure saisir
 b) Analyse de la procédure saisir
                                                                0) DEF PROC SAISIR (var U0 : caractère ; var N : entier)
 DEF PROC SAISIR (var U0 : caractère ; var N : entier)
                                                                1) Répéter
    Résultat= U0, N                                                Ecrire ("premier terme= "), lire (U0)
 2) N= [ ] répéter                                                 Jusqu’à (U0 dans ["1", "0"])
            N= Donnée ("N= ")                                   2) Répéter
           Jusqu’à N dans [2..100]                                 Ecrire ("N= "), lire (N)
 1) U0= [ ] Répéter                                                Jusquà N dans [2..100]
                                                                3) Fin SAISIR
               U0= Donnée ("premier terme= ")
            Jusqu’à U0 dans ["1", "0"]
                                                                               Algorithme de la fonction Thue_Morse

 c) Analyse de la fonction thue_morse                                  0) DEF FN Thue_Morse (u0 : caractère ; n : entier) : chaîne
 DEF FN Thue_Morse (U0 : caractère ; n : entier) : chaîne              1) CH  U0
    2) Résultat= Thue_Morse  ch                                          Pour i de 1 à n faire
                                                                            J 1
    1) Ch= [ch  U0] pour i de 1 à n faire                                  Tant que j≤long(ch) faire
                          J 1                                              Si ch[j]="0" alors insère ("1", ch, j+1)
                     Tant que j≤long (ch) faire                             Sinon insère ("0", ch, j+1)
                                                                            J  j+2
                     Si ch[j]="0" alors insère ("1", ch, j+1)               Fin tant que
                       Sinon insère ("0", ch, j+1)                        Fin pour
                       J  j+2                                         2) Thue_Morse  ch
                       Fin tant que                                    3) Fin Thue_Morse

                     Fin pour                        TDOL
                                          Objet   Type/Nature                  Rôle
                                            I        entier                 Compteur
                                            J        Entier                 Compteur
                                           ch        Chaîne         Chaine finale Thue_Morse


LES ALGORITHMES RECURRENTS                                                                                                     3
Enseignant : Mohamed SAYARI                             4 SI             Algorithmique & Programmation




 IV. Triangle de Pascal
 ACTIVITE3 : écrire un programme modulaire en Pascal qui permet d’afficher les n premiers lignes du
 triangle de Pascal (2≤N≤30).
 a) Analyse du programme principal
    2) Résultat= proc affiche (M, N)
      1) (M, N)= proc remplir (M, N)


                                                                Algorithme du programme principal
                                  TDNT
                                                                 0)   Début TRIANGLE_PASCAL
                                TYPE
                                                                 1)   Proc remplir (M, N)
               Matrice = Tableau [1..50, 1..50] d’entiers
                                                                 2)   Proc Affiche (M, N)
                              TDOG                               3)   Fin TRIANGLE_PASCAL
          Objet     Type/Nature                 Rôle
             M         matrice           Contient des entiers
             N          Entier             Taille de matrice
          remplir     Procédure           Remplit la matrice
          affiche     procédure           Affiche la matrice


LES ALGORITHMES RECURRENTS                                                                          4
Enseignant : Mohamed SAYARI                        4 SI                           Algorithmique & Programmation

                                                                    Algorithme de la procédure Remplir
 b) Analyse de la procédure remplir
                                                           0) DEF PROC Remplir (var M : matrice ; var n : entier)
    DEF PROC Remplir (var M : matrice ; var n : entier)
                                                           1) répéter
    Résultat= M, N
                                                                    Ecrire ("N="), lire(N)
      2) M= [M[1,1] 1                                        Jusqu’à N dans [2..50]
            M[2,1] 1                                      2) M[1,1] 1
            M[2,2] 1] pour i de 3 à n faire                  M[2,1] 1
                         M[1,i] 1                            M[2,2] 1
                         M[i, 1] 1                           pour i de 3 à n faire
                         Pour j de 2 à n faire                  M[1,i] 1
                            M[i,j]  M[i-1,j]+M[i-1,j-1]        M[i, 1] 1
                         Fin Pour                               Pour j de 2 à n faire
                         Fin Pour                               M[i,j]  M[i-1,j]+M[i-1,j-1]
                                                                Fin Pour
       1) N= [ ] répéter
                                                               Fin Pour
               N= Donnée ("N=")
                                                           3) Fin Remplir
             Jusqu’à N dans [2..50]


                      TDOL

         objet Type/Nature   Rôle
           I      Entier   Compteur
           j      Entier   compteur



 c) Analyse de la procédure Affiche                                 Algorithme de la procédure Affiche
    DEF PROC Affiche (M : matrice ; n : entier)
                                                                 0) DEF PROC Affiche (M : matrice ; n : entier)
    Résultat= Affichage
                                                                 1) pour i de 1 à n faire
    1) Affichage= [ ] pour i de 1 à n faire
                                                                              Pour j de 1 à i faire
                        Pour j de 1 à i faire
                                                                                   Ecrire (M [i,j])
                             Ecrire (M [i,j])
                                                                              Fin pour
                        Fin pour
                                                                              Fin pour
                        Fin pour                                 2) fin Affiche




                              TDOL

              objet   Type/Nature       Rôle
                I        Entier       Compteur
                j        Entier       compteur




LES ALGORITHMES RECURRENTS                                                                                          5
Enseignant : Mohamed SAYARI                           4 SI                 Algorithmique & Programmation




 V. Suite de Fibonnaci
 ACTIVITE4 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le Nième terme
 de la suite de Fibonnaci définie par :
                            U1 = 1
                            U2=1
                            Un= Un-1+ Un-2

    a) Analyse du programme principal
    2) Résultat = Ecrire ("FIB (", N, ")=", FIB(N))
    1) N= Proc saisir (N)                                           Algorithme du programme principal

                                                                     0) Début SUITE_FIB
                                    TDOG                             1) Proc saisir (N)
                                                                     2) Ecrire ("FIB (", N, ")=", FIB(N))
                objet    Type/Nature             Rôle
                                                                     3) Fin SUITE_FIB
                  N         Entier             Compteur
                 FIB       Fonction         Calculer la suite
                saisir    procédure          Nième Terme


LES ALGORITHMES RECURRENTS                                                                              6
Enseignant : Mohamed SAYARI                            4 SI          Algorithmique & Programmation

    b) Analyse de la procédure saisir                         Algorithme de la procédure saisir
    DEF PROC SAISIR (var N : entier)
    Résultat= N                                               0) DEF PROC SAISIR (var N : entier)
    1) N= [ ] répéter                                         1) répéter
                 N= Donnée ("N=")                                   Ecrire ("N="), lire (N)
            Jusqu’à (N dans [1..100])                           Jusqu’à (N dans [1..100])
                                                              2) fin SAISIR
    c) Analyse de la fonction FIB1 (itérative)
     DEF FN FIB1 (N : entier) : entier                           Algorithme de la fonction FIB1
    2) Résultat = FIB1  F
                                                               0) DEF FN FIB1 (N : entier) : entier
     1) F= [U11, U21] Si N≤2 alors F  1
                                                               1) U11
                            Sinon                                 U21
                         Pour i de 3 à N faire                    Si n≤2 alors F  1
                              F  U1 + U2                         Sinon
                              U2  U1                             Pour i de 3 à N faire
                                                                                      F  U1 + U2
                              U1  F
                                                                                      U2  U1
                          Fin pour                                                    U1  F
                          Fin si                                  Fin pour
                                                                  Fin si
                          TDOL                                 2) FIB1  F
        objet   Type/Nature            Rôle                    3) Fin FIB1
         U1        Entier        Premier terme
         U2        Entier         Second terme
          F        Entier      Valeur final de suite
          i        Entier           compteur




LES ALGORITHMES RECURRENTS                                                                            7
Enseignant : Mohamed SAYARI                            4 SI                  Algorithmique & Programmation

    d) Analyse de la fonction FIB2 (itérative)
        DEF FN FIB2 (N : entier) : entier                             Algorithme de la fonction FIB2
        2) Résultat= FIB2  U[n]                                   0) DEF FN FIB2 (N : entier) : entier
        1) U[n]= [U [1]1                                          1) U [1]1
                 U [2] 1] pour i de 3 à n faire                      U [2] 1
                               U[i]  U [i-1] + U [i-2]               Pour i de 3 à n faire
                             Fin pour                                       U[i]  U [i-1] + U [i-2]
                                                                       Fin pour
                                 TDNT                              1) FIB2 U[n]

                                 TYPE                              2) Fin FIB2
                     TAB= tableau [1..100] d’entiers
                                 TDOL
         objet     Type/Nature                  Rôle
           i           entier                Compteur
           U            TAB         Tableau contenant les termes


    e) Analyse de la fonction FIB3 (récursive)                                Algorithme de la fonction FIB3
        DEF FN FIB2 (N : entier) : entier
                                                                        0) DEF FN FIB2 (N : entier) : entier
        Résultat= FIB3
                                                                        1) si N≤2 alors FIB3  1
        1) FIB3= [ ] si N≤2 alors FIB3  1                                          Sinon FIB3  FIB3 (n-1) +
                      Sinon FIB3  FIB3 (n-1) + FIB3 (n-2)                          FIB3 (n-2)
                      Fin si                                                        Fin si
                                                                        2)    fin FIB3




LES ALGORITHMES RECURRENTS                                                                                     8
Enseignant : Mohamed SAYARI                              4 SI                               Algorithmique & Programmation


 VI. Nombre d’or
 VI.1 Définition
                                                                                                        √
 Le nombre d’or est la solution positive de l’équation x2 – x – 1 = 0. C’est le nombre
 VI.2 Activité1 : compléter le tableau du livre page 139.
                                                                                           √
 La suite Vn définie sur N*par                    semble convergente vers
 VI.3 Activité2 :
 Soient deux suites U et V définies par :
                  U1=1
                  U2=2
                     Un = Un-1 + Un-2 pour n≥3          Vn=       pour n≥2
 On suppose que la suite Vn tend vers nue valeur limite appelé nombre d’or. On suppose que le nième
 terme de la suite V soit V, donc une valeur approchée du nombre d’or avec une précision e dés que
 |Vn – Vn-1|<e.
 Ecrire un programme modulaire en Pascal qui cherche Vn à 10-4 prés et son rang.

 a) Analyse du programme principal
                                                                                    Algorithme du programme principal
    2) Résultat= proc Affiche (v,n)
     1) (V,n,u) = proc remplir (u, v, n)                                              0)   Début Calcul
                                TDNT                                                  1)   proc remplir (u, v, n)
                                                                                      2)   proc Affiche (v,n)
                               TYPE
                                                                                      3)   fin
                   TAB1= tableau [1..100] de réel
                   TAB2= tableau [1..100] d’entier
                                TDOL
      objet      Type/Nature                  Rôle
         n           entier        Taille maximale des vecteurs
         U           TAB2          Tableau contenant les termes
         V           TAB1          Tableau contenant les termes
      affiche      procédure                 affichage
      remplir      procédure               Remplit V et U


                                                                            Algorithme de la procédure REMPLIR
 b) Analyse de la procédure REMPLIR
                                                                  0) DEF PROC REMPLIR (var u : tab2 ; var v : tab1 ; var n : entier)
DEF PROC REMPLIR (var u : tab2 ; var v : tab1 ; var n : entier)
                                                                  1) U [1]1
     Résultat= u, v, n                                              U [2] 2
     1) (u, v, n)= [U [1]1                                         Répéter
                                                                       n n+1
                    U [2] 2] répéter
                                                                       U[n]  u [n-1] + u [n-2]
                                N  n+1                                V[n]  u[n]/u [n-1]
                                U[n]  u [n-1] + u [n-2]             Jusqu’à (abs (v[n]-v [n-1] <0.0001)
                                                                  2) Fin REMPLIR
                                V[n]  u[n]/u [n-1]
                              Jusqu’à (abs (v[n]-v [n-1] <0.0001)




LES ALGORITHMES RECURRENTS                                                                                                      9
Enseignant : Mohamed SAYARI                         4 SI                         Algorithmique & Programmation


 c) Analyse de la fonction Affiche
     DEF PROC AFFICHE (v : tab1 ; n : entier)
     0) Résultat= Ecrire ("le nombre d'or= ", v[n], " obtenu après ", n, " itérations")


                                           Algorithme de la procédure Affiche

                         0) DEF PROC AFFICHE (v : tab1 ; n : entier)
                         1) Ecrire ("le nombre d'or= ", v[n], " obtenu après ", n, " itérations")
                         2) Fin AFFICHE




 VII. Applications (livre 144-147)




LES ALGORITHMES RECURRENTS                                                                                10

Mais conteúdo relacionado

Mais procurados

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
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)salah fenni
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfsalah fenni
 
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
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivitéSana Aroussi
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008Morom Bil Morom
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah fenni
 
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
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitresborhen boukthir
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximationWael Ismail
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesInes Ouaz
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siNarûtö Bàl'Sèm
 
Projet de programmation la conversion entre les bases
Projet de programmation   la conversion entre les bases Projet de programmation   la conversion entre les bases
Projet de programmation la conversion entre les bases Tunisie collège
 

Mais procurados (20)

Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
 
Exercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdfExercices_Python_Fenni_2023 -corrigé.pdf
Exercices_Python_Fenni_2023 -corrigé.pdf
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
Chapitre 4 récursivité
Chapitre 4 récursivitéChapitre 4 récursivité
Chapitre 4 récursivité
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008
 
Correction
CorrectionCorrection
Correction
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
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é
 
Recursiviteeeeeeeeee
RecursiviteeeeeeeeeeRecursiviteeeeeeeeee
Recursiviteeeeeeeeee
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximation
 
Travaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de donnéesTravaux dirigés 1: algorithme & structures de données
Travaux dirigés 1: algorithme & structures de données
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Projet de programmation la conversion entre les bases
Projet de programmation   la conversion entre les bases Projet de programmation   la conversion entre les bases
Projet de programmation la conversion entre les bases
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Serie
SerieSerie
Serie
 

Destaque

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
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiquefast xp
 
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
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycéeKayl Mido
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TPmohamed_SAYARI
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Oscillations forcées en régime sinusoidal 2015
Oscillations forcées en régime sinusoidal 2015Oscillations forcées en régime sinusoidal 2015
Oscillations forcées en régime sinusoidal 2015Daghsni Said
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmationborhen boukthir
 
Cedric Ringenbach Ignite5 Exponetielle
Cedric Ringenbach Ignite5 ExponetielleCedric Ringenbach Ignite5 Exponetielle
Cedric Ringenbach Ignite5 ExponetielleCedric Ringenbach
 

Destaque (12)

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)
 
exercices-corriges-dalgorithmique
exercices-corriges-dalgorithmiqueexercices-corriges-dalgorithmique
exercices-corriges-dalgorithmique
 
4e ds2-2012-2013
4e ds2-2012-20134e ds2-2012-2013
4e ds2-2012-2013
 
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
 
Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
algorithme tronc commun lycée
algorithme tronc commun lycéealgorithme tronc commun lycée
algorithme tronc commun lycée
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TP
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Oscillations forcées en régime sinusoidal 2015
Oscillations forcées en régime sinusoidal 2015Oscillations forcées en régime sinusoidal 2015
Oscillations forcées en régime sinusoidal 2015
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Exo algo
Exo algoExo algo
Exo algo
 
Cedric Ringenbach Ignite5 Exponetielle
Cedric Ringenbach Ignite5 ExponetielleCedric Ringenbach Ignite5 Exponetielle
Cedric Ringenbach Ignite5 Exponetielle
 

Semelhante a Les algorithmes recurrents

Resumer algorithme recurent
Resumer algorithme recurentResumer algorithme recurent
Resumer algorithme recurentborhen boukthir
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programmeBaghdadi Wajih
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite Saddem Chikh
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
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
 
Corrigé iscae informatique 2013
Corrigé iscae informatique 2013Corrigé iscae informatique 2013
Corrigé iscae informatique 2013Yassine Anddam
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfMbarkiIsraa
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP Mohammed TAMALI
 

Semelhante a Les algorithmes recurrents (20)

Resumer algorithme recurent
Resumer algorithme recurentResumer algorithme recurent
Resumer algorithme recurent
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programme
 
02 correction-td smi-s3-algo2
02 correction-td smi-s3-algo202 correction-td smi-s3-algo2
02 correction-td smi-s3-algo2
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Cours algorithmique et complexite
Cours algorithmique et complexite Cours algorithmique et complexite
Cours algorithmique et complexite
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Slide-Complexite by loic.pdf
Slide-Complexite by loic.pdfSlide-Complexite by loic.pdf
Slide-Complexite by loic.pdf
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
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
 
Corrigé iscae informatique 2013
Corrigé iscae informatique 2013Corrigé iscae informatique 2013
Corrigé iscae informatique 2013
 
Correction td2
Correction td2Correction td2
Correction td2
 
Video
VideoVideo
Video
 
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdfChapitre 3 _Conception et analyse d’algorithme-DPR.pdf
Chapitre 3 _Conception et analyse d’algorithme-DPR.pdf
 
Courbes
CourbesCourbes
Courbes
 
Analyse Numérique – TP
Analyse Numérique – TP Analyse Numérique – TP
Analyse Numérique – TP
 

Les algorithmes recurrents

  • 1. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation LES ALGORITHMES RECURRENTS I. Introduction Un algorithme ou un traitement est dit récurrent s’il utilise un procédé itératif ou récursif pour engendrer un résultat qui peut dépendre de p résultats précédents, nous parlons d’un algorithme ou d’un traitement récurrent d’ordre p. (voir livre page 124). II. Calcule de somme ACTIVITE1 : écrire un programme modulaire en Pascal qui permet de remplir une matrice carré d’ordre N (4≤N≤20) par des entiers aléatoires appartenant à l’intervalle [-30,30], calcule puis affiche la somme des éléments de M. a) Analyse du programme principal 2) Résultat = Ecrire ("la somme des éléments de la matrice =", FN SOMME (M, N)) 1) (M, N) = Proc remplir (M, N) Algorithme du programme principal TDNT 0) Début SOMME_MATRICE TYPE 1) Proc remplir (M, N) Matrice = Tableau [1..50, 1..50] d’entiers TDOG 2) Ecrire ("la somme des éléments de la matrice =", Objet Type/Nature Rôle FN SOMME (M, N)) M matrice Contient des entiers 3) Fin SOMME_MATRICE N Entier Taille de matrice remplir Procédure Remplit la matrice somme Fonction Calcule la somme b) Analyse de la procédure remplir DEF PROC REMPLIR (var M : matrice ; var N : entier) Résultat= M, N 2) M= [ ] pour i de 1 à n faire Pour j de 1 à n faire M [i,j]  Hasard(30) – Hasard(30) Fin Pour Algorithme de la procédure Remplir Fin Pour 1) N = [ ] Répéter 0) DEF PROC REMPLIR (var M : matrice ; var n : entier) 1) Répéter N= Donnée ("N=") Ecrire ("N="), lire (N) Jusqu’à (N dans [4..20]) Jusqu’à (N dans [4..20]) 2) pour i de 1 à n faire TDOL Pour j de 1 à n faire M [i,j]  Hasard(30) – Hasard(30) objet Type/Nature Rôle Fin Pour I Entier Compteur Fin Pour j Entier compteur 3) Fin Remplir LES ALGORITHMES RECURRENTS 1
  • 2. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation c) Analyse de la fonction somme DEF FN SOMME (M : matrice ; N : entier) : entier Algorithme de la fonction SOMME 2) Résultat = somme  S 0) DEF FN SOMME (M : matrice ; N : entier) : entier 1) S= [S0] pour i de 1 à n faire 1) S0 Pour j de 1 à n faire Pour i de 1 à n faire S  S + M [i,j] Pour j de 1 à n faire Fin pour S  S + M [i,j] Fin pour Fin pour TDOL Fin pour 2) Somme s objet Type/Nature Rôle 3) Fin SOMME I Entier Compteur j Entier compteur LES ALGORITHMES RECURRENTS 2
  • 3. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation III. Algorithmes récurrents sur les chaînes ACTIVITE2 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le N ième terme de la suite de Thue-Morse à partir du premier terme U0 ("1" ou "0") avec 2≤N ≤100. Exemples : U0= "0" U0= "1" U1= "01" U1= "10" U2= "0110" U2= "1001" U3= "01101001" U3= "10010110" U4= "0110100110010110" U4= "1001011001101001"  On remarque que ce traitement est récurrent d’ordre 1. a) Analyse du programme principal 2) Résultat= Ecrire ("la suite Thue Morse à partir de ", U0, "d’ordre ", N "=", FN Thue_Morse (U0, n)) 1) (U0, N)= proc saisir (U0, N) Algorithme du programme principal TDOL 0) Début suite_thue_Morse 1) Proc saisir (U0, N) objet Type/Nature Rôle 2) ("la suite Thue Morse à partir de ", U0, "d’ordre ", N "=", FN N entier Nombre de terme Thue_Morse(U0, n)) U0 caractère Premier terme 3) Fin suite_thue_Morse Thue_Morse Fonction suite Algorithme de la procédure saisir b) Analyse de la procédure saisir 0) DEF PROC SAISIR (var U0 : caractère ; var N : entier) DEF PROC SAISIR (var U0 : caractère ; var N : entier) 1) Répéter Résultat= U0, N Ecrire ("premier terme= "), lire (U0) 2) N= [ ] répéter Jusqu’à (U0 dans ["1", "0"]) N= Donnée ("N= ") 2) Répéter Jusqu’à N dans [2..100] Ecrire ("N= "), lire (N) 1) U0= [ ] Répéter Jusquà N dans [2..100] 3) Fin SAISIR U0= Donnée ("premier terme= ") Jusqu’à U0 dans ["1", "0"] Algorithme de la fonction Thue_Morse c) Analyse de la fonction thue_morse 0) DEF FN Thue_Morse (u0 : caractère ; n : entier) : chaîne DEF FN Thue_Morse (U0 : caractère ; n : entier) : chaîne 1) CH  U0 2) Résultat= Thue_Morse  ch Pour i de 1 à n faire J 1 1) Ch= [ch  U0] pour i de 1 à n faire Tant que j≤long(ch) faire J 1 Si ch[j]="0" alors insère ("1", ch, j+1) Tant que j≤long (ch) faire Sinon insère ("0", ch, j+1) J  j+2 Si ch[j]="0" alors insère ("1", ch, j+1) Fin tant que Sinon insère ("0", ch, j+1) Fin pour J  j+2 2) Thue_Morse  ch Fin tant que 3) Fin Thue_Morse Fin pour TDOL Objet Type/Nature Rôle I entier Compteur J Entier Compteur ch Chaîne Chaine finale Thue_Morse LES ALGORITHMES RECURRENTS 3
  • 4. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation IV. Triangle de Pascal ACTIVITE3 : écrire un programme modulaire en Pascal qui permet d’afficher les n premiers lignes du triangle de Pascal (2≤N≤30). a) Analyse du programme principal 2) Résultat= proc affiche (M, N) 1) (M, N)= proc remplir (M, N) Algorithme du programme principal TDNT 0) Début TRIANGLE_PASCAL TYPE 1) Proc remplir (M, N) Matrice = Tableau [1..50, 1..50] d’entiers 2) Proc Affiche (M, N) TDOG 3) Fin TRIANGLE_PASCAL Objet Type/Nature Rôle M matrice Contient des entiers N Entier Taille de matrice remplir Procédure Remplit la matrice affiche procédure Affiche la matrice LES ALGORITHMES RECURRENTS 4
  • 5. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation Algorithme de la procédure Remplir b) Analyse de la procédure remplir 0) DEF PROC Remplir (var M : matrice ; var n : entier) DEF PROC Remplir (var M : matrice ; var n : entier) 1) répéter Résultat= M, N Ecrire ("N="), lire(N) 2) M= [M[1,1] 1 Jusqu’à N dans [2..50] M[2,1] 1 2) M[1,1] 1 M[2,2] 1] pour i de 3 à n faire M[2,1] 1 M[1,i] 1 M[2,2] 1 M[i, 1] 1 pour i de 3 à n faire Pour j de 2 à n faire M[1,i] 1 M[i,j]  M[i-1,j]+M[i-1,j-1] M[i, 1] 1 Fin Pour Pour j de 2 à n faire Fin Pour M[i,j]  M[i-1,j]+M[i-1,j-1] Fin Pour 1) N= [ ] répéter Fin Pour N= Donnée ("N=") 3) Fin Remplir Jusqu’à N dans [2..50] TDOL objet Type/Nature Rôle I Entier Compteur j Entier compteur c) Analyse de la procédure Affiche Algorithme de la procédure Affiche DEF PROC Affiche (M : matrice ; n : entier) 0) DEF PROC Affiche (M : matrice ; n : entier) Résultat= Affichage 1) pour i de 1 à n faire 1) Affichage= [ ] pour i de 1 à n faire Pour j de 1 à i faire Pour j de 1 à i faire Ecrire (M [i,j]) Ecrire (M [i,j]) Fin pour Fin pour Fin pour Fin pour 2) fin Affiche TDOL objet Type/Nature Rôle I Entier Compteur j Entier compteur LES ALGORITHMES RECURRENTS 5
  • 6. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation V. Suite de Fibonnaci ACTIVITE4 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le Nième terme de la suite de Fibonnaci définie par : U1 = 1 U2=1 Un= Un-1+ Un-2 a) Analyse du programme principal 2) Résultat = Ecrire ("FIB (", N, ")=", FIB(N)) 1) N= Proc saisir (N) Algorithme du programme principal 0) Début SUITE_FIB TDOG 1) Proc saisir (N) 2) Ecrire ("FIB (", N, ")=", FIB(N)) objet Type/Nature Rôle 3) Fin SUITE_FIB N Entier Compteur FIB Fonction Calculer la suite saisir procédure Nième Terme LES ALGORITHMES RECURRENTS 6
  • 7. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation b) Analyse de la procédure saisir Algorithme de la procédure saisir DEF PROC SAISIR (var N : entier) Résultat= N 0) DEF PROC SAISIR (var N : entier) 1) N= [ ] répéter 1) répéter N= Donnée ("N=") Ecrire ("N="), lire (N) Jusqu’à (N dans [1..100]) Jusqu’à (N dans [1..100]) 2) fin SAISIR c) Analyse de la fonction FIB1 (itérative) DEF FN FIB1 (N : entier) : entier Algorithme de la fonction FIB1 2) Résultat = FIB1  F 0) DEF FN FIB1 (N : entier) : entier 1) F= [U11, U21] Si N≤2 alors F  1 1) U11 Sinon U21 Pour i de 3 à N faire Si n≤2 alors F  1 F  U1 + U2 Sinon U2  U1 Pour i de 3 à N faire F  U1 + U2 U1  F U2  U1 Fin pour U1  F Fin si Fin pour Fin si TDOL 2) FIB1  F objet Type/Nature Rôle 3) Fin FIB1 U1 Entier Premier terme U2 Entier Second terme F Entier Valeur final de suite i Entier compteur LES ALGORITHMES RECURRENTS 7
  • 8. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation d) Analyse de la fonction FIB2 (itérative) DEF FN FIB2 (N : entier) : entier Algorithme de la fonction FIB2 2) Résultat= FIB2  U[n] 0) DEF FN FIB2 (N : entier) : entier 1) U[n]= [U [1]1 1) U [1]1 U [2] 1] pour i de 3 à n faire U [2] 1 U[i]  U [i-1] + U [i-2] Pour i de 3 à n faire Fin pour U[i]  U [i-1] + U [i-2] Fin pour TDNT 1) FIB2 U[n] TYPE 2) Fin FIB2 TAB= tableau [1..100] d’entiers TDOL objet Type/Nature Rôle i entier Compteur U TAB Tableau contenant les termes e) Analyse de la fonction FIB3 (récursive) Algorithme de la fonction FIB3 DEF FN FIB2 (N : entier) : entier 0) DEF FN FIB2 (N : entier) : entier Résultat= FIB3 1) si N≤2 alors FIB3  1 1) FIB3= [ ] si N≤2 alors FIB3  1 Sinon FIB3  FIB3 (n-1) + Sinon FIB3  FIB3 (n-1) + FIB3 (n-2) FIB3 (n-2) Fin si Fin si 2) fin FIB3 LES ALGORITHMES RECURRENTS 8
  • 9. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation VI. Nombre d’or VI.1 Définition √ Le nombre d’or est la solution positive de l’équation x2 – x – 1 = 0. C’est le nombre VI.2 Activité1 : compléter le tableau du livre page 139. √ La suite Vn définie sur N*par semble convergente vers VI.3 Activité2 : Soient deux suites U et V définies par : U1=1 U2=2 Un = Un-1 + Un-2 pour n≥3 Vn= pour n≥2 On suppose que la suite Vn tend vers nue valeur limite appelé nombre d’or. On suppose que le nième terme de la suite V soit V, donc une valeur approchée du nombre d’or avec une précision e dés que |Vn – Vn-1|<e. Ecrire un programme modulaire en Pascal qui cherche Vn à 10-4 prés et son rang. a) Analyse du programme principal Algorithme du programme principal 2) Résultat= proc Affiche (v,n) 1) (V,n,u) = proc remplir (u, v, n) 0) Début Calcul TDNT 1) proc remplir (u, v, n) 2) proc Affiche (v,n) TYPE 3) fin TAB1= tableau [1..100] de réel TAB2= tableau [1..100] d’entier TDOL objet Type/Nature Rôle n entier Taille maximale des vecteurs U TAB2 Tableau contenant les termes V TAB1 Tableau contenant les termes affiche procédure affichage remplir procédure Remplit V et U Algorithme de la procédure REMPLIR b) Analyse de la procédure REMPLIR 0) DEF PROC REMPLIR (var u : tab2 ; var v : tab1 ; var n : entier) DEF PROC REMPLIR (var u : tab2 ; var v : tab1 ; var n : entier) 1) U [1]1 Résultat= u, v, n U [2] 2 1) (u, v, n)= [U [1]1 Répéter n n+1 U [2] 2] répéter U[n]  u [n-1] + u [n-2] N  n+1 V[n]  u[n]/u [n-1] U[n]  u [n-1] + u [n-2] Jusqu’à (abs (v[n]-v [n-1] <0.0001) 2) Fin REMPLIR V[n]  u[n]/u [n-1] Jusqu’à (abs (v[n]-v [n-1] <0.0001) LES ALGORITHMES RECURRENTS 9
  • 10. Enseignant : Mohamed SAYARI 4 SI Algorithmique & Programmation c) Analyse de la fonction Affiche DEF PROC AFFICHE (v : tab1 ; n : entier) 0) Résultat= Ecrire ("le nombre d'or= ", v[n], " obtenu après ", n, " itérations") Algorithme de la procédure Affiche 0) DEF PROC AFFICHE (v : tab1 ; n : entier) 1) Ecrire ("le nombre d'or= ", v[n], " obtenu après ", n, " itérations") 2) Fin AFFICHE VII. Applications (livre 144-147) LES ALGORITHMES RECURRENTS 10