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

Нужно написать программу которая возводит число(n) в какой то системе счисления(p) в какую то другую (q). (системы счисления до 10) самое главное, не понимаю как перевести число в десятичную систему счисления на паскале(не всю если программу то хотя бы этот цикл по возведению числа в степень) .

Ответ:
lewaq
lewaq
04.10.2020 03:52
Function aToDec(n:string;k:integer):longint;
{ Перевод из системы по основанию k в десятичную }
var
  i:integer;
  pa,s:longint;
begin
  s:=0;
  pa:=1;
  for i:=Length(n) downto 1 do begin
    s:=s+pa*(Ord(n[i])-Ord('0'));
    pa:=pa*k
    end;
  aToDec:=s
end;

function DecToa(n:longint;k:integer):string;
{ Перевод из десятичной системы в систему по основанию k }
var
  s:string;
  c:integer;
begin
  s:='';
  c:=Ord('0');
  while n>0 do begin
    s:=Chr(c+n mod k)+s;
    n:=n div k
    end;
  DecToa:=s
end;

function AtoB(s:string;A,B:integer):string;
{ Перевод из системы по основанию A в систему по основанию B }
begin
  AtoB:=DecToa(aToDec(s,A),B)
end;
    
var
  a,b:integer;
  n:string;
begin
  Write('Число в c/c по основанию [2;10]: '); Readln(n);
  Writeln('Укажите исходное и результирующее основания: ');
  Read(a,b);
  Writeln(n,'(',a,') = ',AtoB(n,a,b),'(',b,')');
end.

Пример решения
Число в c/c по основанию [2;10]: 643342414
Укажите исходное и результирующее основания:
7 9
643342414(7) = 80050347(9)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?