Conversion 16-10
Page 1 sur 1
Conversion 16-10
uses wincrt;
var
ch:string;
function test(ch:string):boolean;
var
i:integer;
begin
i:=1;
while (ch[i] in ['0'..'9','A'..'F']) and (i<length(ch)) do
i:=i+1;
if(not(ch[i] in ['0'..'9','A'..'F'])) then test:=false
else test:=true;
end;
procedure saisir_ch(var ch:string);
begin
repeat
write('ch=');
readln(ch);
until(test(ch));
end;
function puissance(x,y:integer):longint;
var
i,p:longint;
begin
p:=1;
for i:=1 to y do
p:=p*x;
puissance:=p;
end;
function conv1610(ch:string):integer;
var
i,d,e,s:integer;
begin
s:=0;
for i:=length(ch) downto 1 do
begin
if(ch[i] in ['0'..'9']) then
begin
val(ch[i],d,e);
s:=s+(d*puissance(16,length(ch)-i));
end
else
begin
d:=ord(ch[i])-55;
s:=s+(d*puissance(16,length(ch)-i));
end;
end;
conv1610:=s;
end;
begin
saisir_ch(ch);
writeln(conv1610(ch));
end.
var
ch:string;
function test(ch:string):boolean;
var
i:integer;
begin
i:=1;
while (ch[i] in ['0'..'9','A'..'F']) and (i<length(ch)) do
i:=i+1;
if(not(ch[i] in ['0'..'9','A'..'F'])) then test:=false
else test:=true;
end;
procedure saisir_ch(var ch:string);
begin
repeat
write('ch=');
readln(ch);
until(test(ch));
end;
function puissance(x,y:integer):longint;
var
i,p:longint;
begin
p:=1;
for i:=1 to y do
p:=p*x;
puissance:=p;
end;
function conv1610(ch:string):integer;
var
i,d,e,s:integer;
begin
s:=0;
for i:=length(ch) downto 1 do
begin
if(ch[i] in ['0'..'9']) then
begin
val(ch[i],d,e);
s:=s+(d*puissance(16,length(ch)-i));
end
else
begin
d:=ord(ch[i])-55;
s:=s+(d*puissance(16,length(ch)-i));
end;
end;
conv1610:=s;
end;
begin
saisir_ch(ch);
writeln(conv1610(ch));
end.
Imen ESSASSI- Messages : 9
Date d'inscription : 21/02/2018
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|