Исполнитель Черепаха действует на плоскости с декартовой системой координат.
В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая перемещение в противоположном голове направлении; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке; Налево m (где m — целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 3 [Вперёд 2 Направо 90 Вперёд 3 Налево 90]
Направо 180 Вперёд 6 Направо 90 Вперёд 9
Поднять хвост
Назад 3 Направо 90
Опустить хвост
Повтори 2 [Вперёд 1 Направо 90 Вперёд 2 Налево 90]
Направо 180 Вперёд 3 Направо 90 Вперёд 4 Направо 90 Вперёд 1
Определите периметр области пересечения фигур, ограниченных заданным алгоритмом линиями.
Решение:
Напишем код на Python, который создаст изображение и посчитаем на нем точки

from turtle import *
k = 10
tracer(0)
for i in range(3):
forward(2*k)
right(90)
forward(3*k)
left(90)
right(180)
forward(6*k)
right(90)
forward(9*k)
up()
back(3*k)
right(90)
down()
for i in range(2):
forward(1*k)
right(90)
forward(2*k)
left(90)
right(180)
forward(3*k)
right(90)
forward(4*k)
right(90)
forward(1*k)
up()
for x in range(-50, 50):
for y in range(-50, 50):
goto(x*k, y*k)
dot(5, 'red')
exitonclick()
Ответ: 12