Решение задания №6 ЕГЭ по информатике на Python — Черепаха и координаты
turtle — это стандартная библиотека Python, которая позволяет рисовать, управляя "черепахой" на экране. Она идеально подходит для задания №6, потому что:
Как подключить:
from turtle import * Вот таблица команд, которые используются в задании:
left(90) # поворачиваем на 90 градусов влево В задании используется конструкция:
for _ in range(2):
# команды, которые повторяются 2 раза for i in range(2):
# команды, которые повторяются 2 раза Возьмем задание из варианта ЕГЭ:
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен.
У исполнителя существует 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] 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() # не закрываем окно Шаг 1. Импорт и настройка
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()
После запуска программы вы увидите фигуру с красными точками. Теперь нужно посчитать точки, которые попали внутрь фигуры (учитывая точки на линиях).
for _ in range(2):
forward(13 * k)
right(90)
forward(20 * k)
right(90)
for _ in range(2):
forward(16 * k)
right(90)
forward(8 * k)
right(90)
Чтобы легче было считать точки на экране, можно уменьшить или увеличить масштаб k.
В любом случае выбирайте комфортный коэффициент в зависимости от задания и вашего монитора. В большинстве случаев удобно использовать k = 20 — точки хорошо видны, и их можно пересчитать по сетке.
Задание №6 можно решить с помощью Python и библиотеки turtle:
Алгоритм решения:
Я — Олег Алексеевич, репетитор по информатике. Готовлю к ЕГЭ более 15 лет.
На своих занятиях мы:
Хотите попробовать? Запишитесь на первое занятие — познакомимся, определим ваш уровень и составим план подготовки.
Переходите на мой сайт, чтобы узнать подробности и записаться: Репетиторы рядом