Помощь - Поиск - Пользователи - Календарь
Полная версия: Косвенная рекурсия
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
iNika
Написать рекурсивную процедуру, переводящую целое число из десятичной системы счисления в шестнадцатеричную. Обязательно используя косвенную рекурсию, а не прямую.
IUnknown
Зачем этот изврат? Преподавателю надо во что бы то ни стало объяснить наличие в языке директивы Forward? Пишешь обычную рекурсивную функцию перевода X10 -> Y16 и подменяешь прямой рекурсивный вызов на косвенный (через дополнительную функцию) :

function F(n : Longint) : string; forward;

function DecToHex(n : Longint) : string;
begin
if n = 0 then DecToHex := ''
else
DecToHex := F(n) + digit[Succ(n mod 16)];
end;
Как будет выглядеть функция F - попробуй написать самостоятельно. В любом случае для вычисления ее значения понадобится вызов DecToHex, правда? А это уже косвенная рекурсия.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.