next up previous contents index
suivant: Avec un programme monter: Écriture décimale d'un nombre précédent: Écriture décimale d'un nombre   Table des matières   Index

Algorithme de la potence

Pour obtenir la partie entière et le développement décimal de $\displaystyle {\frac{{a}}{{b}}}$, on va construire deux listes : L1 la liste des restes et L2 la liste des quotients obtenus par l'algorithme de la potence .
On met le quotient q dans L1 et le reste r dans L2.
On a ainsi, la partie entière de $\displaystyle {\frac{{a}}{{b}}}$ dans L1 et comme $\displaystyle {\frac{{a}}{{b}}}$ = q + $\displaystyle {\frac{{r}}{{b}}}$ on cherche la partie entière de $\displaystyle {\frac{{10*r}}{{b}}}$ qui va rallonger L1 etc...

Si on veut, par exemple, le développement décimale de $\displaystyle {\frac{{278}}{{31}}}$ on cherche :
le quotient q = 8 et le reste r = 30 de la divison euclidienne de 278 par 31.
La partie entière est donc 8 et, on met 8L1 . Pour avoir la partie décimale de $\displaystyle {\frac{{278}}{{31}}}$, on fait comme à la main l'algorithme de la potence : on multiplie le reste trouvé par 10, on trouve 300 puis on le divise par 31 : le quotient trouvé 9 est rajouté à L1 et le reste est rajouté à L2 etc...
On écrit la fonction potence qui renvoie dans la première liste la partie entière puis les n décimales de $ {\frac{{a}}{{b}}}$ et dans la deuxième liste les restes successifs obtenus.

potence(a,b,n):={
 local L1,L2,k;
 b0:=b;
 b:=iquo(a,b0);
 a:=irem(a,b0);
 L1:=[b];
 L2:=[a];
 for (k:=1;k<=n and a!=0;k++){
    b:=iquo(a*10,b0);
    a:=irem(a*10,b0);
    L2:=append(L2,a);
    L1:=append(L1,b);
 };
 return([L1,L2]);
};
En exécutant potence(278,31,20), on lit la partie entière de $\displaystyle {\frac{{278}}{{31}}}$ et les chiffres de sa partie décimale dans la première liste et, la suite des restes dans la deuxième liste.
Exercice
Écrire la partie entière et le développement décimal de :
a = $\displaystyle {\frac{{11}}{{7}}}$, b = $\displaystyle {\frac{{15}}{{14}}}$ et c = $\displaystyle {\frac{{17}}{{28}}}$.
Calculer a - b et a - c et donner leur partie entière et leur développement décimal.
Que remarqez-vous ?
Exercice Comment modifier L1 et L2 pour que les chiffres de la partie décimale de $\displaystyle {\frac{{a}}{{b}}}$ se lisent par paquet de trois chiffres dans L1.
Avec l'exemple $\displaystyle {\frac{{278}}{{31}}}$ on veut obtenir : L1=[8,967,741,935 ...]
Tester votre modification pour $\displaystyle {\frac{{349}}{{1332}}}$.
Que remarquez vous ?
next up previous contents index
suivant: Avec un programme monter: Écriture décimale d'un nombre précédent: Écriture décimale d'un nombre   Table des matières   Index
Documentation de giac écrite par Renée De Graeve