Краткий ответ. Исходная процедура рисует последовательность квадратов со сторонами
\[
a,\ a-5,\ a-10,\ldots,-150.
\]
После этого при \(a=-155\) выполняется условие остановки. Положительные и отрицательные значения \(a\) дают квадраты по разные стороны от общей вершины.
Как работает алгоритм
- Цикл
нц 4 развыполняет 4 движения и 4 поворота на \(90^\circ\), поэтому получается квадрат. - После построения вызывается процедура с меньшим параметром: \[ a \longrightarrow a-5. \]
- При \(a=-150\) квадрат ещё рисуется, так как условие \(a<-150\) ложно.
- Затем вызывается процедура с \(a=-155\), и программа останавливается.
- При \(a=0\) видимой фигуры нет: черепаха только поворачивается.
Например, при вызове чертеж(90) значения параметра будут:
\[ 90,85,\ldots,5,0,-5,\ldots,-150. \]
Получатся вложенные квадраты; при отрицательных значениях черепаха движется «назад».
Процедура с параметром \(k\)
Чтобы рисовать правильный \(k\)-угольник, нужно сделать \(k\) повторений и поворачивать черепаху на внешний угол:
\[ \frac{360^\circ}{k}. \]
использовать Черепаха
алг чертеж (цел а, цел k)
нач
если а < -150
то стоп
все
нц k раз
вперед (а); вправо (360/k)
кц
чертеж (а-5, k)
кон
Примеры вызовов:
чертеж (90, 3) // треугольники
чертеж (90, 4) // квадраты
чертеж (90, 5) // пятиугольники
чертеж (90, 6) // шестиугольники
Проверка: после \(k\) поворотов общий угол равен
\[
k\cdot\frac{360^\circ}{k}=360^\circ,
\]
поэтому черепаха возвращается в исходное направление и может нарисовать следующую фигуру из той же точки.
Ещё один вариант — квадратная спираль:
алг спираль (цел а)
нач
если а <= 0
то стоп
все
вперед (а); вправо (90)
спираль (а-5)
кон
