Занятие 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.
|