Черепаха чертит одну или две замкнутые фигуры. Спрашивают,
сколько внутри целых точек, какая у фигур площадь или периметр.
Решаем кодом: те же команды отдаём библиотеке ,
и она сама скажет, где что нарисовано.
Базовый уровень, один балл. Ответ — одно целое число.
Стоит в начале координат, смотрит вверх (вдоль оси ординат), хвост опущен — значит рисует.
| Команда | Что делает |
|---|---|
| Вперёд n | пройти n единиц туда, куда смотрит |
| Назад n | пройти n единиц в обратную сторону |
| Направо m | повернуться на m° по часовой стрелке |
| Налево m | повернуться на m° против часовой |
| Поднять хвост | дальше идти, не рисуя |
| Опустить хвост | снова рисовать |
Команды в скобках выполняются k раз подряд. Это обычный цикл — и ровно так он и переводится.
Поворот меняет только направление. Черепаха с места не двигается: «Направо 90» — это не шаг вправо.
| Черепаха | Python |
|---|---|
| Вперёд 24 | |
| Назад 18 | |
| Направо 90 | |
| Налево 270 | |
| Поднять хвост | |
| Опустить хвост | |
| Повтори 6 [ … ] |
Где мы сейчас — и
. Это и есть то, ради чего берём turtle.
Повтори 6 [Вперёд 24 Направо 90 Вперёд 30 Направо 90] Поднять хвост Вперёд 2 Направо 90 Вперёд 10 Налево 90 Опустить хвост Повтори 6 [Вперёд 75 Направо 90 Вперёд 71 Направо 90]
Две рамки, и они перекрываются.
Картинка отвечает на вопрос «как оно расположено», но не отвечает «сколько». Считать по клеточкам с экрана — долго и промахнёшься.
Значит берём у turtle не картинку, а числа: координаты углов. Дальше всё решает арифметика.
Рисование можно и выключить (
и
ускоряют), но на экзамене картинка
полезна: сразу видно, не перепутал ли направление.
— перед фигурой,
—
после каждого
и
.
В конце в четырёх переменных лежат границы фигуры.
нужен, потому что подпрограмма меняет
переменные снаружи, а не только читает их.
— потому что turtle считает через синусы, и
вместо 30 бывает 29.999999999999996.
Набрали один раз — дальше меняются только команды Черепахи. Каркас на все задания 6.
Стороны вдоль осей: общая часть — снова прямоугольник, и границы у неё берутся крест-накрест.
Оранжевое — общая часть: слева её держит ,
справа
.
Левее всех не годится: общая часть
начинается там, где начались обе фигуры — значит
. Кончается там, где кончилась первая из
них — значит
.
Если вышло — фигуры не
пересекаются; на экзамене такого не дают.
| Спрашивают | Что писать | Почему |
|---|---|---|
| целые точки, с границей | точек по оси на одну больше, чем длина | |
| площадь | это уже длины сторон, без единицы | |
| периметр | сумма сторон, удвоенная | |
| точки, без границы | оба крайних значения выкинули |
Точек с границей 4 · 3 = 12, площадь 3 · 2 = 6, периметр 2 · (3 + 2) = 10, точек строго внутри (красные) 2 · 1 = 2.
От 0 до 3 — это 4 точки, а длина 3. Вся разница между «сколько точек» и «какая площадь» в этой единице, и на ней теряют балл чаще всего.
Первая рамка: x от 0 до 30, y от 0 до 24. Вторая: x от 10 до 81, y от 2 до 77.
Пересечение: x от 10 до 30, y от 2 до 24.
21 · 23 = 483
Обратите внимание: переход между фигурами
( …
) в рамку не
входит. Поэтому
стоит сразу после
.
Подписи — переменные из программы: синяя рамка даёт , красная
. Оранжевое — их общая часть.
Точки первой фигуры: 31 · 25 = 775. Точки второй: 72 · 76 = 5472.
Сложили — и общая часть посчиталась дважды. Вычитаем её один раз:
775 + 5472 − 483 = 5764
Правило одно и для площадей:
. Меняется только то, считаем мы точки
(с «плюс один») или площадь (без него).
Оранжевое входит и в синюю рамку, и в красную — поэтому при сложении оно посчитается дважды.
Рамку Черепаха обходит за два повтора. Значит при чётном «Повтори» она возвращается в начало, а при нечётном остаётся в противоположном углу и смотрит вниз.
Переход к второй фигуре («Поднять хвост, Вперёд 3 …») отсчитывается оттуда. Нарисуешь на бумаге от начала координат — вторая рамка уедет.
turtle держит положение и направление сам. Мы просто пишем команды подряд — и где Черепаха оказалась, там и оказалась.
Это главный довод в пользу кода на этом номере.
Вперёд 20 Направо 90 Вперёд 30 Направо 90
Вперёд 20 Налево 90 Назад 30 Налево 90
Вперёд 20 Налево 270 Вперёд 30 Направо 90
Все три чертят прямоугольник 30 на 20 — но в разных местах и в разную сторону. Ещё бывает Направо 45 Направо 45: два поворота подряд дают тот же прямой угол.
Разбираться в этом руками не нужно. Переписали команды как есть — turtle посчитала. Именно поэтому и «Назад», и «270» в условии не страшны.
Вперёд 12 Налево 270 Вперёд 8 Налево 270 Вперёд 4 Налево 90 Вперёд 18 Направо 90 Вперёд 8 Направо 90 Вперёд 26 Направо 90
Определите, сколько точек с целочисленными координатами находятся внутри области, ограниченной заданной алгоритмом линией. Точки на линии учитывать не следует.
Рамка тут не поможет: внутри рамки есть пустой угол. Зато фигура распадается на два прямоугольника — 8 на 12 и 18 на 8.
Точки строго внутри: 7 · 11 = 77 и 17 · 7 = 119. И отдельно — 7 точек на общей стороне: для фигуры они внутренние, а в части не попали.
77 + 7 + 119 = 203
Повтори 5 [Вперёд 23 Налево 135 Вперёд 24 Налево 45]
135 + 45 = 180: за два повтора фигура замыкается. Это параллелограмм со сторонами 23 и 24.
Вершины нецелые — считать точки тут и не просят. Просят площадь, и целую часть.
Диагональ AC делит четырёхугольник на два треугольника. Площадь каждого — половина модуля векторного произведения сторон, выходящих из A:
s1 = abs((bx - ax) * (cy - ay) - (cx - ax) * (by - ay)) / 2
s1 + s2 = 390.32… → 390
23 · 24 = 552 — это НЕ ответ: у параллелограмма площадь меньше произведения сторон.
Ответ — одно целое число. Без единиц измерения, без пробелов, без запятой. Сверка знак в знак, как на КЕГЭ.
Шесть форм вопроса — все, кроме Г-образной фигуры, — по одной задаче на каждую. Тип закрывается одним верным ответом; ошибся — придёт такая же задача с другими числами.
От четырёх закрытых типов появится код работы вида
и кнопка «Сдать работу».
Вторая кнопка открывает письмо: к коду прикладываются снимки своей программы и того, что она напечатала.
Число можно получить и не написав программу. Снимок кода показывает, что приём ваш, — поэтому он и просится вместе с ответом.
Отметка: шесть типов — «5», пять — «4», четыре — «3».