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

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

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

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

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

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

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