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