conversion en base b et subop
Publié : ven. oct. 12, 2007 9:16 am
Bonjour,
je tente de faire un petit programme pour passer de la base b (b<=16) à la base 10 sans utiliser convert.
Pour b<=10 pas de problème :
bvers10(b,L):={//L est une liste : L:=[ , , ]
local s;
s:=size(L);
l:=revlist(L);
return(sum(b^(k)*L[k],k,0,s-1));
}:;
Les problèmes commencent à partir de b=11
je veux donc convertir les lettres A, B... en 10, 11... dans la liste L et dans l'aide j'ai trouvé la commande subop
mais elle ne "marche" pas comme je voudrais, exemple :
> L:=[A,B]
> subop(L,0=10)
> L
réponse d'Xcas : [A B] , apparement il n'a pas subsstitué 10 à A.
donc évidement le programme ci-dessous ne marche pas :
Bvers10(b,L):={
local s;
s:=size(L);
for(k;0;s-1){
if (L[k]=="A") {subop(L,k=10)};
if (L[k]=="B") {subop(L,k=11)};
if (L[k]=="C") {subop(L,k=12)};
if (L[k]=="D") {subop(L,k=13)};
if (L[k]=="E") {subop(L,k=14)};
if (L[k]=="F") {subop(L,k=15)};
}//fin for
l:=revlist(L);
return(sum(b^(l)*L[l],l,0,s-1));
}:;
Quelqu'un voit-il s'il y a quelque chose qui cloche (synthaxe de subop mal utilisée...) ?
Stéphane Lejoly
je tente de faire un petit programme pour passer de la base b (b<=16) à la base 10 sans utiliser convert.
Pour b<=10 pas de problème :
bvers10(b,L):={//L est une liste : L:=[ , , ]
local s;
s:=size(L);
l:=revlist(L);
return(sum(b^(k)*L[k],k,0,s-1));
}:;
Les problèmes commencent à partir de b=11
je veux donc convertir les lettres A, B... en 10, 11... dans la liste L et dans l'aide j'ai trouvé la commande subop
mais elle ne "marche" pas comme je voudrais, exemple :
> L:=[A,B]
> subop(L,0=10)
> L
réponse d'Xcas : [A B] , apparement il n'a pas subsstitué 10 à A.
donc évidement le programme ci-dessous ne marche pas :
Bvers10(b,L):={
local s;
s:=size(L);
for(k;0;s-1){
if (L[k]=="A") {subop(L,k=10)};
if (L[k]=="B") {subop(L,k=11)};
if (L[k]=="C") {subop(L,k=12)};
if (L[k]=="D") {subop(L,k=13)};
if (L[k]=="E") {subop(L,k=14)};
if (L[k]=="F") {subop(L,k=15)};
}//fin for
l:=revlist(L);
return(sum(b^(l)*L[l],l,0,s-1));
}:;
Quelqu'un voit-il s'il y a quelque chose qui cloche (synthaxe de subop mal utilisée...) ?
Stéphane Lejoly