6.01 Определение результатов работы простейших алгоритмов управления исполнителями
Ошибка.
Попробуйте повторить позже
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n-целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Налево m (где m– целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Черепахе был дан для исполнения следующий алгоритм:
Повтори 6 [Налево 28 Вперёд 2 Налево 28]
Определите, сколько звеньев содержит полученная ломанная.
Решение программой
Напишем программу, используя библиотеку turtle для визуализации движения Черепахи по заданному алгоритму. Основная цель — построить ломаную по алгоритму и определить количество её звеньев. Для этого сначала выполняется алгоритм Черепахи, который пошагово задаёт повороты и перемещения, образующие ломаную. Каждое движение команды forward соответствует одному звену, поэтому достаточно внимательно проследить за циклом и командами перемещения, чтобы подсчитать общее количество звеньев. Для удобства визуализации вводится масштабирование (через переменную scale), иначе рисунок будет слишком маленьким. Все перемещения умножаются на scale.
from turtle import * # Модуль для работы с исполнителем Черепаха tracer(50) # Ускорение анимации движения Черепахи scale = 60 # Масштаб рисунка left(90) # Поворачиваем Черепаху вверх (вдоль оси Y) # Внешний цикл: повторяем 6 раз построение звеньев ломаной for _ in range(6): left(28) # Поворот налево на 28 градусов forward(2 * scale) # Вперёд на 2*scale (одно звено ломаной) left(28) # Ещё один поворот налево на 28 градусов # Поднимаем хвост, чтобы не рисовать лишние линии при постановке точек up() # Проставление точек с целочисленными координатами для визуализации сетки for x in range(-10, 10): # Перебор значений абсцисс for y in range(-10, 10): # Перебор значений ординат goto(x * scale, y * scale) # Перемещаем Черепаху в точку (x, y) dot(3, "blue") # Ставим точку синего цвета update() # Обновляем экран для отображения результата done() # Завершение работы (окно остаётся открытым)
Осталось посчитать количество линий между вершинами фигуры.
Решение Кумиром
Имеется алгоритм «Повтори 6 [Налево 28 Вперёд 2 Налево 28]». Команда «Налево 28» меняет направление Черепахи. «Вперёд 2» — это команда, которая создаёт звено ломанной. Она повторяется 6 раз в алгоритме, поэтому полученная ломанная будет содержать 6 звеньев.
Специальные программы

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

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

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

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

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

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