В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Goym
Goym
04.09.2021 04:04 •  Информатика

Нужно написать программу, которая переводит шестнадцатеричное число в десятичное. у меня возникли проблемы, не знаю что делать с буквами 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.

Показать ответ
Ответ:
bragi2015
bragi2015
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)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота