numération en base k en turbo pascal
Je dois écrire un programme ou l'utilisateur entre un nombre n une base k et ou l'ordi renvoie le nombre n en base k (ex:128 donne 1003 en base 5)
J'ai écris le programme suivant mais il y a une erreur, l'ordi me renvoie une erreur pour le modulo en me disant que l'opérande est <= 0 c ki est faux (à moins ke je n'ai pas vu qque chose...
Quelqu'un pourrait il me dire si il voit l'erreur ?
Merci !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| program numbase;
var
n,k,r,q,a,x,z:integer;
y:real;
begin
writeln('Taper le nombre a transformer...');
Readln(n);
Writeln('en base ?');
Readln(k);
r:=n mod k;
q:=(n-r) div k;
while n<>0 do
begin
for a:=q downto 0 do
begin
y:=exp(a*(ln(k)));
z:=trunc(y);
x:=trunc(n/y);
n:=n mod z;
writeln(x);
end;
end;
readln;
end. |
[Balises CODE rajoutées par sub0]