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

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

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

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

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

textual
Листинг программы
uses
  crt;
var
  cs1,cs2,res,change:integer;
  TD:string;
{функция перевода Dec числа в любую сс}
function FromDec(n,r:longint):string;
var
  s:String;
const
  digit:string[16]='0123456789ABCDEF';
begin
  s:='';
  repeat
    s:=digit[(n mod r)+1]+s;
    n:=n div r;
  until n=0;
    FromDec:=s;
end;
{фунция перевода любой сс в Dec}
function ToDec(n:string;r:longint):longint;
var
  m,i:longint;
const
  digit:string[16]='0123456789ABCDEF';
begin
  m:=0;
  while n[1]='0' do
    delete(n,1,1);
  for i:=1 to length(n) do
    m:=m*r+pos(n[i],digit)-1;
  ToDec:=m;
end;
{осоновная программы}
begin
  writeln('Введите из какой CC:');
  repeat
    readln(cs1);
  until
    (cs1>=2) and (cs1<=36);
  writeln('Введите число в соответствии с CC:');
  readln(TD);
  writeln('Введите в какую CC:');
  repeat
    readln(cs2);
  until
    (cs2>=2) and (cs2<=36);
  writeln('Перевод из ',cs1,' CC --> ',cs2,' CC:');
  writeln(FromDec(ToDec(TD,cs1),cs2));
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
Похожие ответы