2W8EP7 - Исполнитель Черепаха передвигается по плоскости и оставляет след в виде …
логилея
логилея
№ 2W8EP7 (Уровень сложности: Базовый)
Основная волна 18.06.2026
Исполнитель Черепаха передвигается по плоскости и оставляет след в виде линии. У исполнителя существует 6 команд:
  • Поднять хвост, означающая переход к перемещению без рисования;
  • Опустить хвост, означающая переход в режим рисования;
  • Вперёд n (где n — целое число), вызывающая передвижение Черепашки на n единиц в том направлении, куда указывает её голова;
  • Назад n (где n — целое число), вызывающая передвижение в противоположном голове направлении;
  • Направо n (где n — целое число), вызывающая изменение направления движения на n градусов по часовой стрелке;
  • Налево n (где n — целое число), вызывающая изменение направления движения на n градусов против часовой стрелки.
В начальный момент Черепаха находится в начале координат и направлена вверх (вдолььположительного направления оси ординат).
Запись Повтори k [Команда 1 Команда 2 … Команда S] означает, что заданнаяьпоследовательность из S команд повторится k раз.

Черепаха выполнила следующую программу:
Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90]
Поднять хвост
Вперёд 9 Направо 90 Назад 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90]

Определите, сколько точек с целочисленными координатами находятся внутри пересечения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Правильный ответ:
42
Текстовое решение:
Для решения задания воспользуемся встроенной в Python библиотекой turtle
Где команда данным в задании, соответствуют следующие:
Вперед n - это forward(n),
Назад n - backward(n), 
Направо n - right(n),
Налево n - left(n),
Поднять хвост - up(),
Опустить хвост - down(),
Повтори k - это цикл for, который будет выполнен k раз - for i in range(k)

# импортируем библиотеку turtle
from turtle import *
# поворачиваем черепашку на 90 градусов влево
# чтобы направить вдоль оси ординат (Y)
left(90)

# задаем размер окна, чтобы была возможность передвигать картинку
screensize(5000, 5000)

# задаем масштаб, чтобы картинка была больше
# масштаб применяем только к команде forward() и goto()
scale = 35

# отключаем отображение процессса рисования, чтобы ускорить процесс
tracer(0)

# переписываем программу из задания
for i in range(2):
forward(14 * scale)
left(270)
backward(12 * scale)
right(90)

up()
forward(9 * scale)
right(90)
backward(7 * scale)
left(90)
down()

for i in range(2):
forward(13 * scale)
right(90)
forward(6 * scale)
right(90)

# поднимаем хвост и строим поле из точек
up()
for x in range(-100, 100):
for y in range(-100, 100):
goto(x * scale, y * scale)
dot(3, 'purple')

done() # чтобы окно не закрывалось сразу после завершения программы

Получаем следующую фигуру 

Нас интересует только пересечение двух фигур, Пересечение - область, которая одновременно принадлежит обеим фигурам 
Считаем количество точек внутри пересечения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях

Получаем 6 линий точек, в каждой линии по 7 точек, итого 7 х 6 = 42 точки