Найти в Дзене
Python для школьников

Исполнитель-черепашка в Python. Решаем 6-ю задачу ЕГЭ по информатике не на КУМИРе

Привет! Сегодня разберём 6 задание из ЕГЭ по информатике. В задании нужно воспроизвести алгоритм “черепашки”, получить какую-либо фигуру и подсчитать количество точек внутри. Задача 1 Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и его движения. У исполнителя существует две команды: Вперёд n (где n  — целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m  — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм: Повтори 5 [Вперёд 9 На
Оглавление

Привет! Сегодня разберём 6 задание из ЕГЭ по информатике.

В задании нужно воспроизвести алгоритм “черепашки”, получить какую-либо фигуру и подсчитать количество точек внутри.

Задача 1

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

Повтори k [Команда1 Команда2 … КомандаS]

означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм:

Повтори 5 [Вперёд 9 Направо 120]

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

Решение

Строка 1. Импорт всех функций и объектов из модуля turtle.

Строка 3. Отключение анимации черепахи для ускорения отрисовки.

Строка 4. Поворот черепахи на 90 градусов влево, чтобы смотрела вверх, а не вправо.

Строка 5. Определим переменную k, которая будет отвечать за масштаб рисунка.

Строка 6. Установка размеров холста для черепахи (1000 пикселей по ширине и 1000 пикселей по высоте).

Строки 7-9. Выполняем алгоритм задания: Повтори 5 [Вперёд 9 Направо 120]

Строка 10. Поднятие пера черепахи, чтобы перемещаться без рисования.

Строки 11-14. Отрисовка сетки, для подсчета точек.

Строка 15. Завершение программы.

-2

Подсчитаем количество точек внутри фигуры и получим ответ - 30.

Задача 2

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a,b) (где a, b — целые числа), перемещающую Чертёжника из точки с координатами (x, y) в точку с координатами (x+a, y+b). Если числа a, b положительные, то значение соответствующей координаты увеличивается, если отрицательные — уменьшается. Например, если Чертёжник находится в точке с координатами (4, 2), то команда Сместиться на (2,-3) переместит Чертёжника в точку (6,-1). Запись

Повтори k раз
Команда1 Команда2 Команда3
конец

означает, что последовательность Команда1 Команда2 Команда3 повторится k раз.
Чертёжнику был дан для исполнения следующий алгоритм:

Повтори 3 раз
Сместиться на (3, 2)
Сместиться на (-2, 3)
Сместиться на (-3, -2)
Сместиться на (2, -3)
конец

Найдите площадь полученной фигуры.

Решение

-3

Алгоритм чертежника, указанный в задании, реализован в строках 7-11.

Для перемещений был выбран метод goto(), который принимает на вход точную точку в которую нужно переместиться. Чертежник же работает по-другому: он смещается на вектор, относительно текущей точки. Поэтому пришлось вручную подобрать нужные координаты:

Сместиться на (3, 2) - из (0, 0) goto(3 * k, 2 * k) - в точку (2, 3)

Сместиться на (-2, 3) - из (3, 2) goto(1 * k, 5 * k)- в точку (1, 5)

Сместиться на (-3, -2) - из (1, 5) goto(-2 * k, 3 * k) - в точку (-2, 3)

Сместиться на (2, -3) - из (-2, 3) goto(0 * k, 0 * k) - в точку (0, 0)

-4

С помощью теоремы Пифагора определим стороны квадрата и вычислим площадь:

-5

Удастся ли решить с помощью этих двух примеров другие задачи ЕГЭ 6 номера? Напишите, пожалуйста, в комментариях.

Другие мои статьи по подготовке к ЕГЭ:

Задание 5

Задание 8

Задание 12

Задание 15

Задание 19-21

Задание 23