Задание 6 ЕГЭ по информатике: решайте с автопроверкой

В задании 6 исполнитель Черепаха рисует фигуру по командам «Вперёд», «Направо», «Повтори». Нужно посчитать точки с целыми координатами внутри фигуры или на её границе, иногда для пересечения или объединения двух фигур.

Решать задачи номера

Как решать программой

На экзамене задачу часто решают, рисуя фигуру модулем turtle и считая точки по сетке. Надёжнее посчитать их программой: повторите путь Черепахи, найдите вершины фигуры и переберите все целые точки в охватывающем прямоугольнике.

Черепаха смотрит вверх, вдоль оси Y, поэтому шаг длины n под углом a (по часовой стрелке от оси Y) меняет координаты на n·sin(a) по x и на n·cos(a) по y. Округляйте координаты вершин: синус и косинус считаются приближённо.

Для прямоугольника со сторонами вдоль осей точка лежит внутри, если её координаты строго между краями. Для наклонной фигуры понадобится проверка, по какую сторону от каждой стороны лежит точка. Решите сначала простой случай, потом переходите к задачам с двумя фигурами.

Разбор примера

Черепаха выполняет «Повтори 2 [Вперёд 6 Направо 90 Вперёд 9 Направо 90]» и рисует прямоугольник. Посчитаем целые точки строго внутри.

from math import cos, sin, radians

a, b = 6, 9
x = y = 0.0
angle = 0  # 0 — вверх, углы по часовой стрелке
pts = [(0, 0)]
for _ in range(2):
    for step in (a, b):
        x += step * sin(radians(angle))
        y += step * cos(radians(angle))
        pts.append((round(x), round(y)))
        angle += 90
xs = [p[0] for p in pts]
ys = [p[1] for p in pts]
print(sum(1 for px in range(min(xs) + 1, max(xs))
          for py in range(min(ys) + 1, max(ys))))

Программа печатает

40

Фигура — это прямоугольник 9 на 6. Внутри по оси X лежат значения от 1 до 8, по оси Y от 1 до 5, всего 8 · 5 = 40 точек. Ответ совпадает с формулой (a − 1) · (b − 1), но программа работает и для фигур, где формулы нет.

Решить эту задачу

Задачи к заданию 6

  • Точки внутри прямоугольникаЛёгкаяРешать
  • Точки на линии прямоугольникаЛёгкаяРешать
  • Общая часть двух прямоугольниковЛёгкаяРешать
  • Прямоугольник и квадрат вместеСредняяРешать
  • ЛесенкаСредняяРешать
  • Равносторонний треугольникСредняяРешать
  • Правильный шестиугольникСредняяРешать
  • КрестСредняяРешать
  • Параллелограмм с углом 45°СредняяРешать
  • Линия одной фигуры внутри другойСредняяРешать
  • Внутри ровно одной фигурыЛёгкаяРешать
  • Наименьший треугольникСредняяРешать
  • Правильный восьмиугольникСредняяРешать
  • Повёрнутый прямоугольникСредняяРешать
  • Квадрат без треугольникаСредняяРешать

Бесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).

Вопросы и ответы

Можно ли решить задание 6 без модуля turtle?
Да. Достаточно повторить путь Черепахи арифметикой и проверить точки по координатам, как в примере.
Считаются ли точки на линии?
Это зависит от условия: в одних задачах их считают, в других нет. Перечитайте вопрос перед запуском программы.
Почему координаты получаются вроде 5.999999?
Синус и косинус вычисляются приближённо. Округляйте вершины или сравнивайте с небольшим допуском.