{ Programa: hexa.pas Aluno...: Gustavo Sverzut Barbieri RA......: 008849 LAB.....: 02 Prof....: Arnaldo V. Moura } program hexa; var a1,a2,a3,a4,a5 : char; {Caracteres de entrada} b1,b2,b3,b4,b5 : integer; {Numeros Inteiros Correspondentes} n : integer; {Numero correspondente} v : boolean; begin {zerar as variaveis para evitar 'lixo'} a1:=' '; a2:=' '; a3:=' '; a4:=' '; a5:=' '; b1:=0; b2:=0; b3:=0; b4:=0; b5:=0; {V=true --> numero invalido} v:=false; {Ler uma entrada de 5 chars} readln(a1,a2,a3,a4,a5); {Achar o numero correspondente ao char de entrada} {1o digito} case ord(a1) of 48..57: b1:=ord(a1)-48; 65..70: b1:=ord(a1)-55; 97..102: b1:=ord(a1)-87; else v:=true; end; { case } {2o digito} case ord(a2) of 48..57: b2:=ord(a2)-48; 65..70: b2:=ord(a2)-55; 97..102: b2:=ord(a2)-87; else v:=true; end; { case } {3o digito} case ord(a3) of 48..57: b3:=ord(a3)-48; 65..70: b3:=ord(a3)-55; 97..102: b3:=ord(a3)-87; else v:=true; end; { case } {4o digito} case ord(a4) of 48..57: b4:=ord(a4)-48; 65..70: b4:=ord(a4)-55; 97..102: b4:=ord(a4)-87; else v:=true; end; { case } {5o digito} case ord(a5) of 48..57: b5:=ord(a5)-48; 65..70: b5:=ord(a5)-55; 97..102: b5:=ord(a5)-87; else v:=true; end; { case } if v=false then begin n:=b1*(16*16*16*16) + b2*(16*16*16) + b3*(16*16) + b4*(16) + b5; writeln(n); end else writeln("Numero invalido"); end.