ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 6213. Авторская задача

Исполнитель Чертёжник действует на плоскости с декартовой системой координат, в которой единица длины по каждой из осей соответствует одному сантиметру. В начальный момент Чертёжник находится в начале координат, перо опущено. При опущенном пере Чертёжник оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя.

У исполнителя существует 3 команды: Поднять перо, означающая переход к перемещению без рисования; Опустить перо, означающая переход в режим рисования; Сместиться x, y (где x, y — целые числа), вызывающая перемещение Чертёжника из текущего положения в точку с координатами x, y.

Чертёжнику был дан для исполнения следующий алгоритм:

Сместиться 19, -18
Опустить перо
Сместиться -5, 0
Сместиться -5, 28
Сместиться 15, 49
Сместиться 40, 30
Сместиться 40, 9
Сместиться 19, -18
Поднять перо
Сместиться 15, 49
Опустить перо
Сместиться 100, 49
Сместиться 100, 22
Сместиться 70, 22
Сместиться 91, -6
Сместиться 28, -6
Сместиться 15, 49

Определите периметр области объединения фигур, ограниченных заданными алгоритмом линиями.

from turtle import *

tracer(0)

teleport(19, -18)

# --- if Python < 3.12 ---
# pu()
# goto(20,40)
# pd()
# --- end if ---

# Первая фигура
begin_poly()
goto(-5, 0)
goto(-5, 28)
goto(15, 49)
goto(40, 30)
goto(40, 9)
goto(19, -18)
end_poly()

coords_1 = get_poly()
lens_1 = []
for coord in coords_1[1:]:
    lens_1.append(distance(*coord))
    goto(coord)

teleport(15, 49)

# Вторая фигура
begin_poly()
goto(100, 49)
goto(100, 22)
goto(70, 22)
goto(91, -6)
goto(28, -6)
goto(15, 49)
end_poly()

coords_2 = get_poly()
lens_2 = []

for coord in coords_2[1:]:
    lens_2.append(distance(*coord))
    goto(coord)

# Находим часть стороны между точками (28, -6) и (19, -18)
teleport(28, -6)
len_part = distance(19, -18)

perimeter = sum(lens_1[:3]) + sum(lens_2[:5]) + len_part
print(perimeter)
update()
done()
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие