Регистрация
Войти
Стать экспертом Правила
Информатика

Помогите, пожалуйста! Нужно написать программу, которая будет переводить из любой системы счисления в десятеричную. И должны присутствовать mod и div, желательно покороче!

ОТВЕТЫ
Var
  s:string;
  m,pk:real;
  a:array[1..20] of real;
  i,k,n:integer;
begin
  Write(Введите число в системе счисления с основанием [2;16]: );
  Readln(s);
  n:=Length(s);
  for i:=1 to n do begin
    if s[i] in [0..9] then a[i]:=Ord(s[i])-Ord(0)
    else
      if s[i] in [A..F] then a[i]:=Ord(s[i])-Ord(A)+10
      else
        if s[i] in [a..f] then a[i]:=Ord(s[i])-Ord(a)+10
        else begin
          Writeln(Символ ,s[i], недопустим!);
          Exit
          end
    end;
  Write(Введите основание системы счисления: ); Read(k);
  if (klt;2) or (kgt;16) then begin
    Writeln(Такое значение недопустимо!);
    Exit
    end;
  m:=a[n];
  pk:=k;
  for i:=n-1 downto 1 do begin
    m:=m+a[i]*pk;
    pk:=pk*k
    end;
  Writeln(Десятичный эквивалент введенного числа равен ,m)
end.

Тестовое решение
Введите число в системе счисления с основанием [2;16]: 4e32Ca
Введите основание системы счисления: 16
Десятичный эквивалент введенного числа равен 5124810

180
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам