Ответ:
ВОТ
Объяснение:
const cf:string[16]='0123456789ABCDEF'; //цифры в СС 16
tt:array[1..16] of string[4]= ('0000','0001','0010','0011', //тетрады в СС16
'0100','0101','0110','0111',
'1000','1001','1010','1011',
'1100','1101','1110','1111');
var s16,s2,s:string;
f:boolean;
i,j:byte;
begin
repeat
writeln('Введите число в СС 16');
readln(s16);
s16:=uppercase(s16);//переводим в верхний регистр
if s16[1]='-' then i:=2 else i:=1;
while(i<=length(s16))and(pos(s16[i],cf)>0) do inc(i);
if i<=length(s16) then writeln('Число введено неверно, повторите');
until i>length(s16);
f:=s16[1]='-'; //отрицательное
s2:=''; //переводим в СС 2
if f then delete(s16,1,1);
for i:=1 to length(s16) do
s2:=s2+tt[pos(s16[i],cf)];
if f then s2:='-'+s2;
writeln('Число в СС 2=',s2)
end.