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 !
[Balises CODE rajoutées par sub0]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Partager