Вопрос:

12. В среде КуМир исследуйте алгоритм для Черепахи, содержащий рекурсивную процедуру: использовать Черепаха; алг черепашка (цел а); нач; если а < -150 то стоп; все; нц 4 раз вперед (а); вправо (90); кц; чертеж (а-5); кон. Проследите, что получится при изменении значения параметра а. Добавьте параметр k — количество углов основной фигуры Черепашки. Предложите свои варианты рисунков, которые можно получить с помощью рекурсии.

Ответ:

Процедура сначала проверяет условие остановки: если \(a < -150\), рекурсия прекращается.

Затем выполняется цикл из 4 повторений. Черепаха проходит вперёд на расстояние \(a\) и поворачивает направо на \(90^\circ\), поэтому рисует квадрат со стороной \(a\). После этого снова вызывается процедура с параметром \(a-5\).

Получается последовательность параметров:

\(a,\ a-5,\ a-10,\ a-15,\ldots\), пока значение не станет меньше \(-150\).

  • При \(a=10\) будут построены квадраты со сторонами \(10, 5, 0, -5,\ldots,-150\), а при следующем значении \(-155\) работа остановится.
  • При \(a=0\) построятся квадраты со сторонами \(0,-5,-10,\ldots,-150\).
  • При \(a=-150\) будет построен один квадрат, после чего при \(a=-155\) произойдёт остановка.
  • При \(a=-155\) рисунок не появится, так как условие остановки выполняется сразу.

После каждого квадрата Черепаха возвращается в исходную точку и сохраняет направление движения. Поэтому квадраты имеют общую вершину; при изменении длины стороны получается узор из вложенных или пересекающихся квадратов.

Вариант с параметром \(k\):

использовать Черепаха
алг многоугольник (цел а, k)
нач
  если а < -150
  то стоп
  все
  нц k раз
    вперед (а)
    вправо (360 / k)
  кц
  многоугольник (а - 5, k)
кон

Здесь \(k\) — количество углов правильного многоугольника, а угол поворота равен \(360/k\).

  • \(k=3\) — треугольники, поворот на \(120^\circ\);
  • \(k=4\) — квадраты, поворот на \(90^\circ\);
  • \(k=5\) — пятиугольники, поворот на \(72^\circ\);
  • \(k=6\) — шестиугольники, поворот на \(60^\circ\);
  • \(k=8\) — восьмиугольники, поворот на \(45^\circ\).

Для правильного многоугольника обычно выбирают \(k \geq 3\).

Другие варианты рисунков:

  1. Уменьшать сторону не на 5, а на другое число, например \(a-2\) или \(a-10\). Чем меньше шаг, тем больше линий в рисунке.
  2. Изменять угол поворота при каждом рекурсивном вызове — получится закручивающийся узор.
  3. После построения фигуры поворачивать Черепаху на дополнительный угол, например на \(15^\circ\). Фигуры будут постепенно поворачиваться относительно общей вершины.
  4. Вместо правильных многоугольников рисовать звёзды, изменив угол поворота, например на \(144^\circ\) для пятиконечной звезды.
  5. Ограничить рекурсию условием \(a > 1\) и каждый раз уменьшать длину стороны, чтобы получить аккуратный узор из уменьшающихся фигур.

Ответ: алгоритм рисует последовательность правильных многоугольников с общей вершиной; вид фигур определяется параметром \(k\), а число фигур — начальными значением \(a\) и шагом уменьшения параметра.