Conversion 16-10

Aller en bas

Conversion 16-10

Message par Imen ESSASSI le Mar 3 Avr - 20:06

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.

Imen ESSASSI

Messages : 9
Date d'inscription : 21/02/2018

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum