2
Plus lue
6
Plus lue
8
Plus lue
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
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES




                                                        7
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
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
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
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
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
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES




                                                        13
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
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
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES




                                                        16

Contenu connexe

PDF
Devoirs Algorithme + correction pour 4 si
PDF
Rapport de projet de conception et de développement
PDF
Rapport Projet Fin d'Études PFE
PDF
Prise-en-main de votre PC
PDF
Algorithmes d'approximation
PPTX
Cyber Security Presentation
PDF
Serie recurrents & arithmetiques
PDF
Fiche de TP 1 sur les Feuilles de calculs avec les Tableurs
Devoirs Algorithme + correction pour 4 si
Rapport de projet de conception et de développement
Rapport Projet Fin d'Études PFE
Prise-en-main de votre PC
Algorithmes d'approximation
Cyber Security Presentation
Serie recurrents & arithmetiques
Fiche de TP 1 sur les Feuilles de calculs avec les Tableurs

Tendances (20)

PDF
Mes devoirs 4 si
PDF
PPTX
Les algorithmes d’approximation
PDF
Recursiviteeeeeeeeee
PDF
Récursivité
DOCX
Résumer arithmétique
PDF
Les algorithmes recurrents
PDF
Exercices en turbo pascal sur la récursivité
PDF
Les enregistrements
PDF
Correction
PDF
Serie algos approximationx
PDF
Algorithmes de tri
PDF
02 correction-td smi-s3-algo2
PDF
Exercices pascal tous les chapitres
DOCX
Exo algo
DOC
Fonctions chaine
PDF
Projet de programmation la conversion entre les bases
PDF
PDF
Examen principal + Correction ASD
PDF
Corrige exercices pascal_fenni_2018
Mes devoirs 4 si
Les algorithmes d’approximation
Recursiviteeeeeeeeee
Récursivité
Résumer arithmétique
Les algorithmes recurrents
Exercices en turbo pascal sur la récursivité
Les enregistrements
Correction
Serie algos approximationx
Algorithmes de tri
02 correction-td smi-s3-algo2
Exercices pascal tous les chapitres
Exo algo
Fonctions chaine
Projet de programmation la conversion entre les bases
Examen principal + Correction ASD
Corrige exercices pascal_fenni_2018
Publicité

En vedette (14)

PDF
Exercices en turbo pascal sur les nombres
DOCX
Résumé Algorithme et Programmation
PDF
bac info : série récursivité
PDF
Les algorithmes avancés
PDF
Sujets de preparation bac tp (sayari)
PDF
Algorithmique et programmation en Pascal (résumé)
PDF
Se préparer au BAC TP
PDF
Travaux dirigés 1: algorithme & structures de données (corrigés)
DOCX
Resumer sur les tris
PDF
DCT1 4SI
PDF
Chap04 les-algorithme-de-tri-et-de-recherche
PDF
éNoncés+corrections bac2010
PDF
éNoncés+corrections bac2008
PDF
Exercices en turbo pascal sur les nombres
Résumé Algorithme et Programmation
bac info : série récursivité
Les algorithmes avancés
Sujets de preparation bac tp (sayari)
Algorithmique et programmation en Pascal (résumé)
Se préparer au BAC TP
Travaux dirigés 1: algorithme & structures de données (corrigés)
Resumer sur les tris
DCT1 4SI
Chap04 les-algorithme-de-tri-et-de-recherche
éNoncés+corrections bac2010
éNoncés+corrections bac2008
Publicité

Similaire à Les algorithmes d'arithmetique (20)

PDF
Fiche3 ex-sous-programme
PDF
Chapitre 3 NP-complétude
PDF
Traitement des données massives (INF442, A4)
PDF
cours algorithme
PDF
Algorithmique programmation2018
PDF
LES ALGORITHMES D’APPROXIMATION
PDF
Algorithmique seconde (corrigés et commentaires)
PDF
Fiche2 ex-sous-programme
PDF
Algorithmique Amp Programmation (R Sum
PDF
Chapitre 2 complexité
PDF
transparents-Algo-complexite.pdf
PDF
Récursivité algorithmique cours master université
PDF
Fiche1 ex-sous-programme
DOCX
Resume algorithme
PDF
Chapitre 2 Complexité et NP-Complétude.pdf
PDF
Exercicescorrigesdivers
PDF
eExercices corrigesdivers
PDF
Correction td2
PDF
Cours algorithmique et complexite complet
PDF
Cours algorithmique et complexite
Fiche3 ex-sous-programme
Chapitre 3 NP-complétude
Traitement des données massives (INF442, A4)
cours algorithme
Algorithmique programmation2018
LES ALGORITHMES D’APPROXIMATION
Algorithmique seconde (corrigés et commentaires)
Fiche2 ex-sous-programme
Algorithmique Amp Programmation (R Sum
Chapitre 2 complexité
transparents-Algo-complexite.pdf
Récursivité algorithmique cours master université
Fiche1 ex-sous-programme
Resume algorithme
Chapitre 2 Complexité et NP-Complétude.pdf
Exercicescorrigesdivers
eExercices corrigesdivers
Correction td2
Cours algorithmique et complexite complet
Cours algorithmique et complexite

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