Все статьи по ЕГЭ
2 сент. 2025 г. - 28 мин. чтения
ЕГЭ Задание 6

ЕГЭ Задание 6

Анализ циклического алгоритма. Определение результата алгоритма

@ashtana

Штана Альберт Игоревич

В этой статье будет разобрано задание 6.

Рассмотрим задачи из шестого задания ЕГЭ по информатике.

Данное задание относится к базовому уровню сложности.

Время выполнения задания ≈ 4 минуты.

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

Задача 1

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n  — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m  — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k Команда1 Команда2 … КомандаS означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:

Повтори 4 [Вперёд 12 Направо 90]
Повтори 3 [Вперёд 12 Направо 120].

Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом Повтори 4 [Вперёд 12 Направо 90], и находиться вне области, ограниченной линией, заданной данным алгоритмом: Повтори 3 [Вперёд 12 Направо 120]. Точки на линии учитывать не следует.

Решение:
Решение Кумир

Запустим программу Кумир-Стандарт. В начале нужно подключить модуль Черепаха.

После того как подключили модуль Черепаха нужно воспроизвести(написать) алгоритм:

использовать Черепаха
алг
нач
опустить хвост
нц 4 раз
вперед(12)
вправо(90)
кц
нц 3 раз
вперед(12)
вправо(120)
кц
кон

В начале нужно подключить модуль Черепаха: пишется команда использовать Черепаха. Слово алг обозначает начало алгоритма. Слово нач - это начало программы.

Опускаем хвост у Черепахи. Цикл пишем с помощью команды нц - начало цикла. Команда кц - это конец цикла. Команда вправо - это аналог команды Направо (видим, что эти команды пишутся по-разному). Аналогично есть команда влево в программе Кумир. Команда вперед пишется без буквы ё.

После того как алгоритм перенесли в программу Кумир, запускаем программу, нажав на кнопку F9 (или кнопка play в виде треугольника).

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

Настроить масштабирование на 1.

После этого можно сделать скриншот, перенести рисунок в графический редактор и посчитать точки вручную.

Получается 65 точек.

Считать точки вручную в графическом редакторе — не удобно. Это может занять достаточно много времени. Правильнее будет данную задачу решать с помощью программирования. Но если задание(фигура) достаточно сложное, чтобы посчитать точки, тогда единственным решением на экзамене останется способ решения задачи с подсчётом точек вручную.

Решение Python

Напишем программу на Python в которой сразу посчитаем количество точек.

Зная условие (по которому производится подсчёт точек) — можно не визуализировать исполнителя.

k = 0 
for x in range(1, 12):
    for y in range(1, 12):
        if (y < x / 3 ** 0.5) or (y > -x / 3 ** 0.5 + 12):
            k += 1
print(k)

Здесь с помощью цикла мы перебираем все возможные координаты x, y которые могут получиться у фигуры построенной черепашкой(в задаче она двигается каждый раз вперёд на 12 клеток поэтому функцию range запускаем от 1 до 12). Внутри циклов нужно прописать условие, которое ответит на вопрос: попала ли точка внутрь области? Если попала тогда считаем её с помощью переменной счётчика(k). В конце работы циклов получаем ответ на задачу.

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

from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 20  # Масштаб одной клетки
counter = 0  # Переменная для подсчёта количество точек
# Алгоритмы действий черепашки
for i in range(4):  # Повтори 4 раза
    forward(12 * M)  # Вперёд на 12: (12 * 20) в 20 раз увеличиваем расстояние чтобы было видно фигуру
    right(90)  # Поворот направо на 90 градусов
for i in range(3):  # Повтори 3 раза
    forward(12 * M)  # (12 * 10) в 10 раз увеличиваем расстояние чтобы было видно фигуру
    right(120)  # Поворот направо на 120 градусов
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение количества точек в области фигуры
for x in range(1, 12):  # Условно двумя циклами обойдём получившийся прямоугольник
    for y in range(1, 12):  # Начинаем с 1 потому что нам нужны точки не на линиях фигуры
        goto(x * M, y * M)  # Не забываем про масштаб
        # Условие проверки попадания точки в область
        if (y < x / 3 ** 0.5) or (y > -x / 3 ** 0.5 + 12):
            counter += 1  # Подсчитываем количество нарисованных точек
            dot(4)  # Рисуем точку
goto(120, 150)  # Переходим по координате чтобы там вывести ответ
write(counter, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепахи

Результат работы программы:

Ответ: 65

Задача 2 (Демоверсия ЕГЭ 2023)

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … Команда_S_] означает, что последовательность из S команд повторится k раз.

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

Повтори 7 [Вперёд 10 Направо 120].

Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.

Решение:
Решение Python
from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 20  # Масштаб одной клетки
counter = 0  # Переменная для подсчёта количество точек
# Алгоритмы действий черепашки
for i in range(7):  # Повтори 7 раз
    forward(10 * M)  # Вперёд на 10: (10 * 20) в 20 раз увеличиваем расстояние чтобы было видно фигуру
    right(120)  # Поворот направо на 120 градусов
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение количества точек в области фигуры
for x in range(1, 10):  # Условно двумя циклами обойдём получившийся прямоугольник
    for y in range(1, 10):  # Начинаем с 1 потому что нам нужны точки не на линиях фигуры
        goto(x * M, y * M)  # Не забываем про масштаб
        # Условие попадания точки в область треугольника
        if (y > x / 3 ** 0.5) and (y < -x / 3 ** 0.5 + 10):  
            counter += 1  # Подсчитываем количество нарисованных точек
            dot(5)  # Рисуем точку
goto(120, 150)  # Переходим по координате чтобы там вывести ответ
write(counter, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепахи

Результат работы программы:

Ответ: 38

Задача 3 (Демоверсия ЕГЭ 2023 Вариант ИЛИ)

Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 10 Направо 90 Вперёд 20 Направо 90]
Поднять хвост
Вперёд 3 Направо 90 Вперёд 5 Налево 90
Опустить хвост
Повтори 2 [Вперёд 70 Направо 90 Вперёд 80 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, включая точки на границах этого пересечения.

Решение:
Решение Python
from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 5  # Масштаб одной клетки
counter = 0  # Переменная для подсчёта количество точек
# Алгоритмы действий черепашки
for i in range(2):  # Повтори 2 раза
    forward(10 * M)  # Вперёд на 10: (10 * 5) в 5 раз увеличиваем расстояние чтобы было видно фигуру
    right(90)  # Поворот направо на 90 градусов
    forward(20 * M)  # Вперёд на 20
    right(90)  # Поворот направо на 90 градусов
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
forward(3 * M)  # Вперёд 3
right(90)  # Направо 90
forward(5 * M)  # Вперёд 5
left(90)  # Налево 90
pendown()  # Опустить хвост
for i in range(2):  # Повтори 2 раза
    forward(70 * M)  # Вперёд на 70: (70 * 5) в 5 раз увеличиваем расстояние чтобы было видно фигуру
    right(90)  # Поворот направо на 90 градусов
    forward(80 * M)  # Вперёд на 80
    right(90)  # Направо 90
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение количества точек в области фигуры
for x in range(0, 21):  # Условно двумя циклами обойдём получившийся прямоугольник
    for y in range(0, 11):  # Начинаем с 0 потому что нам нужны точки и на линиях пересечения фигур
        goto(x * M, y * M)
        # Условие попадания точки в область пересечения двух фигур
        if (20 >= x >= 5) and (10 >= y >= 3):  # Условие определяем после визуального построения черепашкой двух фигур
            counter += 1  # Подсчитываем количество нарисованных точек
            dot(4)  # Рисуем точку
goto(120, 150)  # Переходим по координате чтобы там вывести ответ
write(counter, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепахи

Результат работы программы:

Ответ: 128

Задача 4 (Демоверсия ЕГЭ 2024 Вариант ИЛИ)

Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 8 Направо 90 Вперёд 18 Направо 90]
Поднять хвост
Вперёд 4 Направо 90 Вперёд 10 Налево 90
Опустить хвост
Повтори 2 [Вперёд 17 Направо 90 Вперёд 7 Направо 90]
Определите, сколько точек с целочисленными координатами будут находиться внутри объединения фигур, ограниченных заданными алгоритмом линиями, включая точки на линиях.

Решение:
Решение Python
from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 10  # Масштаб одной клетки
counter = 0  # Переменная для подсчёта количество точек
# Алгоритмы действий черепашки
for i in range(2):  # Повтори 2 раза
    forward(8 * M)  # Вперёд на 8: (8 * 10) в 10 раз увеличиваем расстояние чтобы было видно фигуру
    right(90)  # Поворот направо на 90 градусов
    forward(18 * M)  # Вперёд на 20
    right(90)  # Направо 90
penup()  # Поднять хвост
forward(4 * M)  # Вперёд 4
right(90)  # Направо 90
forward(10 * M)  # Вперёд 10
left(90)  # Налево 90
pendown()  # Опустить хвост
for i in range(2):  # Повтори 2 раза
    forward(17 * M)  # Вперёд на 17
    right(90)  # Поворот направо на 90 градусов
    forward(7 * M)  # Вперёд на 7
    right(90)  # Направо 90
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение количества точек в области фигуры
for x in range(0, 19):  # Условно двумя циклами обойдём получившийся прямоугольник
    for y in range(0, 22):  # Начинаем с 0 потому что нам нужны точки и на линиях пересечения фигур
        goto(x * M, y * M)
        # Условие попадания точки в область объединения двух фигур
        if (x <= 18 and y <= 8) or ((10 <= x <= 17) and (4 <= y <= 21)): # Условие определяем после визуального построения черепашкой двух фигур
            counter += 1  # Подсчитываем количество нарисованных точек
            dot(5)  # Рисуем точку
goto(70, 150)  # Переходим по координате чтобы там вывести ответ
write(counter, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепахи

Результат работы программы:

Ответ: 275

Задача 5 (Демоверсия ЕГЭ 2025)

Черепахе был дан для исполнения следующий алгоритм:
Повтори 9 [Вперёд 22 Направо 90 Вперёд 6 Направо 90]
Поднять хвост
Вперёд 1 Направо 90 Вперёд 5 Налево 90
Опустить хвост
Повтори 9 [Вперёд 53 Направо 90 Вперёд 75 Направо 90] \

Определите периметр области пересечения фигур, ограниченных заданными алгоритмом линиями.

Решение:
Решение Python
from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 5  # Масштаб одной клетки
# Пропишем алгоритмы действий черепашки
for i in range(9):  # Повтори 9 раз
    forward(22 * M)  # 22 * 5 - в 5 раз увеличили расстояние чтобы было лучше видно
    right(90)  # Поворот направо на 90 градусов
    forward(6 * M)  # Вперёд 6
    right(90)  # Поворот направо на 90 градусов
penup()  # Поднять хвост
forward(1 * M)  # Вперёд 1
right(90)  # Направо 90
forward(5 * M)  # Вперёд 5
left(90)  # Налево 90
pendown()  # Опустить хвост(перо)
for x in range(9):  # Повтори 9 раз
    forward(53 * M)  # Вперёд 53
    right(90)  # Направо 90
    forward(75 * M)  # Вперёд 75
    right(90)  # Направо 90
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение периметра области пересечения двух фигур
count = 0  # Переменная для подсчёта количество точек по периметру
for x in range(0, 8):  # Условно двумя циклами обойдём получившийся прямоугольники прямоугольником 7 на 24
    for y in range(0, 25):  # Начинаем с 0 потому что нам нужны точки и на линиях фигур
        # Условие проверки попадания точки на периметр области пересечения фигур
        if x <= 1 and y <= 21:  # Условие определил визуально после построение черепашкой двух фигур
            goto(x * M, y * M)  # Переходим по координатам
            dot(4)  # Рисуем точку
            count += 1  # Подсчитываем количество нарисованных точек
goto(0, 0)  # Переходим по координате чтобы там вывести ответ
write(count, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепах

Результат работы программы:

Ответ: 44

Задача 6 (Демоверсия ЕГЭ 2026)

Описание исполнителя Черепаха есть в начале каждого задания, оно одинаковое. Черепахе был дан для исполнения следующий алгоритм:
Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90]
Поднять хвост
Вперёд 9 Направо 90 Назад 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90] \

Определите, сколько точек с целочисленными координатами находятся внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.

Решение:
Решение Python
from turtle import *  # Подключаем модуль черепашку
left(90)  # Изначально черепашку нужно повернуть по часовой стрелки на 90 градусов
M = 10  # Масштаб одной клетки
# Пропишем алгоритмы действий черепашки
for i in range(2):  # Повтори 2 раза
    forward(14 * M)  # Вперёд 14 * 10 - в 10 раз увеличили расстояние чтобы было лучше видно
    left(270)  # Поворот направо на 90 градусов
    back(12 * M) # Назад 12
    right(90)  # Поворот направо на 90 градусов
penup()  # Поднять хвост
forward(9 * M)  # Вперёд 9
right(90)  # Направо 90
back(7 * M)  # Назад 7
left(90)  # Налево 90
pendown()  # Опустить хвост(перо)
for x in range(2):  # Повтори 2 раза
    forward(13 * M)  # Вперёд 13
    right(90)  # Направо 90
    forward(6 * M)  # Вперёд 6
    right(90)  # Направо 90
penup()  # Поднимаем перо(хвост у черепашки чтобы не рисовала) по умолчанию рисует
# Решим задачу на определение точек внутри объединения фигур
count = 0  # Переменная для подсчёта количество точек
for x in range(-12, 1, 1):  # Условно двумя циклами обойдём получившийся прямоугольники прямоугольником 12 на 22
    for y in range(0, 23):  # Начинаем с 0 и -12 потому что нам нужны точки и на линиях фигур
        flag = False  # с помощью булевой переменной контролируем попала ли точка в первый прямоугольник
        if x >= -12 and y <= 14: # Условие проверки попадания точки в первый прямоугольник
            goto(x * M, y * M)  # Переходим по координатам
            dot(5)  # Рисуем точку
            count += 1  # Подсчитываем количество нарисованных точек
            flag = True  # меняем с False на True
        if (x >= -7 and x <= -1) and (y >= 9 and y <= 22):  # Условие проверки попадания точки во второй прямоугольник
            if not flag:  # если точка не попадала до этого в первый прямоугольник(т.к. они пересекаются)
                goto(x * M, y * M)  # Переходим по координатам
                dot(5)  # Рисуем точку
                count += 1  # Подсчитываем количество нарисованных точек

goto(50, 200)  # Переходим по координате чтобы там вывести ответ
write(count, align='right', move=True, font=("Arial", 14, "bold"))  # Выводим ответ количество точек на экран
ht()  # Скрываем курсор
done()  # Должен быть последним оператором в программе графики черепах

Ответ: 251

Результат работы программы:

P.S. Программа на Кумире(после выполнения считаем точки сами):

использовать Черепаха
алг
нач
 опустить хвост
 нц 2 раз
  вперед(14)
  влево(270)
  назад(12)
  вправо(90)
 кц
 поднять хвост
 вперед(9)
 вправо(90)
 назад(7)
 влево(90)
 опустить хвост
 нц 2 раз
  вперед(13)
  вправо(90)
  вперед(6)
  вправо(90)
 кц
кон

Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает. Для этого в ячейке с кодом нажмите клавиши на клавиатуре Shift+Enter или запустите код через кнопку Run по значку ▶.