6.01 Определение результатов работы простейших алгоритмов управления исполнителями
Ошибка.
Попробуйте повторить позже
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 6 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Назад n (где n – целое число), ызывающая передвижение в противоположном голове направлении; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, Налево m (где m – целое число), вызывающая изменение направления движения на m градусов против часовой стрелки.
Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм.
Повтори 2 [Вперёд 14 Налево 270 Назад 12 Направо 90]
Поднять хвост
Вперёд 9 Направо 90 Назад 7 Налево 90
Опустить хвост
Повтори 2 [Вперёд 13 Направо 90 Вперёд 6 Направо 90]
Определите, сколько точек с целочисленными координатами находятся внутри объединения фигур, ограниченного заданными алгоритмом линиями, включая точки на линиях.
Идея решения:
Для моделирования движения Черепахи используем модуль turtle. Сначала реализуем первую фигуру через цикл с двумя повторами. Затем поднимаем хвост, смещаемся на нужное расстояние, поворачиваем, и опускаем хвост для построения второй фигуры (тоже через цикл). Чтобы было удобно анализировать пересечение, используем масштабирование (например, умножаем все отрезки на 12). После построения обеих фигур перебираем точки с целочисленными координатами в заданном диапазоне, отмечаем их на экране и в дальнейшем можно посчитать количество точек, попавших внутрь объединения.
Решение:
# Подключаем модуль для исполнителя Черепаха from turtle import * # Масштаб для увеличения фигур m = 12 # Отключаем анимацию для быстрого выполнения tracer(0) # Опускаем хвост, начинаем рисовать pd() # Направляем голову вверх (по оси y) left(90) # Первая фигура, цикл из двух повторов for i in range(2): # Двигаемся вперёд на 14 единиц forward(14 * m) # Поворачиваем налево на 270° left(270) # Двигаемся назад на 12 единиц backward(12 * m) # Поворачиваем направо на 90° right(90) # Поднимаем хвост, чтобы перемещаться без рисования pu() # Смещаемся вперёд на 9 единиц forward(9 * m) # Поворачиваем направо на 90° right(90) # Смещаемся вперёд на 7 единиц backward(7 * m) # Поворачиваем налево на 90° left(90) # Опускаем хвост для рисования второй фигуры pd() # Вторая фигура, цикл из двух повторов for i in range(2): # Двигаемся вперёд на 13 единиц forward(13 * m) # Поворачиваем направо на 90° right(90) # Двигаемся вперёд на 6 единиц forward(6 * m) # Поворачиваем направо на 90° right(90) # Поднимаем хвост для проставления точек pu() # Перебираем точки с целыми координатами for x in range(-50, 50): for y in range(-50, 50): # Переходим в точку (x,y) goto(x * m, y * m) # Ставим точку dot(3) # Завершаем выполнение графики done()
Необходимо посчитать количество точек внутри объединения фигур, включая точки на границах пересечения:
Получаем 56 красных точек и 195 зеленых, общее количество равно:
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!