Написать программу для перевода числа, представленного в системе счисления с основанием S, в системы счисления с основаниями P, Q, R. Обеспечить корректность ввода числа в системе счисления с основанием S. Перевод чисел реализовать с применением функций. (Разработайте функцию для перевода числа из системы счисления с основанием S в систему счисления с основанием P, а затем, функции для перевода из P в Q и из P в R). Не использовать стандартных возможностей по вводу/выводу чисел представленных в 2-ой, 8-ой, 16-ой системах счисления. Для представления цифр больших 9 использовать заглавные буквы латинского алфавита — Pascal(Паскаль)

uses
  crt;
var
  cs1,cs2,res,change:integer;
  TD:string;
  DT:integer;
{функция перевода 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('Введите число в 13 СС:');
  readln(TD);
  writeln('13->10');
  writeln(ToDec(TD,13));
  writeln('Введите число в 10 СС:');
  readln(DT);
  writeln('10->8');
  writeln(FromDec(DT,8));
  writeln('10->14');
  writeln(FromDec(DT,14))
end.

Leave a Comment

74 + = 79