// 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 end end;
function DecToa(n,k:integer):string; // Перевод из десятичной системы в систему по основанию k begin 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 end end;
function AtoB(s:string;A,B:integer):string; // Перевод из системы по основанию A в систему по основанию B begin 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 16 2018(10) = 7E2(16)
Var S, chislo: string; i,A,B,C,E: integer; Begin B := 0; WriteLn('Введите выражение: '); ReadLn(S); i := S.length; While (i > 0) do begin Case S[i] of '+': begin val(chislo,A,E); B := B + A; chislo := ''; end; '-': begin val(chislo,A,E); B := B - A; chislo := ''; end; else chislo := S[i] + chislo; End; i := i - 1; end; if (chislo <> '') then begin val(chislo,A,E); B := B + A; end; WriteLn(B); End.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку