suivant: Affichage d'un nombre décimal
monter: Affichage d'un nombre en
précédent: Transformation d'un affichage par
Table des matières
Index
Pour rendre plus facile la lecture d'un nombre décimal de [0,1[, on veut
l'afficher par tranches, c'est à dire selon une chaîne de caractères
constituées par les p premières décimales du nombre et d'un espace,
puis les p suivants etc...
On suppose que l'écriture de d comporte un point (.) suivi des
décimales et ne comporte pas d'exposant (pas de e4)
On écrit le programme qui va afficher le nombre d par tranches de p
chiffres:
affiched(d,p):={
local deb,result;
//on suppose 0<=d<1
d:=cat(d,"");
if (d[0]=="0") {d:=tail(d);}
if (expr(tail(d))<10^p){return d;}
deb:=mid(d,0,p+1);
result:=cat(deb," ");
d:=mid(d,p+1);
while (expr(d)>10^p) {
deb:=mid(d,0,p);
result:=cat(result,deb," ");
d:=mid(d,p);
}
return cat(result,d);
};
On tape :
affiched(0.1234567,3)
On obtient :
".123 456 7"
Remarque
La commande enleve(affiched(d,3)," ") permet encore de retrouver d.
enleve(chn,ch):={
local l,s;
s:=length(chn)-1;
//on transforme chn en une liste de ces lettres
//puis, on enleve le caractere ch de cette liste
l:=remove(x->(ord(x)==ord(ch)),seq(chn[k],k,0,s));
//on transforme la liste en chaine
return expr(char(ord(l)));
};
Documentation de giac écrite par Renée De Graeve