hex_dec.PAS

{* Перевод десятичного числа в шестнадцатеричное *}

Unit HEX_DEC;
Interface
Implementation
Begin
 writeln('Перевод из десятичного числа в шестнадцатеричное');
End.

Program pas;

Uses hex_dec.pas; {* Эту строку можно удалить *}
Var {* Объявление переменных *}
  a                  : String;
Function HEX_DEC(x : String); {* Вычтем из x : String единицу *}
{* Предопределенные *}
digits             : Array [0..15] Of char = ('0''1''2''3''4''5''6''7''8''9''A''B''C''D''E''F');
Var {* Объявление переменных *}
  res : longint;
  ves : longint;
  i   : byte;
  j   : byte;
Begin
  res := 0;
  ves := 1;
  For i := length(x) Downto 1 Do
  Begin
    j := 0;
    a[i] := UpCase(a[i]);
    While (digits[j]x[i]) Do
      inc(j); {* j++ *}
    res := res + ves * j;
    ves := ves * 16;
  End;
  HEX_DEC := res;
End;
Begin
  readln( a );
  writeln( HEX_DEC(a) ); {* Вычтем из a) единицу *}
End.