{ Programa: hexa.pas Aluno...: Gustavo Sverzut Barbieri RA......: 008849 LAB.....: 02 Prof....: Arnaldo V. Moura } program hexa; var a : array[1..5] of char; {Vetor para receber a Entrada} b : array[1..5] of integer; {Vetor para receber Codigo Correspondente } n : integer; {Numero correspondente} i : integer; {Contador para o 'for'} v : boolean; {para controle de erro(Numero invalido)} begin {B eh verdadeira de inicio, se for falsa, `numero invalido`} v:=true; {Ler uma entrada de 5 chars} readln(a[1],a[2],a[3],a[4],a[5]); {Achar o numero correspondente ao char de entrada} for i:=1 to 5 do begin case ord(a[i]) of 48..57: b[i]:=ord(a[i])-48; 65..70: b[i]:=ord(a[i])-55; 97..102: b[i]:=ord(a[i])-87; else v:=false; end; end; if v = true then begin {Faz transformacao} n:=b[1]*(16*16*16*16) + b[2]*(16*16*16) + b[3]*(16*16) + b[4]*(16) + b[5]; writeln(n); end else writeln('Numero invalido'); end.