SlideShare une entreprise Scribd logo

Les algorithmes d'arithmetique

1  sur  16
Télécharger pour lire hors ligne
PROF : Mohamed SAYARI                              4 SI                      LES ALGORITHMES D’ARITHMETIQUES




I. Introduction
     L’arithmétique est une branche de mathématiques qui étudie les relations entre les nombres. C’est aussi
l’étude des nombres et des opérations élémentaires entre eux.

II. Calcul de PGCD (voir chapitre récursivité)

III. Calcul de        et
III.1 présentation
- Le nombre de permutations ordonnés possibles de p éléments parmi n appelé Arrangement :
    Exemple1 : quels sont les nombres de 2 chiffres à former à partir de la liste {5, 3,1}
    Réponse : 53, 35, 51, 15, 31, 13       =6
    Exemple2 : tirage sans remise

   Définition 1: E étant un ensemble à n éléments, on appelle arrangement de p éléments de E toute p-liste
    d'éléments distincts de E.

-   Le nombre de permutations sans ordre possibles de p éléments parmi n appelé Combinaison :
    Exemple1 : quels sont les listes de 2 éléments à former à partir de la liste {5, 3,1}
    Réponse : {5, 1}, {5, 3}, {3, 1}       =3
    Exemple2 : tirage avec remise

   Définition 2: E étant un ensemble à n éléments, on appelle combinaison de p éléments de E toute
    collection non ordonnée de p éléments distincts de E

III.2 Calcul de
Activité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher l           e avec n et p
deux entiers tel que 1≤p≤ n
                              Sachant que     = n (n-1) (n-2) ….. (n-p+1)
                                            Ou encore          (     )

a) Analyse du programme principal
   2) Résultat = Ecrire ("A (", p, ",", n, ")=", FN calcul (n, p))
   1) (N,p)= proc saisir (n, p)
                                                           Algorithme du programme principal
                      TDOG
                                                     0)   DEBUT arrangement
         Objet             Type/Nature
                                                     1)   Proc saisir (n, p)
         N                 Entier
                                                     2)   Ecrire ("A (", p, ",", n, ")=", FN calcul (n, p))
         p                 entier
         saisir            procédure                 3)   Fin arrangement
         calcul            fonction


                                                                                                              1
PROF : Mohamed SAYARI                         4 SI       LES ALGORITHMES D’ARITHMETIQUES


b) Analyse de la procédure saisir                      Algorithme de la procédure saisir
   DEF PROC saisir var (n, p : entier)
                                                     0) DEF PROC saisir (var n, p : entier)
   Résultat = n, p
                                                     1) Répéter
   2) N= [ ] répéter
                                                        Ecrire ("P= "), lire (P)
           N= donnée ("N=")
                                                        Jusqu’à (p≥1)
           Jusqu’à (n≥p)
                                                     2) Répéter
   1) P= [ ] répéter                                    Ecrire ("N= "), lire (N)
           P= donnée ("P= ")                            Jusqu’à (N≥p)
           Jusqu’à (p ≥1)                            3) Fin saisir


c) Analyse de la fonction calcul                       Algorithme de la fonction calcul
DEF FN calcul (n, p : entier) : entier
                                                     0) DEF FN CALCUL (n, p : entier) : entier
2) Résultat = calcul  a
                                                     1) A 1
1) A= [a1] pour i de n à (n-p+1) (pas=-1) Faire        Pour i de n à n-p+1 (pas=-1) Faire
                   Aa*i                                  Aa*i
               Fin pour                                 Fin pour
                                                     2) Calcul a
            TDOL                                     3) Fin calcul
        objet  Tupe/nature
          I      Entier
          a       entier




                                                                                           2
PROF : Mohamed SAYARI                              4 SI                       LES ALGORITHMES D’ARITHMETIQUES


III.3 Calcul de
Activité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le              avec n et p
deux entiers tel que 0≤p≤ n



    a) Analyse du programme principal
    2) Résultat = Ecrire ("C (", p, ",", n, ")=", FN calcul (n, p))
    3) (N,p)= proc saisir (n, p)
                                                                Algorithme du programme principal
                       TDOG
                                                          0)   DEBUT arrangement
         Objet             Type/Nature                    1)   Proc saisir (n, p)
         N                 Entier                         2)   Ecrire ("C (", p, ",", n, ")=", FN calcul (n, p))
         p                 entier                         3)   Fin arrangement
         saisir            procédure
         calcul            fonction



    b) Analyse de la procédure saisir
    DEF PROC saisir var (n, p : entier)
    Résultat = n, p
       2) N= [ ] répéter
                                                                            Algorithme de la procédure saisir
            N= donnée ("N=")
            Jusqu’à (n≥p)                                                     0) DEF PROC saisir (var n, p : entier)
       1) P= [ ] répéter                                                      1) Répéter
            P= donnée ("P= ")                                                 Ecrire ("P= "), lire (P)
            Jusqu’à (p ≥0)                                                    Jusqu’à (p≥0)
                                                                              2) Répéter
                                                                              Ecrire ("N= "), lire (N)
                                                                              Jusqu’à (N≥p)
                                                                              3) Fin saisir


    c) Analyse de la fonction calcul
     DEF FN calcul (n, p : entier) : real                                   Algorithme de la fonction calcul
       2) Résultat = calcul  c
                                                                            0)   DEF FN CALCUL (n, p : entier) : réel
       1) C  FACT (n) / (FACT (p) * FACT (n-p))
                                                                            1)   C  FACT (n) / (FAT(p)*FACT (n-p))
                                                                            2)   CALCUL  c
                                                                            3)   Fin calcul




                                                                                                                3
PROF : Mohamed SAYARI                             4 SI          LES ALGORITHMES D’ARITHMETIQUES




III.4 Application
    =9    =8      =1

   =1           =1

Activité : écrire la fonction combinaison récursive

Analyse de la fonction COMB récursive
DEF FN Combo (n, p : entier) : entier
Résultat= combo
1) combo= [ ] si (p=0) ou (p=n) alors combo 1
        Sinon combo  FN combo (n-1, p-1) + FN combo (n-1, p)
        Fin si




                                                                                         4
PROF : Mohamed SAYARI                        4 SI                  LES ALGORITHMES D’ARITHMETIQUES


IV. Quelques règles de divisibilité (livre page 166)

V. Conversion entre les bases de numération
    V.1 Définition
Un système de numération est une méthode de comptage fondée sur une base de numération qui est
un entier supérieur ou égal à 2. Soit N une base de numération, le système sera doté de N chiffres de
0 à N-1

    V.2 Exemples de bases de numération (voir livre page 166)

    V.3 Conversion d’un nombre décimal en binaire
Ecrire un programme modulaire en pascal qui permet de saisir un entier positif, le convertit en
binaire.

a) Analyse du programme principal
    2) Résultat = Ecrire (Fn conv_DEC_BIN(n))
   1) N = proc saisir (n)

b) Analyse de la procédure CONV_DEC_BIN
   DEF FN CONV_DEC_BIN (n : entier) : chaîne                      Algorithme du programme principal
   2) Résultat = CONV_DEC_BIN  ch
   1)Ch=[ch  ""] répéter                                          0) Début conversion
                    R  n mod 2                                    1) Proc saisir (n)
                    N  n div 2                                    2) Ecrire (Fn conv_DEC_BIN(n))
                    Ch  chr(48+R)+ch                              3) Fin conversion
                   Jusqu’à (n=0)


                                                           Algorithme de la fonction CONV_DEC_BIN

                                                         0) DEF FN CONV_DEC_BIN (n : entier) : chaîne
                                                         1) Ch  ""
                                                             répéter
                                                              R  n mod 2
                                                              N  n div 2
                                                              Ch  chr(48+R)+ch
                                                             Jusqu’à (n=0)
                                                         2) CONV_DEC_Bin  ch
                                                         3) Fin CONV_DEC_BIN




                                                                                                 5
PROF : Mohamed SAYARI                              4 SI                      LES ALGORITHMES D’ARITHMETIQUES


    V. 4 Conversion d’un nombre binaire en décimal
Ecrire un programme modulaire en pascal qui permet de saisir un nombre binaire (sous forme d’une
chaîne de caractères), le convertit en décimal.
                                                              Algorithme du programme principal
  a) Analyse du programme principal
      2) Résultat = Ecrire (FN conv_bin_dec(ch))               0) Début conversion
      1)Ch= proc saisir (ch)                                   1) Proc saisir (ch)
                                                               2) Ecrire (FN conv_bin_dec(ch))
                                                               3) Fin conversion
  b) Analyse de la procédure saisir
DEF PROC SAISIR (var ch : chaîne)                                         Algorithme de la procédure saisir
Résultat = ch                                                       0) DEF PROC SAISIR (var ch : chaîne)
1)Ch=[ ] répéter                                                        1) répéter
          Ch= donnée ("CH= ")                                            Ecrire ("CH= "), lire (ch)
          i0                                                            i0
          répéter                                                        répéter
           ii+1                                                          ii+1
           test  ch[i] dans ["0","1"]                                    test  ch[i] dans ["0","1"]
          jusqu’à (non test) ou (i=long(ch))                             jusqu’à (non test) ou (i=long(ch))
          jusqu’à test                                                 Jusqu’à test
                                                                    2) Fin saisir




  c) Analyse de la fonction conv_bin_dec                             Algorithme de la fonction conv_bin_dec
DEF FN conv_bin_dec (ch :chaîne) : entier long
                                                              0)DEF FN conv_bin_dec (ch :chaîne): entire long
2)Résultat = conv_bin_dec  n
                                                              1)N <- 0
1)N= [n0] pour i de 1 à long (ch) faire
                                                               pour i de 1 à long (ch) faire
              N  n +(ord(ch[i])-48)*puissance(long(ch)-i)
                                                                    N  n +(ord(ch[i])-48)*puissance(long(ch)-i)
            Fin pour
                                                                  Fin pour
                                                              2) conv_bin_dec  N
                                                              3) Fin conv_bin_dec




  d) Analyse de la fonction puissance                               Algorithme de la fonction puissance
DEF FN puissance (x :entier) :entier                   0)DEF FN puissane (x :entier) : entier
2)Résultat = puissance p                              1)p 1
                                                         Pour i de 1 à x faire
1)P=[ p 1] pour i de 1 à x Faire
                                                               Pp*2
              P  2*p                                   Fin pour
            Fin pour                                    2)puissance p
                                                        3) Fin puissance



                                                                                                              6

Recommandé

Algorithmes d'approximation
Algorithmes d'approximationAlgorithmes d'approximation
Algorithmes d'approximationmohamed_SAYARI
 
Les algorithmes recurrents
Les algorithmes recurrentsLes algorithmes recurrents
Les algorithmes recurrentsmohamed_SAYARI
 
Serie recurrents & arithmetiques
Serie recurrents & arithmetiquesSerie recurrents & arithmetiques
Serie recurrents & arithmetiquesmohamed_SAYARI
 
Les algorithmes d’approximation
Les algorithmes d’approximationLes algorithmes d’approximation
Les algorithmes d’approximationWael Ismail
 

Contenu connexe

Tendances

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
 
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
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationxmohamed_SAYARI
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009Morom Bil Morom
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3siRiadh Harizi
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018salah 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
 
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
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018salah fenni
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)salah fenni
 
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
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdfsalah 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
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: MatriceInforMatica34
 

Tendances (20)

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
 
Devoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 siDevoirs Algorithme + correction pour 4 si
Devoirs Algorithme + correction pour 4 si
 
Serie algos approximationx
Serie algos approximationxSerie algos approximationx
Serie algos approximationx
 
éNoncés+corrections bac2009
éNoncés+corrections bac2009éNoncés+corrections bac2009
éNoncés+corrections bac2009
 
Serie tri revision_3si
Serie tri revision_3siSerie tri revision_3si
Serie tri revision_3si
 
Algorithmes de tri
Algorithmes de triAlgorithmes de tri
Algorithmes de tri
 
Serie
SerieSerie
Serie
 
Algorithmique programmation2018
Algorithmique programmation2018Algorithmique programmation2018
Algorithmique programmation2018
 
Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)Série sous programmes (bac scientifique)
Série sous programmes (bac scientifique)
 
Mes devoirs 4 si
Mes devoirs 4 siMes devoirs 4 si
Mes devoirs 4 si
 
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é
 
Exercices pascal tous les chapitres
Exercices pascal tous les chapitresExercices pascal tous les chapitres
Exercices pascal tous les chapitres
 
Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018Corrige exercices pascal_fenni_2018
Corrige exercices pascal_fenni_2018
 
Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)Bac info 2000-2015 (Tunisie)
Bac info 2000-2015 (Tunisie)
 
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
 
resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 
Exo algo
Exo algoExo algo
Exo algo
 
Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)Sujets de preparation bac tp (sayari)
Sujets de preparation bac tp (sayari)
 
Cours Algorithme: Matrice
Cours Algorithme: MatriceCours Algorithme: Matrice
Cours Algorithme: Matrice
 

En vedette

Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmationborhen boukthir
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancésmohamed_SAYARI
 
Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)salah fenni
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TPmohamed_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
 
éNoncés+corrections bac2010
éNoncés+corrections bac2010éNoncés+corrections bac2010
éNoncés+corrections bac2010Morom Bil Morom
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008Morom Bil Morom
 

En vedette (13)

Correction
CorrectionCorrection
Correction
 
Résumé Algorithme et Programmation
Résumé Algorithme et ProgrammationRésumé Algorithme et Programmation
Résumé Algorithme et Programmation
 
Les algorithmes avancés
Les algorithmes avancésLes algorithmes avancés
Les algorithmes avancés
 
Les enregistrements
Les enregistrements Les enregistrements
Les enregistrements
 
Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)Algorithmique et programmation en Pascal (résumé)
Algorithmique et programmation en Pascal (résumé)
 
Se préparer au BAC TP
Se préparer au BAC TPSe préparer au BAC TP
Se préparer au BAC TP
 
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)
 
Résumer arithmétique
Résumer arithmétiqueRésumer arithmétique
Résumer arithmétique
 
Resumer sur les tris
Resumer sur les trisResumer sur les tris
Resumer sur les tris
 
DCT1 4SI
DCT1  4SIDCT1  4SI
DCT1 4SI
 
éNoncés+corrections bac2010
éNoncés+corrections bac2010éNoncés+corrections bac2010
éNoncés+corrections bac2010
 
éNoncés+corrections bac2008
éNoncés+corrections bac2008éNoncés+corrections bac2008
éNoncés+corrections bac2008
 
4e ds2-2012-2013
4e ds2-2012-20134e ds2-2012-2013
4e ds2-2012-2013
 

Similaire à Les algorithmes d'arithmetique

Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programmeBaghdadi Wajih
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétudeSana Aroussi
 
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
 
LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONborhen boukthir
 
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
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programmeBaghdadi Wajih
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R SumAmy Isleb
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexitéSana Aroussi
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programmeBaghdadi Wajih
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdiversHajar Yazine
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
ExercicescorrigesdiversKarim Amane
 
Algorithmique-ProgrammationC-Serie1.pdf
Algorithmique-ProgrammationC-Serie1.pdfAlgorithmique-ProgrammationC-Serie1.pdf
Algorithmique-ProgrammationC-Serie1.pdfOULAKBIRIlham
 
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
 
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
 

Similaire à Les algorithmes d'arithmetique (20)

Fiche3 ex-sous-programme
Fiche3 ex-sous-programmeFiche3 ex-sous-programme
Fiche3 ex-sous-programme
 
Chapitre 3 NP-complétude
Chapitre 3 NP-complétudeChapitre 3 NP-complétude
Chapitre 3 NP-complétude
 
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)
 
cours algorithme
cours algorithmecours algorithme
cours algorithme
 
LES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATIONLES ALGORITHMES D’APPROXIMATION
LES ALGORITHMES D’APPROXIMATION
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Fiche2 ex-sous-programme
Fiche2 ex-sous-programmeFiche2 ex-sous-programme
Fiche2 ex-sous-programme
 
Algorithmique Amp Programmation (R Sum
Algorithmique  Amp  Programmation (R SumAlgorithmique  Amp  Programmation (R Sum
Algorithmique Amp Programmation (R Sum
 
Chapitre 2 complexité
Chapitre 2 complexitéChapitre 2 complexité
Chapitre 2 complexité
 
transparents-Algo-complexite.pdf
transparents-Algo-complexite.pdftransparents-Algo-complexite.pdf
transparents-Algo-complexite.pdf
 
Fiche1 ex-sous-programme
Fiche1 ex-sous-programmeFiche1 ex-sous-programme
Fiche1 ex-sous-programme
 
Resume algorithme
Resume algorithmeResume algorithme
Resume algorithme
 
eExercices corrigesdivers
eExercices corrigesdiverseExercices corrigesdivers
eExercices corrigesdivers
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
Algorithmique-ProgrammationC-Serie1.pdf
Algorithmique-ProgrammationC-Serie1.pdfAlgorithmique-ProgrammationC-Serie1.pdf
Algorithmique-ProgrammationC-Serie1.pdf
 
Correction td2
Correction td2Correction td2
Correction td2
 
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
 
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é
 

Les algorithmes d'arithmetique

  • 1. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES I. Introduction L’arithmétique est une branche de mathématiques qui étudie les relations entre les nombres. C’est aussi l’étude des nombres et des opérations élémentaires entre eux. II. Calcul de PGCD (voir chapitre récursivité) III. Calcul de et III.1 présentation - Le nombre de permutations ordonnés possibles de p éléments parmi n appelé Arrangement : Exemple1 : quels sont les nombres de 2 chiffres à former à partir de la liste {5, 3,1} Réponse : 53, 35, 51, 15, 31, 13  =6 Exemple2 : tirage sans remise  Définition 1: E étant un ensemble à n éléments, on appelle arrangement de p éléments de E toute p-liste d'éléments distincts de E. - Le nombre de permutations sans ordre possibles de p éléments parmi n appelé Combinaison : Exemple1 : quels sont les listes de 2 éléments à former à partir de la liste {5, 3,1} Réponse : {5, 1}, {5, 3}, {3, 1}  =3 Exemple2 : tirage avec remise  Définition 2: E étant un ensemble à n éléments, on appelle combinaison de p éléments de E toute collection non ordonnée de p éléments distincts de E III.2 Calcul de Activité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher l e avec n et p deux entiers tel que 1≤p≤ n Sachant que = n (n-1) (n-2) ….. (n-p+1) Ou encore ( ) a) Analyse du programme principal 2) Résultat = Ecrire ("A (", p, ",", n, ")=", FN calcul (n, p)) 1) (N,p)= proc saisir (n, p) Algorithme du programme principal TDOG 0) DEBUT arrangement Objet Type/Nature 1) Proc saisir (n, p) N Entier 2) Ecrire ("A (", p, ",", n, ")=", FN calcul (n, p)) p entier saisir procédure 3) Fin arrangement calcul fonction 1
  • 2. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES b) Analyse de la procédure saisir Algorithme de la procédure saisir DEF PROC saisir var (n, p : entier) 0) DEF PROC saisir (var n, p : entier) Résultat = n, p 1) Répéter 2) N= [ ] répéter Ecrire ("P= "), lire (P) N= donnée ("N=") Jusqu’à (p≥1) Jusqu’à (n≥p) 2) Répéter 1) P= [ ] répéter Ecrire ("N= "), lire (N) P= donnée ("P= ") Jusqu’à (N≥p) Jusqu’à (p ≥1) 3) Fin saisir c) Analyse de la fonction calcul Algorithme de la fonction calcul DEF FN calcul (n, p : entier) : entier 0) DEF FN CALCUL (n, p : entier) : entier 2) Résultat = calcul  a 1) A 1 1) A= [a1] pour i de n à (n-p+1) (pas=-1) Faire Pour i de n à n-p+1 (pas=-1) Faire Aa*i Aa*i Fin pour Fin pour 2) Calcul a TDOL 3) Fin calcul objet Tupe/nature I Entier a entier 2
  • 3. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES III.3 Calcul de Activité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le avec n et p deux entiers tel que 0≤p≤ n a) Analyse du programme principal 2) Résultat = Ecrire ("C (", p, ",", n, ")=", FN calcul (n, p)) 3) (N,p)= proc saisir (n, p) Algorithme du programme principal TDOG 0) DEBUT arrangement Objet Type/Nature 1) Proc saisir (n, p) N Entier 2) Ecrire ("C (", p, ",", n, ")=", FN calcul (n, p)) p entier 3) Fin arrangement saisir procédure calcul fonction b) Analyse de la procédure saisir DEF PROC saisir var (n, p : entier) Résultat = n, p 2) N= [ ] répéter Algorithme de la procédure saisir N= donnée ("N=") Jusqu’à (n≥p) 0) DEF PROC saisir (var n, p : entier) 1) P= [ ] répéter 1) Répéter P= donnée ("P= ") Ecrire ("P= "), lire (P) Jusqu’à (p ≥0) Jusqu’à (p≥0) 2) Répéter Ecrire ("N= "), lire (N) Jusqu’à (N≥p) 3) Fin saisir c) Analyse de la fonction calcul DEF FN calcul (n, p : entier) : real Algorithme de la fonction calcul 2) Résultat = calcul  c 0) DEF FN CALCUL (n, p : entier) : réel 1) C  FACT (n) / (FACT (p) * FACT (n-p)) 1) C  FACT (n) / (FAT(p)*FACT (n-p)) 2) CALCUL  c 3) Fin calcul 3
  • 4. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES III.4 Application =9 =8 =1 =1 =1 Activité : écrire la fonction combinaison récursive Analyse de la fonction COMB récursive DEF FN Combo (n, p : entier) : entier Résultat= combo 1) combo= [ ] si (p=0) ou (p=n) alors combo 1 Sinon combo  FN combo (n-1, p-1) + FN combo (n-1, p) Fin si 4
  • 5. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES IV. Quelques règles de divisibilité (livre page 166) V. Conversion entre les bases de numération V.1 Définition Un système de numération est une méthode de comptage fondée sur une base de numération qui est un entier supérieur ou égal à 2. Soit N une base de numération, le système sera doté de N chiffres de 0 à N-1 V.2 Exemples de bases de numération (voir livre page 166) V.3 Conversion d’un nombre décimal en binaire Ecrire un programme modulaire en pascal qui permet de saisir un entier positif, le convertit en binaire. a) Analyse du programme principal 2) Résultat = Ecrire (Fn conv_DEC_BIN(n)) 1) N = proc saisir (n) b) Analyse de la procédure CONV_DEC_BIN DEF FN CONV_DEC_BIN (n : entier) : chaîne Algorithme du programme principal 2) Résultat = CONV_DEC_BIN  ch 1)Ch=[ch  ""] répéter 0) Début conversion R  n mod 2 1) Proc saisir (n) N  n div 2 2) Ecrire (Fn conv_DEC_BIN(n)) Ch  chr(48+R)+ch 3) Fin conversion Jusqu’à (n=0) Algorithme de la fonction CONV_DEC_BIN 0) DEF FN CONV_DEC_BIN (n : entier) : chaîne 1) Ch  "" répéter R  n mod 2 N  n div 2 Ch  chr(48+R)+ch Jusqu’à (n=0) 2) CONV_DEC_Bin  ch 3) Fin CONV_DEC_BIN 5
  • 6. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 4 Conversion d’un nombre binaire en décimal Ecrire un programme modulaire en pascal qui permet de saisir un nombre binaire (sous forme d’une chaîne de caractères), le convertit en décimal. Algorithme du programme principal a) Analyse du programme principal 2) Résultat = Ecrire (FN conv_bin_dec(ch)) 0) Début conversion 1)Ch= proc saisir (ch) 1) Proc saisir (ch) 2) Ecrire (FN conv_bin_dec(ch)) 3) Fin conversion b) Analyse de la procédure saisir DEF PROC SAISIR (var ch : chaîne) Algorithme de la procédure saisir Résultat = ch 0) DEF PROC SAISIR (var ch : chaîne) 1)Ch=[ ] répéter 1) répéter Ch= donnée ("CH= ") Ecrire ("CH= "), lire (ch) i0 i0 répéter répéter ii+1 ii+1 test  ch[i] dans ["0","1"] test  ch[i] dans ["0","1"] jusqu’à (non test) ou (i=long(ch)) jusqu’à (non test) ou (i=long(ch)) jusqu’à test Jusqu’à test 2) Fin saisir c) Analyse de la fonction conv_bin_dec Algorithme de la fonction conv_bin_dec DEF FN conv_bin_dec (ch :chaîne) : entier long 0)DEF FN conv_bin_dec (ch :chaîne): entire long 2)Résultat = conv_bin_dec  n 1)N <- 0 1)N= [n0] pour i de 1 à long (ch) faire pour i de 1 à long (ch) faire N  n +(ord(ch[i])-48)*puissance(long(ch)-i) N  n +(ord(ch[i])-48)*puissance(long(ch)-i) Fin pour Fin pour 2) conv_bin_dec  N 3) Fin conv_bin_dec d) Analyse de la fonction puissance Algorithme de la fonction puissance DEF FN puissance (x :entier) :entier 0)DEF FN puissane (x :entier) : entier 2)Résultat = puissance p 1)p 1 Pour i de 1 à x faire 1)P=[ p 1] pour i de 1 à x Faire Pp*2 P  2*p Fin pour Fin pour 2)puissance p 3) Fin puissance 6
  • 7. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 7
  • 8. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 5 Conversion d’un nombre hexadécimal en binaire Activité : écrire un programme modulaire en pascal qui permet de saisir un nombre hexadécimal, le convertit en binaire. Analyse du programma principal : 2)Résultat= Ecrire("("ch," )16= (", FN conv_hex_bin(ch), ")2") 1)Ch= proc saisir (ch) Algorithme du programme principal TDOG 0) Début conversion Objet Type/nature Rôle 1) proc saisir (ch) Ch Chaîne Saisir Procédure 2) Ecrire ("("ch,») 16= (", FN conv_hex_bin(ch), ")2") Conv_hex_bin fonction 3 Fin conversion Analyse de la procédure saisir TDOL DEF PROC saisir (var ch :chîne) Objet Type/nature Rôle Résultat = ch i Entier test booléen 1)Ch=[ ] répéter Algorithme de la procédure saisir Ch= donnée ("CH=") 0) DEF PROC saisir (var ch :chîne) i 0 1) répéter Répéter Ecrire ("CH="), lire (ch) i  i+1 i 0 Répéter ch[i] dans ["0".."9", "A".."F"] i  i+1 Jusqu’à (non test) ou (i=long (ch)) ch[i] dans ["0".."9", "A".."F"] Jusqu’à (test) jusqu’à (non test) ou (i=long(ch)) Analyse de la fonction conv_hex_bin Jusqu’à (test) 2) fin saisir DEF FN conv_hex_bin (ch : chaîne): chaîne 2)Résultat= conv_hex_bin  ph 2)Ph=[] tant que ph[1]= "0" faire TDOL Efface(ph, 1, 1) Objet Type/nature Rôle i Entier Fin tant que con fonction 1)Ph=[ph""]pour i de 1 à long (ch) faire ph chaîne Si ch[i] dans ["0".."9"] alors ph  ph + conv(ord(ch[i])-48) Sinon ph ph + conv (ord(ch[i])-55) Fin si Analyse de la fonction conv DEF FN conv (x : entier): chaîne TDOL 2)Résultat= convdh Objet Type/nature Rôle i Entier 1)dh=[dh"0000", i4] répéter dh chaîne dh[i]  chr((x mod 2)+48) x x div 2 i i – 1 8
  • 9. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES Algorithme de la fonction conv_hex_bin jusqu’à (x=0) 0) DEF FN conv_hex_bin (ch : chaîne): chaîne Algorithme de la fonction conv 1) Ph"" 0) DEF FN conv (x : entier): chaîne pour i de 1 à long (ch) faire 1) dh"0000" Si ch[i] dans ["0".."9"] alors ph  ph + conv(ord(ch[i])-48) i4 Sinon ph ph + conv (ord(ch[i])-55) répéter Fin si dh[i]  chr((x mod 2)+48) 2) tant que ph[1]= "0" faire x x div 2 Efface (ph, 1, 1) i i – 1 Fin tant que jusqu’à (x=0) 3) fin conv_hex_bin 2) fin conv 4) Fin conv_hex_bin 9
  • 10. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 6 Conversion d’un nombre binaire en hexadécimal Activité : écrire un programme modulaire en pascal qui permet de saisir un nombre binaire, le convertit en hexadécimal. Analyse du programme principal : 2) Résulat= Ecrire ("(", ch, ") 2= (", FN conv_bin_hex(ch), ")16") 1) Ch= proc saisir (ch) Algorithme du programme principal TDOG 0) Début conversion Objet Type/nature Rôle Conv_bin_hex fonction 1) proc saisir (ch) ch chaîne 2) Ecrire ("(", ch, ") 2= (", conv_bin_hex(ch), ")16") Saisir procédure 3) Fin conversion Analyse de la fonction conv_bin_hex DEF FN conv_hex_bin (ch : chaîne): chaîne 3) Résultat= conv_bin_hex  ph 2) Ph= [ph "" ] répéter Ph  ph + Fn conv (sous-chaîne (ch, 1, 4)) Efface (ch, 1, 4) Algorithme de la fonction conv_bin_hex Jusqu’à (long (ch)=0) 1) Ch=[ ] tant que long(ch) mod 4≠0 Faire 0) DEF FN conv_bin_hex (ch : chaîne): chaîne Insère (ch, "0", 1) 1) tant que long(ch) mod 4≠0 Faire Fin tant que Insère (ch, "0", 1) Fin tant que TDOL 2) ph "" Objet Type/nature Rôle Répéter conv fonction Ph  ph + FN conv (sous-chaîne (ch, 1, 4)) ph chaîne Efface (ch, 1, 4) Jusqu’à (long (ch)=0) 3) conv_bin_hex  ph Analyse de la fonction conv 4) fin conv_bin_hex DEF FN conv (dh : chaîne) : caractère Résultat= conv 2)Conv=[ ] si x dans [0..9] alors conv  chr (x+48) Algorithme de la fonction conv Sinon conv  chr (x+55) 0) DEF FN conv (dh : chaîne) : caractère Fin si 1) x0 pour i de 1 à 4 faire 1) x=[x0] pour i de 1 à 4 faire x  x + (ord (ch[i])-48) * FN puissance (4-i) x  x + (ord (ch[i])-48) * FN puissance (4-i) Fin pour Fin pour 2) si x dans [0..9] alors conv  chr (x+48) TDOL Sinon conv  chr (x+55) Objet Type/nature Rôle Fin si x enier 3) Fin conv i entier 10
  • 11. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES Analyse de la fonction puissance Algorithme de la fonction puissance DEF FN puissance (a :etier) : entier Résultat=puissance b 0) DEF FN puissance (a :etier) : entier 1) b1 b=[b1] pour i de 1 à 4 faire Pour i de 1 à 4 faire bb*2 bb*2 fin pour TDOL fin pour Objet Type/nature Rôle 2) puissance b b enier i entier 11
  • 12. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 5 Conversion d’un nombre hexadécimal en décimal Activité : écrire un programme modulaire en pascal qui permet de saisir un nombre hexadécimal, le convertit en décimal. Analyse du programme principal : 2) Résultat= Ecrire ("(ch",") 16= (", FN conv_hex_dec (ch),") 10") 1) Ch=proc saisir (ch) Algorithme du programme principal TDOG 0) Début conversion Objet Type/nature 1) proc saisir (ch) saisir Procédure Conv_hex_dec fonction 2) Ecrire ("(ch",") 16= (", FN conv_hex_dec (ch),") 10") ch chaîne 3) Fin conversion Analyse de la fonction conv_hex_dec : DEF FN conv_hex_dec (ch :chaîne): entire long 2) Résultat= conv_hex_dec  N 1) N= [N 0] pour i de 1 à long (ch) faire Si ch[i] dans ["0".."9"] alors N N + (ord (ch[i])-48) * FN puissance (long (ch) –i) Sinon N  N + (ord (ch[i])-55) * FN puissance (long (ch)-i) Fin si Fin pour Algorithme de la fonction conv_hex_dec 0) DEF FN conv_hex_dec (ch :chaîne): entire long 1) N0 pour i de 1 à long (ch) faire TDOL Si ch[i] dans ["0".."9"] alors N N + (ord (ch[i])-48) * FN puissance (long (ch) –i) Objet Type/nature Sinon N  N + (ord (ch[i])-55) * FN puissance (long (ch)-i) N Entier long Fin si i entier Fin pour 2) conv_hex_dec  N 3) Fin conv_hex_dec Analyse de la fonction puissance : DEF FN puissance (x : entier) : entier long 2) Résultat= puissance p Algorithme de la fonction puissance 1) P= [p0] pour i de 1 à x faire 0) DEF FN puissance (x : entier) : entier long P  p * 16 1) p0 Fin pour Pour i de 1 à x faire P  p * 16 TDOL Fin pour Objet Type/nature 2) Puissance p p Entier long 3) Fin puissance i entier 12
  • 13. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 13
  • 14. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V.7 Conversion d’un nombre octal en binaire Similaire à la conversion de l’hexadécimal en binaire. Exemple : 5 7 3 1 101 111 011 001 Donc (5731)8 = (101111011001)2 V. 8 Conversion d’un nombre binaire en octal Similaire à la conversion du binaire en hexadécimal Exemple : 101 111 011 001 1*22+0*21+1*20 = 5 1*22+1*21+1*20 = 7 0*22+1*21+1*20 = 3 0*22+0*21+1*20 = 1 Donc (101111011001)2 = (5731)8 V. 9 Conversion d’un nombre octal en décimal Similaire à la conversion du hexadécimal en décimal Exemple : (5732)8 = 5*83 + 7*82 + 3*81 + 2*80 = (3034)10 V. 10 Conversion d’un nombre d’une base b1 en une base b2 Ecrire un programme modulaire en Pascal, qui saisit un nombre d’une base B1 et le convertit en une base B2 avec (2≤B1≤16 et 2≤B2≤16) a) Analyse du programme principal 4) Résultat= écrire ("(", ch,") ", b1, "= (", FN conversion (ch, b1, b2), ")", b2) 3) B2= proc saisir (b2) Algorithme du programme principal : 2) Ch= proc saisir (ch, b1) 1) B1= proc saisir (b1) 0) Début conversion 1) proc saisir (b1) 2) proc saisir (ch, b1) 3) proc saisir (b2) 4) écrire ("(", ch,") ", b1, "= (", FN conversion (ch, b1, b2), ")", b2) 5) Fin conversion 14
  • 15. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES b) Analyse de la fonction conversion DEF FN conversion (ch : chaîne ; b1, b2 : entier) : chaîne 3) Résultat = conversion  ph Algorithme de la fonction convesrion 2) Ph  FN convb2 (n10, b2) 0) DEF FN conversion (ch : chaîne ; b1, b2 : entier) 1) N10  FN conv10 (ch, b1) 1) N10  FN conv10 (ch, b1) 2) Ph  FN convb2 (n10, b2) 3) conversion  ph 4) fin conversion c) Analyse de la fonction conv10 (convertit un nombre vers la base décimal) DEF FN conv10 (ch : chaîne ; b1 : entier) : entier long 2) Résultat= conv10 n 1) N= [n0] pour i de long (ch) à 1 (pas=-1) Faire Si ch[i] dans ["0".."9"] alors n  n + (ord (ch[i])-48) * Fn puissance (b1, long (ch)-1) Sinon n  n + (ord (ch[i])-55) * Fn puissance (b1, long (ch)-1) Fin si Fin pour Algorithme de la fonction conv10 0) DEF FN conv10 (ch : chaîne ; b1 : entier) : entier long 1) n0 Pour i de long (ch) à 1 (pas=-1) Faire Si ch[i] dans ["0".."9"] alors n  n + (ord (ch[i])-48) * Fn puissance (b1, long (ch)-1) Sinon n  n + (ord (ch[i])-55) * Fn puissance (b1, long (ch)-1) Fin si Fin pour 2) conv10 n 3) Fin conv10 d) Analyse de la fonction convb2 (convertit un nombre décimal vers la base B2) DEF FN convb2 (n1O : entier long ; b2 : entier) : chaîne 2) Résultat= convb2  ph Algorithme de la fonction convb2 1) Ph= [ph""] répéter 0) DEF FN convb2 (n1O : entier long ; b2 : entier) : chaîne R  n mod b2 1) ph"" Si r ≤9 alors ph  chr(r + 48) + ph Répéter Sinon ph  chr(r+55) + ph R  n mod b2 Fin si Si r ≤9 alors ph  chr(r + 48) + ph Sinon ph  chr(r+55) + ph N10  N10 div b2 Fin si Jusqu’à (N10 = 0) N10  N10 div b2 Jusqu’à (N10 = 0) 2) convb2  ph 3) fin convb2 Algorithme de la fonction puissance e) Analyse de la fonction puissance 0) DEF FN puissance (x, y : entier) : entier long DEF FN puissance (x, y : entier) : entier long 1) Z 1 2) Résultat= puissance  Z Pour i de 1 à y faire 1) Z= [Z 1] pour i de 1 à y faire ZZ*x Fin pour ZZ*x 2) puissance  Z Fin pour 3) Fin puissance 15
  • 16. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 16