Рекурсивный перевод в различные системы счисления - Turbo Pascal
Формулировка задачи:
Дано натуральное число n>1. Перевести его в систему счисления 7.
Решение задачи: «Рекурсивный перевод в различные системы счисления»
textual
Листинг программы
function recursion(n:longint):string; var ch:char; begin if n<>0 then begin ch:=char(n mod 7 +48); recursion:=recursion(n div 7)+ch; end else recursion:=''; end; var n:longint; begin write('Введите натуральное число>0: '); readln(n); writeln('Семиричная система: ',recursion(n)); readln; end.
Объяснение кода листинга программы
- В функции
recursion
переменнойn
присваивается значение, введенное пользователем. - Если
n
не равно нулю, то выполняется рекурсивный вызов функцииrecursion
сn
деленным на 7. - Результат рекурсивного вызова присваивается переменной
ch
. - Значение
ch
преобразуется в символьное представление с помощью функцииchar
. - Полученное символьное представление добавляется к результату предыдущего вызова функции
recursion
. - Если
n
равно нулю, то функция возвращает пустую строку. - В основной программе пользователю предлагается ввести натуральное число больше или равное нулю.
- Введенное число
n
передается в функциюrecursion
. - Результат выводится на экран.