Главная / Инструменты, алгоритмы и структуры данных / Необходимыми условиями корректно определенного рекурсивного метода является существование у метода ветви без рекурсии и разные контексты у каждого рекурсивного вызова. Рассмотрим метод с циклом: cicle do from Init until Exit loop Body end end Заменим его

Необходимыми условиями корректно определенного рекурсивного метода является существование у метода ветви без рекурсии и разные контексты у каждого рекурсивного вызова. Рассмотрим метод с циклом: cicle do from Init until Exit loop Body end end Заменим его методом recursive do Init; loop_eqviv end с вызовом рекурсивного метода: loop_eqviv do if not Exit then Body; loop_eqviv end end Какие утверждения справедливы относительно корректности такой замены?

вопрос

Правильный ответ:

такая замена некорректна, поскольку не выполняется необходимое условие существования у рекурсивного метода не рекурсивной ветви
у метода loop_eqviv существует не рекурсивная ветвь. Когда выполняется условие выхода, то можно полагать, что выполняется ветвь без рекурсии (пустая в данном случае), завершающая выполнение метода
такая замена некорректна, поскольку не выполняется необходимое условие изменения контекста при каждом вызове рекурсивного метода
контекст у рекурсивного метода меняется автоматически
контекст каждого вызова будет меняться только при выполнении условий, предполагаемых по умолчанию для этой схемы замены цикла рекурсией:
  • Все модули Init, Exit, Body определены над полями класса - глобальной для метода информацией;
  • Init задает начальный контекст вызова;
  • Каждое выполнение Body изменяет контекст и уменьшает значение варианта метода, гарантируя завершаемость.
  • завершаемость метода cicle гарантирует завершаемость метода loop_eqviv
    Сложность вопроса
    61
    Сложность курса: Инструменты, алгоритмы и структуры данных
    89
    Оценить вопрос
    Очень сложно
    Сложно
    Средне
    Легко
    Очень легко
    Комментарии:
    Аноним
    Это было сложно
    17 май 2018
    Аноним
    Это очень элементарный вопрос intuit.
    03 ноя 2016
    Оставить комментарий
    Другие ответы на вопросы из темы программирование интуит.