Написать рекурсивную процедуру, переводящую целое число из десятичной системы счисления в шестнадцатеричную. Обязательно используя косвенную рекурсию, а не прямую.
IUnknown
29.02.2012 4:17
Зачем этот изврат? Преподавателю надо во что бы то ни стало объяснить наличие в языке директивы 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, правда? А это уже косвенная рекурсия.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.