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

Черепаха выполнила следующую программу:
Направо 45 Повтори 7 [Вперёд 5 Направо 45 Вперёд 10 Направо 135].

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

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

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

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

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

# переписываем программу из задания
right(45)
for i in range(7):
forward(5 * scale)
right(45)
forward(10 * scale)
right(135)

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

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

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

Считаем количество точек внутри области ограниченной линией, точки на линиях не учитываем 
Получаем 3 линии точек, в каждой линии по 9 точек, итого получаем 9 x 3 = 27 точек