Задание 6 ЕГЭ по информатике 2027: исполнитель Черепаха
- Раздел
- Алгоритмы и программирование
- Максимальный балл
- 1 балл
- Уровень
- базовый
- Что проверяет
- Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов
- Что нужно сделать
- Выполнить программу для Черепахи и посчитать точки с целыми координатами внутри фигуры, в пересечении или объединении фигур.
- Как записать ответ
- только число: целое, без пробелов и единиц измерения
- Время
- Около 4 минут по обобщённому плану ФИПИ
- Элемент кодификатора
- 3.3
- Компьютер
- Специальное ПО по плану ФИПИ не нужно: задание решают рассуждением, программа — для проверки
- Файл к заданию
- Нет — все данные в условии
- В 2026 году
- Тоже задание 6
Задание 6 ЕГЭ по информатике 2027 года проверяет, по формулировке обобщённого плана ФИПИ, «определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов». Это задача про исполнителя Черепаха: дан алгоритм из команд «Вперёд», «Назад», «Направо», «Налево», «Поднять хвост», «Опустить хвост» и циклов «Повтори», а спросить могут, сколько точек с целыми координатами попало внутрь нарисованной фигуры, в её пересечение, в объединение или на границу.
Файла нет, специализированное ПО не требуется: все данные есть в тексте. Уровень базовый, около 4 минут, за верный ответ — 1 балл. В списке изменений 2027 года задание 6 не названо: «Изменения структуры КИМ отсутствуют». Средний процент выполнения по методическим рекомендациям ФИПИ — 39,8 в 2025 году и 63,6 в 2026 году.
Тренажёр задания 6
Десять заданий номера 6 из банка тренажёра — с файлами, как на станции КЕГЭ. Решайте в песочнице Python прямо на странице или у себя; ответ проверяется по ключу, после проверки — верный ответ, разбор и решение на Python, а при ошибке — разбор от ИИ. Кнопка «Ещё 5 таких» у типа задания ниже даёт задания одного типа.
Задание 6 вместе с остальными — в вариантах целиком.
Типы задания 6 с решением
Пересечение фигур: точки с целыми координатами
Исполнитель Черепаха: старт в начале координат, голова вдоль оси ординат, хвост опущен. Дан алгоритм:
Повтори 2 [Вперёд 52 Направо 90 Вперёд 20 Направо 90] Поднять хвост Вперёд 43 Направо 90 Вперёд 12 Налево 90 Опустить хвост Повтори 2 [Вперёд 5 Направо 90 Вперёд 30 Направо 90]
Сколько точек с целыми координатами лежит в пересечении фигур, включая границы? Для этого примера ответ — 54.
1. Первый цикл обводит прямоугольник 20 × 52 с углом в начале координат. 2. С поднятым хвостом Черепаха переходит в точку (12; 43) — там начинается прямоугольник 30 × 5. 3. На станции удобно нарисовать фигуры turtle в масштабе k = 10, отметить точки dot() в целых узлах и пересчитать их по рисунку.
На примере: первая фигура занимает 0 ≤ x ≤ 20 и 0 ≤ y ≤ 52, вторая — 12 ≤ x ≤ 42 и 43 ≤ y ≤ 48. Общая часть: 9 значений x и 6 значений y, ответ 9 · 6 = 54.
import turtle
k = 10 # масштаб: 1 единица условия — 10 пикселей
turtle.tracer(0) # рисунок появляется сразу, без анимации
turtle.left(90) # голова Черепахи смотрит вверх, как в условии
def rectangle(a, b):
"""Обводит прямоугольник: сторона a — вдоль головы, сторона b — поперёк."""
for _ in range(2):
turtle.forward(a * k)
turtle.right(90)
turtle.forward(b * k)
turtle.right(90)
rectangle(52, 20) # первая фигура: 0 <= x <= 20, 0 <= y <= 52
turtle.up() # Поднять хвост: перенос без следа
turtle.forward(43 * k)
turtle.right(90)
turtle.forward(12 * k)
turtle.left(90)
turtle.down() # вторая фигура начинается в точке (12; 43)
rectangle(5, 30) # вторая фигура: 12 <= x <= 42, 43 <= y <= 48
turtle.up() # точки отмечаем, не проводя лишних линий
count = 0
for px in range(12, 21): # общая часть по x: 12 <= x <= 20
for py in range(43, 49): # общая часть по y: 43 <= y <= 48
turtle.goto(px * k, py * k)
turtle.dot(4) # точка в целом узле сетки
count += 1
turtle.update()
print(count) # 9 · 6 = 54
Ответ: 54
Объединение фигур: точки с целыми координатами
Исполнитель Черепаха: старт в начале координат, голова вдоль оси ординат, хвост опущен. Дан алгоритм:
Повтори 2 [Вперёд 42 Направо 90 Вперёд 21 Направо 90] Поднять хвост Вперёд 13 Направо 90 Вперёд 5 Налево 90 Опустить хвост Повтори 2 [Вперёд 18 Направо 90 Вперёд 31 Направо 90]
Сколько точек с целыми координатами лежит в объединении фигур, включая точки на линиях? Для этого примера ответ — 1231.
1. Первая фигура — прямоугольник 21 × 42: 0 ≤ x ≤ 21, 0 ≤ y ≤ 42; точки с границей 22 · 43 = 946. 2. Вторая — прямоугольник 31 × 18 с углом в (5; 13): 5 ≤ x ≤ 36, 13 ≤ y ≤ 31; точек 32 · 19 = 608. 3. Общая часть: 5 ≤ x ≤ 21 и 13 ≤ y ≤ 31, всего 17 · 19 = 323. 4. Общие точки вычитаем один раз.
На примере: 946 + 608 − 323 = 1231.
DIR = {0: (1, 0), 90: (0, 1), 180: (-1, 0), 270: (0, -1)}
def figures(program):
"""Выполняет алгоритм Черепахи; возвращает контуры фигур в координатах."""
def flat(cmds): # Повтори -> плоский список команд
return [c for cmd in cmds
for c in (flat(cmd[2]) * cmd[1] if cmd[0] == 'repeat' else [cmd])]
x = y = 0
angle, pen = 90, True # старт: начало координат, голова вверх
paths, path = [], [(0, 0)]
for c in flat(program):
if c[0] == 'forward':
dx, dy = DIR[angle % 360]
x, y = x + c[1] * dx, y + c[1] * dy
if pen:
path.append((x, y))
elif c[0] == 'right':
angle -= c[1]
elif c[0] == 'left':
angle += c[1]
elif c[0] == 'up':
paths.append(path)
pen, path = False, []
else: # 'down'
pen, path = True, [(x, y)]
paths.append(path)
return paths
PROGRAM = [
('repeat', 2, [('forward', 42), ('right', 90), ('forward', 21), ('right', 90)]),
('up',),
('forward', 13), ('right', 90), ('forward', 5), ('left', 90),
('down',),
('repeat', 2, [('forward', 18), ('right', 90), ('forward', 31), ('right', 90)]),
]
def box(path):
"""Габариты фигуры: (min x, max x, min y, max y)."""
xs = [p[0] for p in path]
ys = [p[1] for p in path]
return min(xs), max(xs), min(ys), max(ys)
first, second = figures(PROGRAM)
x1, x2, y1, y2 = box(first)
a1, a2, b1, b2 = box(second)
first_count = (x2 - x1 + 1) * (y2 - y1 + 1) # точки первой фигуры с границей
second_count = (a2 - a1 + 1) * (b2 - b1 + 1) # точки второй фигуры
left, right = max(x1, a1), min(x2, a2)
bottom, top = max(y1, b1), min(y2, b2)
common = max(0, right - left + 1) * max(0, top - bottom + 1)
print(first_count + second_count - common) # включение-исключение: 1231
Ответ: 1231
Точки внутри одной фигуры
Исполнитель Черепаха: старт в начале координат, голова вдоль оси ординат, хвост опущен. Дан алгоритм:
Повтори 2 [Вперёд 36 Направо 90 Вперёд 43 Направо 90 Вперёд 29 Налево 90 Вперёд 9 Направо 90 Вперёд 7 Направо 90 Вперёд 52 Направо 90]
Сколько точек с целыми координатами лежит внутри фигуры, включая точки на её границе? Для этого примера ответ — 1700.
1. Контур — прямоугольник 52 × 36, из которого вырезан угол 9 × 29; Повтори 2 обводит его дважды, каждый отрезок считаем один раз. 2. Площадь: S = 52 · 36 − 9 · 29 = 1611. 3. Граничные точки — сумма длин сторон: 36 + 43 + 29 + 9 + 7 + 52 = 176. 4. Формула Пика S = В + Г2 − 1; нужное число точек В + Г = S + Г2 + 1.
На примере: 1611 + 88 + 1 = 1700.
import math
DIR = {0: (1, 0), 90: (0, 1), 180: (-1, 0), 270: (0, -1)}
def outline(program):
"""Выполняет алгоритм Черепахи; возвращает один обход контура без повторов."""
def flat(cmds): # Повтори -> плоский список команд
return [c for cmd in cmds
for c in (flat(cmd[2]) * cmd[1] if cmd[0] == 'repeat' else [cmd])]
x = y = 0
angle, pen = 90, True # старт: начало координат, голова вверх
path = [(0, 0)]
for c in flat(program):
if c[0] == 'forward':
dx, dy = DIR[angle % 360]
x, y = x + c[1] * dx, y + c[1] * dy
if pen:
path.append((x, y))
elif c[0] == 'right':
angle -= c[1]
elif c[0] == 'left':
angle += c[1]
# Повтори обводит контур несколько раз: оставляем отрезки по одному разу
adj = {}
for seg in {frozenset(p) for p in zip(path, path[1:])}:
a, b = tuple(seg)
adj.setdefault(a, []).append(b)
adj.setdefault(b, []).append(a)
start = min(adj)
cycle, prev, cur = [start], None, start
while True:
nxt = next(v for v in adj[cur] if v != prev)
prev, cur = cur, nxt
if cur == start:
break
cycle.append(cur)
return cycle
PROGRAM = [
('repeat', 2, [
('forward', 36), ('right', 90),
('forward', 43), ('right', 90),
('forward', 29), ('left', 90),
('forward', 9), ('right', 90),
('forward', 7), ('right', 90),
('forward', 52), ('right', 90),
]),
]
cycle = outline(PROGRAM)
edges = list(zip(cycle, cycle[1:] + cycle[:1]))
double_area = sum(x1 * y2 - x2 * y1 for (x1, y1), (x2, y2) in edges) # формула шнурков
border = sum(math.gcd(abs(x2 - x1), abs(y2 - y1)) for (x1, y1), (x2, y2) in edges)
# формула Пика S = В + Г/2 − 1, значит В + Г = S + Г/2 + 1
print(abs(double_area) // 2 + border // 2 + 1)
Ответ: 1700
Точки на границе фигуры
Исполнитель Черепаха: старт в начале координат, голова вдоль оси ординат, хвост опущен. Дан алгоритм:
Повтори 2 [Вперёд 32 Направо 90 Вперёд 4 Направо 90 Вперёд 22 Налево 90 Вперёд 45 Направо 90 Вперёд 10 Направо 90 Вперёд 49 Направо 90]
Сколько точек с целыми координатами лежит на линиях, ограничивающих фигуру? Для этого примера ответ — 162.
1. Контур — шесть отрезков, Повтори 2 обводит его дважды, каждый отрезок считаем один раз. 2. У отдельного отрезка с разностями координат (dx; dy) на нём gcd(|dx|, |dy|) + 1 целых точек, включая оба конца. Сумма gcd по всем отрезкам замкнутого контура даёт все точки на линиях: каждая вершина считается один раз. 3. Здесь отрезки идут вдоль осей, поэтому gcd равен длине.
На примере: 32 + 4 + 22 + 45 + 10 + 49 = 162.
import math
DIR = {0: (1, 0), 90: (0, 1), 180: (-1, 0), 270: (0, -1)}
def outline(program):
"""Выполняет алгоритм Черепахи; возвращает один обход контура без повторов."""
def flat(cmds): # Повтори -> плоский список команд
return [c for cmd in cmds
for c in (flat(cmd[2]) * cmd[1] if cmd[0] == 'repeat' else [cmd])]
x = y = 0
angle, pen = 90, True # старт: начало координат, голова вверх
path = [(0, 0)]
for c in flat(program):
if c[0] == 'forward':
dx, dy = DIR[angle % 360]
x, y = x + c[1] * dx, y + c[1] * dy
if pen:
path.append((x, y))
elif c[0] == 'right':
angle -= c[1]
elif c[0] == 'left':
angle += c[1]
# Повтори обводит контур несколько раз: оставляем отрезки по одному разу
adj = {}
for seg in {frozenset(p) for p in zip(path, path[1:])}:
a, b = tuple(seg)
adj.setdefault(a, []).append(b)
adj.setdefault(b, []).append(a)
start = min(adj)
cycle, prev, cur = [start], None, start
while True:
nxt = next(v for v in adj[cur] if v != prev)
prev, cur = cur, nxt
if cur == start:
break
cycle.append(cur)
return cycle
PROGRAM = [
('repeat', 2, [
('forward', 32), ('right', 90),
('forward', 4), ('right', 90),
('forward', 22), ('left', 90),
('forward', 45), ('right', 90),
('forward', 10), ('right', 90),
('forward', 49), ('right', 90),
]),
]
cycle = outline(PROGRAM)
# сумма gcd по замкнутому контуру — все целые точки на линиях, каждая вершина один раз
print(sum(math.gcd(abs(x2 - x1), abs(y2 - y1))
for (x1, y1), (x2, y2) in zip(cycle, cycle[1:] + cycle[:1])))
Ответ: 162
Шаблон кода на Python
Черепаха: рисунок в масштабе и точки в узлах
Программу Черепахи переписываете командами turtle и умножаете длины на масштаб k. Точки в целых узлах помогают посчитать ответ по рисунку — в песочнице он появится под выводом.
from turtle import *
tracer(0) # рисовать сразу, без анимации
k = 20 # масштаб: единица условия — 20 точек экрана
left(90) # голова Черепахи — вдоль оси ординат
for i in range(2):
forward(8 * k); right(90); forward(12 * k); right(90)
# точки в целых узлах вокруг фигуры
up()
for x in range(-2, 15):
for y in range(-2, 11):
goto(x * k, y * k)
dot(3)
done()Вывода нет — в песочнице под кодом появится рисунок.
Как выполнять задание
- Помните старт: Черепаха в начале координат, голова вдоль положительного направления оси ординат, хвост опущен — первое «Вперёд» ведёт вверх.
- Разверните циклы: Повтори k [ … ] повторяет команды k раз; проследите движение и выпишите координаты поворотов.
- При поднятом хвосте линия не рисуется: следующая фигура начинается из сдвинутой точки.
- Уточните вопрос: точки строго внутри, вместе с границей, в пересечении, в объединении или только на линиях.
- Если решаете программой, нарисуйте фигуры модулем turtle в масштабе k = 10 (перед рисованием нужен left(90) — в Python голова сначала смотрит вправо), отметьте точки dot() и пересчитайте их по рисунку либо посчитайте точки формулами по координатам фигур. В ответ идёт одно целое число.
Что нужно знать
- Чтение алгоритма. Старт — начало координат, голова вдоль оси ординат. «Направо 90» поворачивает по часовой стрелке, «Налево 90» — против, «Назад n» ведёт против направления головы.
- Цикл. Повтори k [Вперёд a Направо 90 Вперёд b Направо 90] при k ≥ 2 обводит один и тот же прямоугольник a × b; поднятый хвост линию не рисует, а переносит Черепаху.
- Прямоугольник a × b со сторонами вдоль осей: строго внутри (a − 1)(b − 1) точек, вместе с границей (a + 1)(b + 1).
- Пересечение и объединение. Пересечение — прямоугольник [max(x1, x3); min(x2, x4)] × [max(y1, y3); min(y2, y4)]; для объединения из суммы точек вычитают общую часть. Формула Пика: S = В + Г2 − 1.
Как оценивается
Проверка автоматическая, по ключу: ответ должен быть записан в форме из условия и полностью совпасть с эталоном. Код и черновики не проверяют — значение имеет только ответ. За верный ответ — 1 балл, частичного балла нет.
Критерии всех заданий экзамена — на странице критериев ЕГЭ.
Разбор задания демоверсии 2027
В демоверсии 2027 года первый цикл Повтори 6 [Вперёд 24 Направо 90 Вперёд 30 Направо 90] обводит прямоугольник 30 × 24 с углом в начале координат: за две итерации контур замыкается. Затем хвост поднят: Вперёд 2 уводит в точку (0; 2), после поворота Вперёд 10 — в (10; 2), там хвост опускается. Второй цикл рисует прямоугольник 71 × 75 с углом в (10; 2).
Спрашивают точки в пересечении: общая часть — 10 ≤ x ≤ 30 и 2 ≤ y ≤ 24. По x это 21 значение, по y — 23, всего 21 · 23 = 483. Ключ ФИПИ — 483.
Типичные ошибки
Направление головы прочитано как «вправо»
Голова направлена вдоль положительного направления оси ординат, то есть вверх. Кто считает, что она смотрит вправо, поворачивает всю фигуру на 90° и получает другой ответ.
Каждый повтор цикла принят за новую фигуру
Повтори 2 [Вперёд a Направо 90 Вперёд b Направо 90] за две итерации замыкает прямоугольник a × b, а следующие повторы обводят тот же контур: новых точек они не добавляют.
Поднятый хвост оставляет след
Пока хвост поднят, Черепаха только меняет положение. Лишний отрезок сдвинет вторую фигуру, и пересечение посчитается не там, где нужно.
При объединении фигуры просто складывают
Точки пересечения принадлежат обеим фигурам, их вычитают один раз: |A ∪ B| = |A| + |B| − |A ∩ B|. Без этого ответ завышен ровно на размер общей части.
Модуль turtle без поворота и масштаба
В модуле turtle голова сначала смотрит вдоль оси x, поэтому перед рисованием нужен left(90). Длины умножают на масштаб k = 10: без него фигура 52 × 20 сожмётся в точку и узлы сетки наложатся друг на друга.
Вопросы и ответы
Можно ли решить задание 6 без программы?
Да. Все данные есть в условии, а стороны фигур — десятки единиц. Хватает формул: число точек в прямоугольнике, в пересечении, в объединении, а для фигуры со «ступенькой» — формула Пика.
Как считать точки при объединении фигур?
По включению-исключению: точки первой фигуры плюс точки второй минус точки их пересечения. Иначе общие точки посчитались бы дважды.
Как выполнить алгоритм на Python или КуМире?
Команды КИМ совпадают с командами исполнителя Черепаха в КуМире и с модулем turtle в Python. В Python сначала поставьте left(90) — там голова смотрит вправо, — а длины умножьте на масштаб k = 10. Дальше либо пересчитайте точки по рисунку, либо посчитайте их формулами по координатам фигур.
Сколько баллов даёт задание 6 и сколько на него времени?
1 балл, частичного балла нет. По обобщённому плану ФИПИ отведено около 4 минут, уровень базовый, специализированное ПО не требуется.
Что изменилось в задании 6 в 2027 году?
Ничего. По спецификации «Изменения структуры КИМ отсутствуют», тематика задания 6 в списке изменённых тем 2027 года не названа.
Другие задания раздела «Алгоритмы и программирование»
- Задание 5алгоритм над двоичной записью числа · до 1 балла
- Задание 12исполнитель Редактор и машина Тьюринга · до 1 балла
- Задание 13число программ исполнителя · до 1 балла
- Задание 16рекурсивные функции · до 1 балла
- Задание 17обработка последовательности из файла · до 1 балла
- Задание 24обработка строки из файла · до 1 балла
- Задание 25делители и маски чисел · до 1 балла
- Задание 26сортировка и жадный выбор · до 2 баллов
По демоверсии, спецификации и кодификатору ФИПИ 2027
Обновлено: