Нужно написать программу, которая переводит шестнадцатеричное число в десятичное. у меня возникли проблемы, не знаю что делать с буквами a b c d e f, вот что я написал: var a, x, y, n, q, p, z, i, w: integer; b: array [1..99999] of integer; begin writeln; write('введите число: '); read(a); write('введите систему, в которой находится число: '); read(w); q: =a; n: =1; if w=16 then begin write(q,' в шестнадцатеричной системе = '); repeat x: =a mod 10; y: =a div 10; b[n]: =x; a: =y; n: =n+1; until y=0; end; z: =1; for i: =1 to n-1 do begin b[i]: =b[i]*z; z: =z*w; end; p: =0; for i: =1 to n-1 do p: =p+b[i]; write(p,' в десятичной системе '); end.

Щерсть Щерсть    2   19.06.2019 20:10    2

Ответы
помоги270 помоги270  02.10.2020 05:40
Const
  d = '0123456789';

var
  i, m, k: longint;
  c: char;
  n: string;

begin
  Write('Введите шестнадцатиричное число: '); Readln(n);
  m := 0;
  while n[1] = '0' do delete(n, 1, 1);
  for i := 1 to length(n) do
  begin
    c := n[i];
    case c of
      'F', 'f': k := 15;
      'E', 'e': k := 14;
      'D', 'd': k := 13;
      'C', 'c': k := 12;
      'B', 'b': k := 11;
      'A', 'a': k := 10;
    else k := Pos(c, d) - 1
    end;
    m := 16 * m + k
  end;
  Writeln(n, '(16)=', m, '(10)')
end.

Тестовое решение:
Введите шестнадцатиричное число: 1A2B3C
1A2B3C(16)=1715004(10)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика