|
hex_dec.PAS |
|
{* Перевод десятичного числа в шестнадцатеричное *}Unit HEX_DEC; InterfaceImplementationBegin 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.
|