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

В лабораторной работе предполагается создание 2-х вариантов всех программ: на языке программирования С (gcc) и Pascal (FreePascal).
  1. Проверить работоспособность рекурсивных программ, разработанных на лекциях: подсчета факториала, инверсии вводимых данных, закраски ограниченной области. Модифицировать созданные программы для автоматизации оценки максимальной глубины рекурсии.

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

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