Задание 6 ЕГЭ по информатике: исполнитель Черепаха
В прежних вариантах в начале программы Черепаха стояла в начале координат и смотрела вдоль оси ординат, а хвост у неё был опущен, то есть всё, куда она идёт, остаётся на бумаге линией. Команд немного: пройти вперёд на столько-то единиц, повернуться направо или налево на столько-то градусов, повторить заключённую в скобки группу команд столько-то раз. К ним добавляются поднять хвост и опустить хвост: пока хвост поднят, Черепаха перемещается без следа. Программа записана в условии одной строкой, и из неё получается рисунок. А спрашивали в прежних вариантах о рисунке вот что: сколько точек с целыми координатами лежит внутри фигуры, включая границу.
Перед экзаменом убедитесь по демоверсии, что условие вашего года выглядит так же. Принцип при этом остаётся прежним: текст программы нужно перевести в картинку и аккуратно посчитать. Другие задания первой части разобраны в статье карта первой части ЕГЭ по информатике, а общее устройство работы — в статье про структуру экзамена.
Рисуем руками: придуманная программа
Две программы я придумал сам, чтобы разобрать ход, и в вариантах такого условия нет. Первая: повтори два раза «вперёд шесть, направо девяносто, вперёд четыре, направо девяносто». Черепаха идёт вверх на шесть единиц, поворачивает направо и оказывается лицом на восток, идёт на четыре, снова поворачивает и смотрит вниз, спускается на шесть, поворачивает на запад и возвращается в начало на четыре. Получился прямоугольник с левым нижним углом в начале координат, шириной четыре и высотой шесть. После цикла она вновь стоит в начале и смотрит вверх, потому что за два повторения повернулась на 360 градусов.
Вторая часть программы: поднять хвост, вперёд три, направо девяносто, вперёд два, опустить хвост, и снова повтори два раза «вперёд пять, направо девяносто, вперёд три, направо девяносто». Хвост поднят, поэтому первые перемещения следа не оставляют: Черепаха оказывается в точке с координатами два и три и смотрит на восток. Дальше она рисует второй прямоугольник: идёт вправо на пять, вниз на три, влево на пять, вверх на три. Он занимает по горизонтали от двух до семи, по вертикали от нуля до трёх.
Теперь считаем. Первый прямоугольник по горизонтали охватывает числа от нуля до четырёх, то есть пять целых значений, а по вертикали от нуля до шести, то есть семь. Всего тридцать пять точек, включая границу. Второй: шесть значений по горизонтали и четыре по вертикали, двадцать четыре точки. Прямоугольники перекрываются, общая часть занимает по горизонтали значения от двух до четырёх, а по вертикали от нуля до трёх, это три на четыре, двенадцать точек. В объединение каждая общая точка должна попасть один раз, поэтому ответ равен тридцать пять плюс двадцать четыре минус двенадцать, то есть сорок семь.
Запомните ход: сначала координаты вершин, потом числа целых значений по каждой оси, и только потом произведения. Перепутать число значений с длиной стороны проще всего: у стороны в четыре единицы пять целых точек.
Как считать точки
Способы зависят от фигуры, и полезно знать несколько:
- для прямоугольника с целыми вершинами число точек с границей равно произведению числа целых значений по горизонтали на число целых значений по вертикали, а без границы по каждой оси значений на два меньше
- для объединения прямоугольников берётся сумма их точек минус точки пересечения, а пересечение в свою очередь является прямоугольником, и его считают тем же способом
- для многоугольника с вершинами в целых точках, но с наклонными сторонами, удобна формула Пика: площадь равна числу внутренних точек плюс половина числа граничных минус единица, а граничные точки каждой стороны считаются по наибольшему общему делителю разностей координат её концов
- когда фигура сложнее, считайте построчно: для каждого целого значения вертикальной координаты определите, какие горизонтальные значения лежат в фигуре, и сложите
Построчный счёт проверяет разбор выше. В объединении двух прямоугольников для значений вертикальной координаты от нуля до трёх горизонтальные значения идут от нуля до семи, это восемь точек в строке и четыре строки, тридцать две точки. Для значений от четырёх до шести остаётся только первый прямоугольник, пять точек в строке и три строки, пятнадцать. Тридцать два плюс пятнадцать дают сорок семь, как и при вычитании пересечения. Совпадение двух способов и есть проверка, которую я советую делать, когда времени хватает.
Слово «внутри» может включать границу, а может не включать, и привычка из прошлых вариантов тут подводит. Не рассчитывайте на память: прочитайте в вашем условии, как сказано. Ответы из-за этого расходятся сильно, и обидно, когда сам счёт был безупречным.
Программа вместо бумаги
Бумага работает хорошо, пока фигур две-три и они прямоугольные. Когда в программе вложенные циклы, много поднятий хвоста и фигура получается замысловатой, надёжнее поручить счёт программе. Идея простая: по тексту задания посчитать координаты вершин, получить список прямоугольников, затем перебрать все точки с целыми координатами в охватывающем прямоугольнике и для каждой проверить, лежит ли она хотя бы в одном из них. Проверка включает границы: нестрогие неравенства.
По-моему, лучше вести расчёт самому, чем рисовать модулем черепахи, если он вообще доступен на экзамене. Модуль рисует красиво, но считать точки по картинке на экране нельзя, а координаты вершин всё равно придётся вычислять. Зато сама картинка полезна как проверка: если нарисованное похоже на то, что у вас на бумаге, значит, вы поняли программу верно. Рисунок на бумаге и расчёт в программе делают одно и то же двумя способами, и совпавший ответ даёт право ввести его без дрожи.
Тем, кто любит решать только руками, замечу, что переход на программу окупается на сложных вариантах, а на простых экономит нервы. Но если вы не пишете программы свободно, не заводите на экзамене то, что не пробовали: бумага надёжнее непроверенного кода.
Если в программе другие углы
Все рассуждения выше держатся на прямых углах: вершины остаются в целых точках, и прямоугольники считаются произведением. Если в вашем варианте встретятся другие углы, картина усложнится: вершины перестанут быть целыми, формула Пика потеряет смысл, а счёт придётся вести через координаты. Тогда помогает программа, которая по длинам шагов и поворотам вычисляет координаты вершин через синус и косинус и проверяет для каждой целой точки, лежит ли она внутри многоугольника. Такие варианты, если они есть, решаются на пределе возможностей бумаги, и я бы не стал тратить на них больше времени, чем на соседние номера. Есть ли они в демоверсии вашего года, узнаете из неё же.
Внимания требуют и программы со ступенями: цикл, в котором длина шага остаётся одной, а поворот чередуется, рисует ступени, и вершины тогда лучше записывать не по рисунку, а по смещениям. Если за один проход цикла суммарный поворот не накапливается, Черепаха смещается на одну и ту же пару чисел по горизонтали и вертикали, и за несколько проходов смещения складываются. Запишите смещение за проход, умножьте на число повторений, и вы получите положение конца без перерисовки каждого шага. Проверьте только, что суммарный поворот за проход действительно нулевой: иначе направление к следующему проходу уже другое.
Где теряются баллы
Первая причина — поворот. «Направо девяносто» означает по часовой стрелке, и в начале Черепаха смотрит вверх. Кто представил, что она смотрит вправо, получает зеркальный рисунок, а число точек иногда даже не меняется, и ошибка остаётся незамеченной до проверки. Вторая причина — хвост: поднятые перемещения не рисуют, но смещают положение, и их забывают учесть при вычислении координат следующей фигуры. Третья — счёт точек: у стороны в четыре единицы пять точек, и путаница в любую сторону портит ответ.
Четвёртая причина редкая, зато дорогая: вложенный цикл читается как один. Цикл «повтори три, внутри повтори два» выполняет внутреннюю часть шесть раз, и по-другому выписанный след не получится.
Пятая — перенос ответа. Число небольшое, и кажется, что ошибиться нельзя, но именно в коротких числах чаще всего переставляют цифры. Перед вводом сверьте с черновиком.
Часть проверки делает сам рисунок. Если по замыслу программы фигура должна быть замкнутой, а у вас получился разрыв, ищите ошибку в одной из длин или поворотов. Замкнулась и совпала с ожидаемой формой — вы, скорее всего, нигде не промахнулись.
Откуда тема и что делать, если не идёт
Исполнителей с циклом «повтори» дети знают по школьному курсу информатики, а координатная плоскость проходится по математике ещё раньше. К экзамену обе темы никуда не исчезают, но забывается привычка действовать аккуратно: рисовать, выписывать координаты вершин, считать значения. Подробнее о том, что в курсе информатики и когда проходится, сказано в статье информатика в школе.
Если задание не идёт, различайте два случая. Первый: вы путаетесь в программе, не можете нарисовать фигуру. Тогда практикуйтесь в рисовании на клетчатой бумаге с короткими программами, пока рисунок не будет получаться с первого раза. Второй: рисунок вам удаётся, но число точек не сходится. Тут помогает пересчёт вторым способом, построчным.
Соседнее по теме задание — алгоритм исполнителя: там исполнитель работает с числом, здесь с рисунком, а подход тот же, надо понять шаг и аккуратно повторить. Дальше в карте идёт комбинаторика.
Где найти разбор
С геометрическим заданием помогает репетитор, который видит ваш рисунок. Платформа не показывает экран и общей доски в видеокомнате нет, поэтому сфотографируйте рисунок и расчёт и пришлите в чат (он открывается после того, как репетитор получил ваш контакт), а на занятии обсудите, где расхождение.
Начать поиск:
- репетиторы по информатике для подготовки к ЕГЭ
- репетиторы по информатике с пробным уроком
- все репетиторы для подготовки к ЕГЭ
Вопросы и ответы
Нужна ли формула Пика? Для прямоугольников нет. Для фигур с наклонными сторонами она сильно упрощает счёт.
Что делать, если фигуры накладываются друг на друга? Считать каждую отдельно, затем вычесть общую часть. Если фигур больше двух, пересечений становится больше, и тогда построчный счёт или программа надёжнее: формула с вычитанием пересечений быстро обрастает поправками, и в них легко запутаться. Строка за строкой вы определяете, какие значения горизонтальной координаты лежат хотя бы в одной фигуре, и складываете, не думая о пересечениях.
Почему мой рисунок «зеркальный»? Вы развернули Черепаху не в ту сторону в начале или перепутали, куда ведёт «направо».
Сколько времени тратить на рисунок? Столько, чтобы он был аккуратным: рисунок, поспешно набросанный, вырастает в ошибку. Клеточки на черновике лучше нарисовать крупно, чтобы вершины можно было подписать.
Можно ли обойтись вообще без рисунка? Для самых простых программ можно, но привычка рисовать сохраняет точность там, где программа длиннее обычного. Я бы рисовал всегда.
Оставить заявку
- Татьяна Попова — Информатика и олимпиадное программирование · от 3 000 ₽
- Артём Игоревич Соловьёв — Информатика и математика: ОГЭ и ЕГЭ от практикующего разработчика · от 2 100 ₽
- Илья Германович Воронцов — Информатика: ЕГЭ, олимпиады и алгоритмы для студентов · от 1 700 ₽