Вопрос по информатике:
Помогите пожалуйста!
Нужно написать программу которая возводит число(n) в какой то системе счисления(p) в какую то другую (q). (системы счисления до 10)
Самое главное, не понимаю как перевести число в десятичную систему счисления на паскале(не всю если программу то хотя бы этот цикл по возведению числа в степень) .
- 07.07.2018 00:45
- Информатика
- remove_red_eye 10120
- thumb_up 25
Ответы и объяснения 1
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)
- 08.07.2018 15:26
- thumb_up 39
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.