// PascalABC.NET 3.3, сборка 1625 от 17.01.2018// Внимание! Если программа не работает, обновите версию!function aToDec(n:string;k:integer):integer;// Перевод из системы по основанию k в десятичнуюbegin var s:='0123456789ABCDEF'; Result:=0; var pa:=1; for var i:=Length(n) downto 1 do begin Result+=pa*(Pos(n[i],s)-1); pa*=k endend;function DecToa(n,k:integer):string;// Перевод из десятичной системы в систему по основанию kbegin Result:=''; while n>0 do begin var r:=n mod k; if r<10 then Result:=r+Result else Result:=Chr(Ord('A')+r-9)+Result; n:=n div k endend;function AtoB(s:string;A,B:integer):string;// Перевод из системы по основанию A в систему по основанию Bbegin Result:=DecToa(aToDec(s,A),B)end; begin var n:=ReadlnString('Какое число перевести?'); var (a,b):=ReadInteger2('Исходное и результирующее основания:'); Writeln(n,'(',a,') = ',AtoB(n,a,b),'(',b,')');end.
ПримерКакое число перевести? 2018Исходное и результирующее основания: 10 162018(10) = 7E2(16)