1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| program base;
uses wincrt;
type
tab=array[1..100] of integer;
var
b1,b2,s,c:integer;
ch:string;
t:tab;
{ **** procedure lecture ****}
procedure lecture(var b1:integer;var b2:integer;var ch:string);
begin
writeln ('donner la base auqelle vous aller transformé');
readln(b2) ;
writeln('donner la base de laquelle transferé');
readln(b1);
writeln('donner le chiffre');
readln (ch);
end;
{ **** procedure som , elle permet de convertir un nombre donné à la
base dicimale **** }
procedure som( ch:string;b1:integer; var s:integer);
var
c:char;
n,i,l,p:integer;
begin
s:=0;p:=1;
l := Length(Ch) ;
for i := l downto 1 do
begin
c:= upcase(ch[i]);
if c in ['0'..'9'] then
begin
n:= ord(c)-ord('0');
end
else
begin
n:= ord(c)-ord('7');
end;
s:= s+(n*p) ;
p:=p* b1;
end;
end;
{**** procedure divi , elle permet la divition du nombre décimale
sur b2 puis de l'affiché ***}
procedure divi (b2:integer; var s:integer);
var
i,c:integer;
t:tab;
begin
c :=0;
repeat
c:=c+1;
t[c]:= s mod b2;
s:=s div b2;
until s=0;
write('le chiffre devient:');
for i:= c downto 1 do
if t[i] in [0..9] then write(t[i]:2 )
else write (chr(ord('A')+t[i] -10):2)
end;
begin
lecture (b1,b2,ch);
som(ch,b1,s);
divi(b2,s);
end. |
Partager