|
program n_in_k_sys;
uses crt;
var n, p:longint; {n-число}
j, r, k:integer;
Begin
clrscr;
Write('Введите n: ');
Readln(n);
Write('Введите k: ');
Readln(k);
p:=n; {сохраняем n в p}
while p > 0 do
begin
p:= p div k; {целое от деления будем дальше делить}
inc(r); {инкремент или увеличение на 1}
end;
if n = 0 then r:=1;
Write('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод}
Readln;
end.
Задача2:
вывести представление этого числа на экран в системе k.
Описание:
Сделаем вывод этого числа на экран. Для его представления будем брать символы из таблицы кодов ASCII(смотри функцию Chr). Эта программа написана на основе "Троичная система".
Код:
program n_in_k_sys_2;
uses crt;
const
lim=20; {размер массива}
var n, p:longint; {n-число}
j, r, k:integer;
mas:array[1..lim] of integer; {массив, в котором храниться число в k-ичной записи}
Begin
clrscr;
Write('Введите n: ');
Readln(n);
Write('Введите k: ');
Readln(k);
p:=n; {сохраняем n в p}
for j:= 1 to lim do {цикл по всем элементам массива}
begin
mas[j]:= p mod k; {остаток от деления в массив}
p:= p div k; {целое от деления будем дальше делить}
end;
for j:= 1 to lim do
if (mas[j]<>0) then r:=j; {считаем число ненулевых ячеек в массиве}
if n= 0 then r:=1;
Writeln('n в системе счисления с основанием ',k,' займет ',r,' разрядов'); {вывод числа}
Write(n,' in 10 = ');
for j:= r downto 1 do
Write(Chr(mas[j]+48)); {выводим число, кодируя его символами таблицы ASCII}
Write(' in ',k);
Readln;
end.
|
|