Задание 14 Параграф 7 ГДЗ Босова 11 класс (Информатика)
Для перевода числа в троичную систему надо последовательно делить число на 3 до тех пор, пока остаток не станет меньше 3
Остаток от деления можно определять через mod.
Число формируется с конца. Первая цифра – единицы, вторая – десятки, третья сотни и т.д. Для этого меняем коэффициент i, от сначала 1, затем 10, затем 100 и т.д.
Число получаем суммированием остатков от деления на 3 умноженных на коэффициент.
Например, для 22:
(22 mod 3)*1 +((22 div 2) mod 3)*10+(((22 div 3) div 3) mod 3)*100=211
program Z_7_14;
var
n, tr, i: integer;
begin
write(‘Введите число ‘);
read(n);
i := 1; tr:=0;
while n < > 0 do
begin
tr := tr + i * (n mod 3);
n := (n div 3);
i := i * 10
end;
writeln(tr)
end.
Программа: Z_7_14.pas (ссылка ниже)
Чтобы перевести десятичное натуральное число в троичную систему, нужно последовательно делить его на $$3$$ и записывать остатки. Остатки образуют запись числа в троичной системе, но в обратном порядке, поэтому удобно накапливать их справа налево.
Для этого используем переменную $$i$$ как разрядный коэффициент: сначала $$1$$, потом $$10$$, затем $$100$$ и т. д. На каждом шаге прибавляем к результату остаток от деления на $$3$$, умноженный на текущий коэффициент:
$$tr = tr + i \cdot (n \bmod 3)$$
После этого число делим на $$3$$:
$$n = n \div 3$$
и увеличиваем коэффициент в $$10$$ раз:
$$i = i \cdot 10$$
Например, для $$22$$ получаем:
$$22_{10} = 211_3$$
program Z_7_14;
var
n, tr, i: integer;
begin
write(‘Введите число ‘);
read(n);
i := 1;
tr := 0;
while n <> 0 do
begin
tr := tr + i * (n mod 3);
n := n div 3;
i := i * 10
end;
writeln(tr)
end.
Ответ
Программа переводит десятичное натуральное число в троичную систему счисления.