Занятие 12. Перевод числа в систему счисления с основанием от 2 до 9
Задание:
Перевести число из десятичной системы счисления в системы счисления с
основанием от 2 до 9.
Решение:
{Программа для перевода числа из 10
системы счисление (СС) в СС с онованием
от 2 до 9}
Var
Num: integer; // Число в
СС с основанием 10
OsnSS: integer; // Основание
системы счисления
DivOst: integer;
// Остаток от деления
DivRes: integer;
// Результат деления
i: integer; // Счетчик
цикла
Begin
cls;
Writeln('Введите число:');
Read(Num);
for
i:=2 to 9 do
begin
OsnSS:=i;
Write('Основание СС:', OsnSS, ' ');
DivRes:=Num;
While(DivRes>=OsnSS) do
Begin
DivOst:=DivRes
mod OsnSS;
DivRes:=DivRes
div OsnSS;
Write(DivOst);
End;
Write(DivRes); Writeln();
end;
End.
Var
N, i, g, K: integer;
otv, str: string;
OsnSS: integer;
Function ResultInHex(lNum: integer): string;
const s1: array [1..16] of string = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
Var str: string;
Begin
str:=s1[lNum+1];
ResultInHex:= str;
End;
Function FromDec(lNumber: integer; lOsnSS: integer): string;
Var
str: string;
ost, res, k: integer;
OstStr: string; ResStr: string;
Begin
str:='';
res:=N;
ost:=0;
K:=0;
while true do
begin
ost:=res Mod lOsnSS;
res:=res Div lOsnSS;
k:=k+1;
OstStr:=ResultInHex(ost);
str:=OstStr+str;
if res<lOsnSS then break;
end;
ResStr:=ResultInHex(res);
str:=ResStr+str;
FromDec:=str;
End;
Begin
cls;
write('Введие число:');
readln(N);
for i:=2 to 16 do
begin
OsnSS:=i;
writeln('Osnovanie=',i, ' res=', FromDec(N, OsnSS));
end;
end.