Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 6. Информатика. ЕГЭ. Статград. База. 12.05.2025-1
- Просмотры: 1074
- Изменено: 12 мая 2025
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 2 команды: Вперёд \(n\) (где \(n\) — целое число), вызывающая передвижение Черепахи на \(n\) единиц в том направлении, куда указывает её голова; Направо \(m\) (где \(m\) — целое число), вызывающая изменение направления движения на \(m\) градусов по часовой стрелке. Запись Повтори \(k\) [Команда1 Команда2 … КомандаS] означает, что последовательность из \(S\) команд повторится \(k\) раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 13 [Вперёд 17 Налево 90 Вперёд 15 Налево 90] Поднять хвост Вперёд 10 Налево 90 Вперёд 10 Направо 90 Опустить хвост Повтори 40 [Вперёд 100 Направо 90 Вперёд 200 Направо 90]
Определите периметр области объединения фигур, ограниченных заданными алгоритмом линиями.
Решение:
Python
from turtle import *
tracer(0)
screensize(3800, 2500)
k = 7
up()
for x in range(-210, 6):
for y in range(-100, 21):
goto(x * k, y * k)
dot(3, 'blue') if x * y % 5 == 0 else dot(2, 'grey')
goto(0, 0)
lt(90)
down()
pensize(2)
for _ in range(13):
fd(17 * k)
lt(90)
fd(15 * k)
lt(90)
up()
fd(10 * k)
lt(90)
fd(10 * k)
rt(90)
down()
for _ in range(40):
fd(100 * k)
rt(90)
fd(200 * k)
rt(90)
ht()
update()
done()
Рисунок, который получается после выполнения программы:

Получившаяся фигура — это объединение двух прямоугольников \(17 \times 15\) и \(100 \times 200,\) а в пересечении лежит прямоугольник со сторонами \(10 \times 7.\) Поэтому периметром области объединения будет \(P = 2 \cdot (100 + 200) + 2 \cdot (15 + 17) - 2 \cdot (10 + 7) = 630.\)
Ответ: \(630\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


