Перевод из 10-ичной в 3-ичную систему счисления - QBasic
Формулировка задачи:
Ребят, у меня тут возникла следующая проблема. Мне нужно выполнить следующие задание :
(Дано целое число n<80. Вывести его в троичной системе счисления)
Помогите пожалуйста.Решение задачи: «Перевод из 10-ичной в 3-ичную систему счисления»
textual
Листинг программы
DECLARE FUNCTION d2tRec& (n&) DECLARE FUNCTION d2tLng& (m&) n& = 123 PRINT d2tLng(n&), d2tRec(n&) FUNCTION d2tLng& (m&) n = m& p = 1 DO d2t = (n MOD 3) * p + d2t n = n \ 3 p = p * 10 LOOP WHILE n d2tLng = d2t END FUNCTION FUNCTION d2tRec& (n&) IF n& THEN d2tRec = d2tRec(n& \ 3) * 10 + n& MOD 3 END FUNCTION
Объяснение кода листинга программы
Предположительно, код выполняет перевод числа из десятичной системы счисления в трехзначную. Список действий, которые выполняются в коде:
- Дело в функции d2tLng:
a. Переменная
nпринимает значение аргумента функцииm. b. Переменнаяpинициализируется значением 1. c. Начинается цикл DO, который выполняется, пока значение переменнойnбольше 0. d. В каждой итерации цикла значение переменнойd2tобновляется следующим образом: i. Вычисляется остаток от деления значения переменнойnна 3. ii. Это значение умножается на значение переменнойpи добавляется к переменнойd2t. iii. Значение переменнойnделится на 3. iv. Значение переменнойpумножается на 10. e. Код выходит из цикла DO, когда значение переменнойnстановится равным 0. f. Значение переменнойd2tLngприсваивается значению переменнойd2t. - Дело в функции d2tRec:
a. Если значение переменной
nбольше 0, то выполняется следующее: i. Значение переменнойd2tRecвычисляется как произведение значения функцииd2tRecдля аргументаn \ 3и числа 10, к которому прибавляется остаток от деленияnна 3. ii. Значение переменнойnделится на 3. - В основной части программы:
a. Значение переменной
nприсваивается 123. b. Вызывается функцияd2tLngс аргументомn. c. Вызывается функцияd2tRecс аргументомn. d. Выводится значение функцииd2tLngи значение функцииd2tRec.