Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится B начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению 6eз рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении; Направо t (где t — целое число), вызывающая изменение направления движения на t градусов по часовой стрелке, Налево t (где t — целое число), вызывающая изменение направления движения на t градусов против часовой стрелки. Запись
Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 14 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 3 Направо 90 Вперёд 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 74 Направо 90 Вперёд 92 Направо 90].
Определите площадь объединения фигур, ограниченного заданными алгоритмом линиями.
Приведём решение на языке КуМир.
Выберите масштаб сетки равным 1, запустите программу для исполнителя Черепаха.
использовать Черепаха
алг
нач
опустить хвост
нц 2 раз
вперед(14)
вправо(90)
вперед(18)
вправо(90)
кц
поднять хвост
вперед (3)
вправо(90)
вперед (7)
влево(90)
опустить хвост
нц 2 раз
вперед (74)
вправо(90)
вперед (92)
вправо(90)
кц
кон
Площадь объединения фигур равна сумме площадей двух прямоугольников минус площадь пересечения.
Площадь большого прямоугольника 74 · 92=6808. Площадь маленького 14 · 18=252. Площадь пересечения (считаем по точкам в рисунке) 11 · 11 = 121. Площадь объединения фигур, ограниченного заданными алгоритмом линиями 6808+252-121= 6939
Ответ: 6939.
Приведём построение рисунка на языке Python.
from turtle import *
m = 20 # Масштаб
tracer(0)
screensize(5000, 5000) # увеличим размер окна
pd() # опускаем хвост
left(90) # поворачиваем голову в сторону
# положительного направления оси ординат
# Алгоритм
for i in range(2):
forward(14 * m)
right(90)
forward(18 * m)
right(90)
pu() # поднимаем хвост
forward(3 * m)
right(90)
forward(7 * m)
left(90)
pd() # опускаем хвост
for i in range(2):
forward(74 * m)
right(90)
forward(92 * m)
right(90)
pu()# поднимаем хвост
# Проставление точек
for x in range(-10, 100):
for y in range(-10, 110):
goto(x * m, y * m)
dot(3)
done()

