Лабораторная 2. Рекурсия

В лабораторной работе предполагается создание программ на языке программирования С.
  1. Проверить работоспособность рекурсивных программ подсчета факториала, расчета числа фибоначчи, инверсии вводимых данных, закраски ограниченной области. Последнюю программу модифицировать для автоматизации оценки максимальной глубины рекурсии.

  2. Модифицировать программу закраски ограниченной области, преобразовав хвостовую рекурсию в цикл (сокращение 1 рекурсивного вызова). Модифицировать полученную программу, заменив рекурсию по горизонтали циклом (сокращение 2 рекурсивных вызовов). Оценить максимальную глубину рекурсии для 3-х версий алгоритма закраски ограниченной области: 1) исходной, 2) с сокращением 1 рекурсивного вызова, 3) с сокращением 2-х рекурсивных вызовов.

  3. Для различных исходных данных научиться предсказывать максимальную глубину рекурсии в алгоритме закраски ограниченной области. Предполагается использование области не более чем из 10 точек, формируемой преподавателем. Проверка производится для трех версий алгоритма на языке, выбранном преподавателем. Каждая версия алгоритма зачитывается после трех верных предсказаний подряд.