Решение задания №6 ЕГЭ по информатике: черепаха и координаты

Решение задания №6 ЕГЭ по информатике на Python — Черепаха и координаты

Задание №6 ЕГЭ по информатике — это исполнитель Черепаха. Вам дают алгоритм движения, а нужно посчитать количество точек с целочисленными координатами внутри получившейся фигуры.
Вручную это делать — гиблое дело. Но есть способ проще: написать программу на Python с библиотекой turtle, которая визуализирует движение и показывает все точки.
В этой статье мы:
  • разберем основные команды библиотеки turtle;
  • напишем код для решения;
  • разберем его по шагам;
  • покажем, как считать точки.

1. Библиотека turtle — что это и зачем

turtle — это стандартная библиотека Python, которая позволяет рисовать, управляя "черепахой" на экране. Она идеально подходит для задания №6, потому что:

  • команды совпадают с командами исполнителя из условия;
  • можно визуально увидеть фигуру;
  • можно нанести сетку и посчитать точки.

Как подключить:

from turtle import *

2. Основные команды turtle

Вот таблица команд, которые используются в задании:

Основные команды Черепашки
Важно: В библиотеке turtle по умолчанию голова направлена вправо (вдоль оси X). В условии задачи голова направлена вверх (вдоль оси Y). Поэтому в начале программы нужно развернуть черепаху:
left(90)  # поворачиваем на 90 градусов влево

3. Структура for _ in range(n)

В задании используется конструкция:

for _ in range(2):
    # команды, которые повторяются 2 раза
Здесь _ — это имя переменной, которое означает "мне не важно, какое сейчас значение". Мы просто говорим: "повтори код 2 раза".

Это эквивалентно:
for i in range(2):
    # команды, которые повторяются 2 раза
Но _ используется, когда переменная не нужна в теле цикла.

4. Разбор конкретного задания

Возьмем задание из варианта ЕГЭ:

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

У исполнителя существует 6 команд: Поднять хвост, Опустить хвост, Вперёд n, Назад n, Направо m, Налево m.

Запись Повтори k [Команда1 Команда2 ... КомандаS] означает, что последовательность из S команд повторится k раз.

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

Повтори 2 [Вперёд 13 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Вперёд 8 Направо 90 Назад 3 Налево 90
Опустить хвост
Повтори 2 [Вперёд 16 Направо 90 Вперёд 8 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.

5. Готовый код

from turtle import *

tracer(0)          # отключаем анимацию для скорости
left(90)           # разворачиваем голову вверх
screensize(2000, 2000)  # увеличиваем поле

k = 20             # масштаб (чтобы точки не сливались)

# Первый прямоугольник
for _ in range(2):
    forward(13 * k)
    right(90)
    forward(20 * k)
    right(90)

# Перемещение между фигурами
up()
forward(8 * k)
right(90)
back(3 * k)
left(90)
down()

# Второй прямоугольник
for _ in range(2):
    forward(16 * k)
    right(90)
    forward(8 * k)
    right(90)

# Рисуем точки
up()
for x in range(-20, 25):
    for y in range(50):
        goto(x * k, y * k)
        dot('red')

update()           # обновляем экран
done()             # не закрываем окно

6. Разбор кода по шагам

Шаг 1. Импорт и настройка

from turtle import *
tracer(0)
left(90)
screensize(2000, 2000)
  • from turtle import * — импортируем все команды библиотеки.
  • tracer(0) — отключает анимацию, чтобы всё рисовалось мгновенно.
  • left(90) — разворачиваем голову вверх (как в условии).
  • screensize(2000, 2000) — увеличиваем поле, чтобы поместилась фигура.
Шаг 2. Масштабирование
k = 20
Черепаха перемещается на указанное количество пикселей. Чтобы чётко видеть точки на экране, мы умножаем все расстояния на k = 20. Это не меняет сути задачи, просто масштабирует рисунок.
Шаг 3. Первый прямоугольник
for _ in range(2):
    forward(13 * k)
    right(90)
    forward(20 * k)
    right(90)
Черепаха рисует прямоугольник 13 × 20.
Как это работает:
  1. Идём вперёд на 13.
  2. Поворачиваем направо на 90°.
  3. Идём вперёд на 20.
  4. Поворачиваем направо на 90°.
  5. Повторяем 2 раза → получаем замкнутый прямоугольник.
Шаг 4. Перемещение между фигурами
up()
forward(8 * k)
right(90)
back(3 * k)
left(90)
down()
  • up() — поднимаем хвост, чтобы не рисовать линию.
  • Перемещаемся в новую позицию (8 шагов вверх, затем 3 шага назад после поворота).
  • down() — опускаем хвост, снова рисуем.
Шаг 5. Второй прямоугольник
for _ in range(2):
    forward(16 * k)
    right(90)
    forward(8 * k)
    right(90)
Второй прямоугольник 16 × 8.
Шаг 6. Рисуем точки
up()
for x in range(-20, 25):
    for y in range(50):
        goto(x * k, y * k)
        dot('red')
  • up() — поднимаем хвост, чтобы не рисовать линии между точками.
  • Два вложенных цикла перебирают координаты x и y.
  • goto(x * k, y * k) — перемещаемся в точку с нужными координатами (умноженными на масштаб).
  • dot('red') — ставим красную точку.
Диапазоны range(-20, 25) и range(50) взяты с запасом, чтобы покрыть всю фигуру.
Шаг 7. Завершение
update()
done()
  • update() — обновляет экран (нужно, так как мы использовали tracer(0)).
  • done() — оставляет окно открытым, чтобы можно было рассмотреть результат.
Вывод пути черепашки

7. Как считать точки

После запуска программы вы увидите фигуру с красными точками. Теперь нужно посчитать точки, которые попали внутрь фигуры (учитывая точки на линиях).

Вывод пути черепашки
Гораздо проще сделать это вручную по координатам, а не писать сложные условия.
Шаг 1. Определяем размеры прямоугольников
В коде мы рисовали два прямоугольника:
Первый прямоугольник:
for _ in range(2):
    forward(13 * k)
    right(90)
    forward(20 * k)
    right(90)
Выделенный первый прямоугольник
  • Сторона A: 13 шагов → 14 точек (включая начальную и конечную).
  • Сторона B: 20 шагов → 21 точка.
Количество точек в первом прямоугольнике: 14 × 21 = 294
Второй прямоугольник:
for _ in range(2):
    forward(16 * k)
    right(90)
    forward(8 * k)
    right(90)
Выделенный второй прямоугольник
  • Сторона A: 16 шагов → 17 точек.
  • Сторона B: 8 шагов → 9 точек.
Количество точек во втором прямоугольнике: 17 × 9 = 153
Шаг 2. Находим пересечение
Выделенный прямоугольник пересечения
По рисунку видно, что прямоугольники пересекаются. Пересечение — это прямоугольник размером 6 × 6.
Количество точек в пересечении: 6 × 6 = 36
Шаг 3. Считаем объединение
Точки пересечения мы посчитали дважды (в первом и во втором прямоугольнике), поэтому их нужно вычесть.
Объединение фигур = 294 + 153 − 36 = 411
Ответ: 411

8. Как упростить визуальный подсчёт

Чтобы легче было считать точки на экране, можно уменьшить или увеличить масштаб k.

  • Если k = 40, расстояние между точками большое, их удобно считать. Но справедливо только для небольших фигур
  • Если k = 20, точки большие и видно каждую.
  • Если k = 5, точек больше на экране, но они мелкие.

В любом случае выбирайте комфортный коэффициент в зависимости от задания и вашего монитора. В большинстве случаев удобно использовать k = 20 — точки хорошо видны, и их можно пересчитать по сетке.

9. Главный вывод

Задание №6 можно решить с помощью Python и библиотеки turtle:

  1. Визуализация — сразу видно, что получается.
  2. Точность — компьютер рисует точно по координатам.
  3. Подсчёт — считаем вручную по размерам прямоугольников, вычитая пересечение.

Алгоритм решения:

  1. Импортировать turtle и настроить экран.
  2. Развернуть голову вверх (left(90)).
  3. Задать масштаб (k = 20).
  4. Нарисовать фигуры по алгоритму.
  5. Нанести сетку точек.
  6. Посчитать точки внутри фигуры по формуле: (a+1)*(b+1) для каждого прямоугольника, вычесть пересечение (для объединения фигур.).

Нужна помощь с подготовкой?

Я — Олег Алексеевич, репетитор по информатике. Готовлю к ЕГЭ более 15 лет.

На своих занятиях мы:

  • разбираем структуру экзамена и стратегии решения;
  • пишем код на Python так, чтобы он работал с первого раза;
  • отрабатываем сложные задания 26 и 27 на реальных примерах.

Хотите попробовать? Запишитесь на первое занятие — познакомимся, определим ваш уровень и составим план подготовки.

Переходите на мой сайт, чтобы узнать подробности и записаться: Репетиторы рядом

Made on
Tilda