PROF : Mohamed SAYARI                              4 SI                      LES ALGORITHMES D’ARITHMETIQUESI. Introductio...
PROF : Mohamed SAYARI                         4 SI       LES ALGORITHMES D’ARITHMETIQUESb) Analyse de la procédure saisir ...
PROF : Mohamed SAYARI                              4 SI                       LES ALGORITHMES D’ARITHMETIQUESIII.3 Calcul ...
PROF : Mohamed SAYARI                             4 SI          LES ALGORITHMES D’ARITHMETIQUESIII.4 Application    =9    ...
PROF : Mohamed SAYARI                        4 SI                  LES ALGORITHMES D’ARITHMETIQUESIV. Quelques règles de d...
PROF : Mohamed SAYARI                              4 SI                      LES ALGORITHMES D’ARITHMETIQUES    V. 4 Conve...
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES                                                        7
PROF : Mohamed SAYARI                              4 SI                   LES ALGORITHMES D’ARITHMETIQUES        V. 5 Conv...
PROF : Mohamed SAYARI                              4 SI               LES ALGORITHMES D’ARITHMETIQUES          Algorithme ...
PROF : Mohamed SAYARI                                 4 SI                    LES ALGORITHMES D’ARITHMETIQUES        V. 6 ...
PROF : Mohamed SAYARI                            4 SI              LES ALGORITHMES D’ARITHMETIQUESAnalyse de la fonction p...
PROF : Mohamed SAYARI                                    4 SI                        LES ALGORITHMES D’ARITHMETIQUES      ...
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES                                                        13
PROF : Mohamed SAYARI                              4 SI                       LES ALGORITHMES D’ARITHMETIQUES             ...
PROF : Mohamed SAYARI                                 4 SI                         LES ALGORITHMES D’ARITHMETIQUESb) Analy...
PROF : Mohamed SAYARI   4 SI   LES ALGORITHMES D’ARITHMETIQUES                                                        16
Prochain SlideShare
Chargement dans…5
×

Les algorithmes d'arithmetique

9 328 vues

Publié le

0 commentaire
7 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
9 328
Sur SlideShare
0
Issues des intégrations
0
Intégrations
15
Actions
Partages
0
Téléchargements
792
Commentaires
0
J’aime
7
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Les algorithmes d'arithmetique

  1. 1. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESI. Introduction L’arithmétique est une branche de mathématiques qui étudie les relations entre les nombres. C’est aussil’étude des nombres et des opérations élémentaires entre eux.II. Calcul de PGCD (voir chapitre récursivité)III. Calcul de etIII.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 EIII.2 Calcul deActivité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher l e avec n et pdeux 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. 2. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESb) 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 saisirc) Analyse de la fonction calcul Algorithme de la fonction calculDEF FN calcul (n, p : entier) : entier 0) DEF FN CALCUL (n, p : entier) : entier2) Résultat = calcul  a 1) A 11) 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. 3. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESIII.3 Calcul deActivité1 : écrire un programme modulaire en Pascal qui permet de calculer et d’afficher le avec n et pdeux 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. 4. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESIII.4 Application =9 =8 =1 =1 =1Activité : écrire la fonction combinaison récursiveAnalyse de la fonction COMB récursiveDEF FN Combo (n, p : entier) : entierRésultat= combo1) 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. 5. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESIV. Quelques règles de divisibilité (livre page 166)V. Conversion entre les bases de numération V.1 DéfinitionUn système de numération est une méthode de comptage fondée sur une base de numération qui estun entier supérieur ou égal à 2. Soit N une base de numération, le système sera doté de N chiffres de0 à N-1 V.2 Exemples de bases de numération (voir livre page 166) V.3 Conversion d’un nombre décimal en binaireEcrire un programme modulaire en pascal qui permet de saisir un entier positif, le convertit enbinaire.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. 6. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 4 Conversion d’un nombre binaire en décimalEcrire un programme modulaire en pascal qui permet de saisir un nombre binaire (sous forme d’unechaî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 saisirDEF PROC SAISIR (var ch : chaîne) Algorithme de la procédure saisirRé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_decDEF FN conv_bin_dec (ch :chaîne) : entier long 0)DEF FN conv_bin_dec (ch :chaîne): entire long2)Résultat = conv_bin_dec  n 1)N <- 01)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 puissanceDEF FN puissance (x :entier) :entier 0)DEF FN puissane (x :entier) : entier2)Résultat = puissance p 1)p 1 Pour i de 1 à x faire1)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. 7. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 7
  8. 8. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 5 Conversion d’un nombre hexadécimal en binaireActivité : écrire un programme modulaire en pascal qui permet de saisir un nombre hexadécimal, leconvertit 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 conversionAnalyse de la procédure saisir TDOLDEF PROC saisir (var ch :chîne) Objet Type/nature RôleRésultat = ch i Entier test booléen1)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 saisirDEF FN conv_hex_bin (ch : chaîne): chaîne2)Résultat= conv_hex_bin  ph2)Ph=[] tant que ph[1]= "0" faire TDOL Efface(ph, 1, 1) Objet Type/nature Rôle i Entier Fin tant que con fonction1)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 siAnalyse de la fonction convDEF FN conv (x : entier): chaîne TDOL2)Résultat= convdh Objet Type/nature Rôle i Entier1)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. 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 conv4) Fin conv_hex_bin 9
  10. 10. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 6 Conversion d’un nombre binaire en hexadécimalActivité : écrire un programme modulaire en pascal qui permet de saisir un nombre binaire, leconvertit 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 conversionAnalyse de la fonction conv_bin_hexDEF FN conv_hex_bin (ch : chaîne): chaîne3) Résultat= conv_bin_hex  ph2) 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  phAnalyse de la fonction conv 4) fin conv_bin_hexDEF FN conv (dh : chaîne) : caractèreRésultat= conv2)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 faire1) 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. 11. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESAnalyse de la fonction puissance Algorithme de la fonction puissanceDEF FN puissance (a :etier) : entierRésultat=puissance b 0) DEF FN puissance (a :etier) : entier 1) b1b=[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. 12. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V. 5 Conversion d’un nombre hexadécimal en décimalActivité : écrire un programme modulaire en pascal qui permet de saisir un nombre hexadécimal, leconvertit 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 conversionAnalyse de la fonction conv_hex_dec :DEF FN conv_hex_dec (ch :chaîne): entire long2) Résultat= conv_hex_dec  N1) 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_dec0) DEF FN conv_hex_dec (ch :chaîne): entire long1) 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 pour2) conv_hex_dec  N3) Fin conv_hex_decAnalyse de la fonction puissance :DEF FN puissance (x : entier) : entier long2) Résultat= puissance p Algorithme de la fonction puissance1) 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. 13. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 13
  14. 14. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES V.7 Conversion d’un nombre octal en binaireSimilaire à 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 octalSimilaire à 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écimalSimilaire à 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 b2Ecrire un programme modulaire en Pascal, qui saisit un nombre d’une base B1 et le convertit en unebase 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. 15. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUESb) 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 conversionc) 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 conv10d) 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 puissancee) 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. 16. PROF : Mohamed SAYARI 4 SI LES ALGORITHMES D’ARITHMETIQUES 16

×