Перевод числа из любой системы счисления в любую другую - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

нужно написать код. Перевод числа из любой системы счисления в любую. Что бы там было основание любой системы счисления, основание целевой системы счисления и результат желательно самым простым способом, без меню и с комментариями. Буду премного благодарен)))

Решение задачи: «Перевод числа из любой системы счисления в любую другую»

textual
Листинг программы
  1. uses
  2.   crt;
  3. var
  4.   cs1,cs2,res,change:integer;
  5.   TD:string;
  6. {функция перевода Dec числа в любую сс}
  7. function FromDec(n,r:longint):string;
  8. var
  9.   s:String;
  10. const
  11.   digit:string[16]='0123456789ABCDEF';
  12. begin
  13.   s:='';
  14.   repeat
  15.     s:=digit[(n mod r)+1]+s;
  16.     n:=n div r;
  17.   until n=0;
  18.     FromDec:=s;
  19. end;
  20. {фунция перевода любой сс в Dec}
  21. function ToDec(n:string;r:longint):longint;
  22. var
  23.   m,i:longint;
  24. const
  25.   digit:string[16]='0123456789ABCDEF';
  26. begin
  27.   m:=0;
  28.   while n[1]='0' do
  29.     delete(n,1,1);
  30.   for i:=1 to length(n) do
  31.     m:=m*r+pos(n[i],digit)-1;
  32.   ToDec:=m;
  33. end;
  34. {осоновная программы}
  35. begin
  36.   writeln('Введите из какой CC:');
  37.   repeat
  38.     readln(cs1);
  39.   until
  40.     (cs1>=2) and (cs1<=36);
  41.   writeln('Введите число в соответствии с CC:');
  42.   readln(TD);
  43.   writeln('Введите в какую CC:');
  44.   repeat
  45.     readln(cs2);
  46.   until
  47.     (cs2>=2) and (cs2<=36);
  48.   writeln('Перевод из ',cs1,' CC --> ',cs2,' CC:');
  49.   writeln(FromDec(ToDec(TD,cs1),cs2));
  50. end.

Объяснение кода листинга программы

  1. Объявлены переменные cs1, cs2, res, change: integer; TD: string;
  2. Функция FromDec(n,r: longint): string; принимает два параметра: n - десятичное число, r - основание системы счисления.
  3. В функции используется цикл repeat, который выполняется до тех пор, пока n не станет равным 0.
  4. Внутри цикла к переменной s добавляется символ, соответствующий основанию системы счисления (r), умноженному на остаток от деления n на r.
  5. Затем переменная n делится на r.
  6. После выполнения цикла, результат записывается в переменную s и возвращается из функции.
  7. Функция ToDec(n: string; r: longint): longint; принимает два параметра: n - строка, представляющая число в любой системе счисления, r - основание системы счисления.
  8. В функции используется цикл while, который выполняется до тех пор, пока первый символ строки n не станет равным 0.
  9. Внутри цикла удаляется первый символ строки n.
  10. Затем для каждого символа строки n вычисляется его позиция в системе счисления (pos(n[i], digit)-1), где digit - массив символов, представляющих цифры в системе счисления.
  11. Результат умножается на r и добавляется к переменной m.
  12. После выполнения цикла, результат записывается в переменную m и возвращается из функции.
  13. В основной программе пользователю предлагается ввести исходную систему счисления (cs1), затем число в этой системе счисления (TD), и, наконец, целевую систему счисления (cs2).
  14. Результатом выполнения программы будет перевод числа TD из исходной системы счисления (cs1) в целевую систему счисления (cs2), выводимый на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы