Найти в Дзене

Информатика ЕГЭ №6 — библиотека turtle, алгоритм черепаха и язык программирования Python

Оглавление

В данном задании ЕГЭ №6 по информатике можно применить своё воображение или творчество для нахождения расстояния между точками или посчитать количество точек, ограниченные контуром, на плоскости XY.

Само по себе задание представляет алгоритм движения “черепашки”. У неё существует определённое количество команд для движения и она способна оставлять за собой “след” при движении.

Среди команд есть следующие:

  • Вперёд [количество шагов];
  • Направо [поворот направо на заданный угол];
  • Налево [поворот налево на заданный угол]

В самом задании ещё применяют цикл, который повторяет эти действия определённое количество раз. К примеру, Повтори 4 [Вперёд 10 Направо 90]. Данный алгоритм строит квадрат со стороной 10.

К счастью, не обязательно искать полотно с клеточками и аккуратно чертить линии, заданной длины и соблюдать заданный угол поворота. В Python была давным-давно добавлена библиотека, помогающая детям в изучении программирования.

Библиотека очень похожа на текущее задание и во многом способна помочь. Называется похоже на главного персонажа этой истории — turtle (что в переводе означает “черепаха”).

Сама по себе библиотека воспроизводит команды “черепашки” и визуализирует их. Команды, которые потребуются следующие:

  • forward(Количество шагов) — движение вперёд на заданное количество шагов;
  • backward(Количество шагов) — движение назад на заданное количество шагов;
  • right(Угол) — поворот направо на заданный угол;
  • left(Угол) — поворот налево на заданный угол;
  • color(Цвет пера, Цвет заливки) — устанавливает цвет пера и заливки;
  • goto(X, Y) — перемещается на точку с координатами X, Y;
  • dot(Размер, Цвет) — рисует точку в текущей позиции;
  • speed(Скорость) — устанавливает скорость перемещения главного героя (от 0 до 10);
  • xcor() — возвращает текущую координату по X;
  • ycor() — возвразает текущую координату по Y;
  • up() — поднимает “перо” (другими словами, перестаёт оставлять за собой след);
  • down() — опускает “перо” (другими словами, начинает оставлять за собой след);
  • begin_fill() — начинает заливку контура;
  • end_fill() — прекращает заливку контура;
  • done() — завершает работу программы.

Теперь, когда с командами разобрались, можно приступить к практике. Разберём несколько заданий.

Задание №1

Задание:

Определите сколько точек с целочисленными координатами будут находиться в области после работы алгоритма: Повтори 10 [Вперёд 5 Направо 60].

Решение:

Напишем программу с использованием алгоритма из задания.

Листинг программы
Листинг программы

В программе сначала подключаем библиотеку turtle, затем устанавливаем необходимые параметры: коэффициент и скорость перемещения (можно установить 10 для получения более быстрого результата).

Коэффициент масштабируемости необходим для увеличения рисунка и более удобного счёта в дальнейшем (можете его убрать и посмотреть, что из этого получится). Запустим и посмотрим на результат работы программы.

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

Получился шестиугольник, осталось посчитать количество точек внутри данной фигуры. Как можно это сделать? Для этого воспользуемся командой, которая оставляет точки в текущей позиции. Допишем программу.

Листинг программы
Листинг программы

Для нанесения точек на координаты используем два цикла (один для X, второй для Y). Важным являются параметры в цикле. Здесь также происходит умножение параметров на коэффициент масштабируемости и есть ещё третий параметр — шаг цикла. Он добавляется как раз из-за коэффициента. Результат будет следующим.

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

Останется лишь посчитать количество точек внутри фигуры. Важным моментом при подсчёте является то, что точки на контуре фигуры не считаются. Остаётся аккуратно посчитать точки — 62. Существуют и способы автоматического подсчёта точек внутри фигуры (но они не всегда хорошо работают).

Задание №2

Задание:

Определите расстояние между начальной позицией и после работы алгоритма: Повтори 11 [Вперёд 36 Направо 72].

Решение:

Решение данной задачи может сводиться к расчётам в голове после некоторого анализа. Но можно и написать программу. Для начала перепишем алгоритм из задания.

Листинг программы
Листинг программы

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

Листинг программы
Листинг программы

Особое внимание стоит уделить формуле нахождения расстояния, вот её математический вид:

Формула нахождения расстояния между двумя точками на плоскости
Формула нахождения расстояния между двумя точками на плоскости

Команда round округляет полученное значение.

В этом номере отсутствует коэффициент, т.к. он бы только испортил расчёт.

Понравилась статья? Хочешь разбираться в информатике, программировании и уметь работать в разных программах? Тогда ставь лайк, подпишись на канал и поделись статьей с друзьями! Остались или появились вопросы — спроси в комментариях!

Читайте также:
  • Информатика ЕГЭ №2 — решение задач алгебры логики с помощью языка программирования Python
  • Информатика ЕГЭ №3 — решение в редакторе электронных таблиц OpenOffice Calc
  • Информатика ЕГЭ №4 — бинарное дерево, неравномерный код и условие Фано
  • Информатика ЕГЭ №5 — нахождение чисел в алгоритмах с помощью языка программирования Python