Повороты
Полный оборот составляет 360° — вот главное, что нужно знать про повороты. Если Черепаха повернётся на 360°, то её нос будет смотреть точно в ту же сторону, что и до поворота. Впрочем, то же самое произойдёт не только с Черепахой, но и с человеком, лодкой, автомобилем.
Повороты направо и налево могут заменять друг друга. Вместо
tortila.left(90)
напишемtortila.right(270)
. Результат получим тот же самый. Аналогично вместоtortila.left(45)
можно написатьtortila.right(315)
.Как мы узнали правильные числа?
Задания
1. Какой одной командой можно заменить следующие пары команд, если хвост Черепахи поднят?
73a
#ЗАМЕНИТЕ СЛЕДУЮЩУЮ ПАРУ КОМАНД ОДНОЙ КОМАНДОЙ
tortila.backward(-40)
tortila.forward(50)
73b
#ЗАМЕНИТЕ СЛЕДУЮЩУЮ ПАРУ КОМАНД ОДНОЙ КОМАНДОЙ
tortila.backward(70)
tortila.backward(-80)
73c
#ЗАМЕНИТЕ СЛЕДУЮЩУЮ ПАРУ КОМАНД ОДНОЙ КОМАНДОЙ
tortila.forward(-80)
tortila.forward(-30)
2. Какой одной командой можно заменить следующие четыре команды, если хвост Черепахи поднят?
77a
#ЗАМЕНИТЕ СЛЕДУЮЩИЕ ЧЕТЫРЕ КОМАНДЫ ОДНОЙ КОМАНДОЙ
tortila.right(30)
tortila.left(120)
tortila.left(50)
tortila.left(250)
77b
#ЗАМЕНИТЕ СЛЕДУЮЩИЕ ЧЕТЫРЕ КОМАНДЫ ОДНОЙ КОМАНДОЙ
tortila.left(140)
tortila.right(260)
tortila.right(-110)
tortila.right(-240)
Одно из достоинств компьютеров состоит в том, что они могут исполнять миллионы и миллиарды вычислительных операций за короткое время, в частности, миллионы раз повторять одну и ту же последовательность действий. Но было бы чудовищно, если бы программист был вынужден повторять в программе миллион раз одну и ту же последовательность команд.
На самом деле во всех языках программирования есть средства, позволяющие указывать, что какая-то последовательность команд должна быть выполнена несколько раз… Введём новую конструкцию.
for i in range(<число>):
команды,
которые,
необходимо
повторить
Вместо слова <число> мы подставляем какое-нибудь конкретное число. Смысл конструкции состоит в том, что все команды, записываемые с отступом, должны быть повторены конкретное число раз. Вот так!
3. Что нарисует Черепаха, выполнив следующую программу?
tortila.left(90)
for i in range(4):
tortila.forward(80)
tortila.right(90)
tortila.forward(80)
tortila.right(30)
for i in range(3):
tortila.forward(80)
tortila.right(120)
tortila.left(30)
tortila.backward(80)
Измените код так, чтобы Черепаха нарисовала объект
- в 2 раза меньшего размера;
- в 3 раза большего размера.
4. Черепаха нарисовала правильный треугольник и вернулась в первоначальное положение. Исправьте программу, вставив недостающие аргументы в команды.
#ВСТАВЬТЕ НЕДОСТАЮЩИЕ АРГУМЕНТЫ
tortila.forward(200)
tortila.left()
tortila.forward(200)
tortila.left()
tortila.forward(200)
tortila.left()
5. Нарисуйте в тетради след и положение Черепахи после выполнения программы.
tortila.forward(40)
tortila.left(60)
tortila.backward(40)
tortila.left(60)
tortila.forward(80)
tortila.left(150)
tortila.forward(80)
tortila.right(90)
tortila.backward(60)
tortila.left(180)
Как делать новые команды
Одна из основных частей Алгоритмического Мышления — искусство записи. Мы понимаем под этим искусство записывать сложный набор инструкций в простой и понятной форме. Для упрощения записи служат различные конструкции. Эти конструкции присущи большинству языков программирования. Они обеспечивают возможность:
- создавать новые команды на основе имеющихся команд;
- повторять некоторые команды по несколько раз;
- проверять условия и действовать в зависимости от результатов.
А теперь познакомимся с первым элементом этого списка.
Всякую программу можно преобразовать в новую команду. Для этого к ней необходимо добавить очень простую вещь — имя. Действительно, если мы хотим исполнить команду, то её нужно как-то вызвать, то есть обратиться по имени…
Всякий акт наименования должен сопровождаться специальной церемонией. Для нас эта церемония будет заключаться в особом соглашении о том, как записывать… Мы пользуемся таким способом:
def имя_новой_команды():
программа,
описывающая,
что делает
новая функция
Выполняя следующие три задания, постарайся понять, как работает эта конструкция!
6. Черепаха опустила хвост, нарисовала правильный пятиугольник и вернулась в исходное положение. Исправьте программу, вставив недостающие аргументы в команды.
#процедура рисования правильного пятиугольника
def pentagon():
tortila.pendown()
for i in range(5):
tortila.forward(100)
#ВСТАВЬТЕ НЕДОСТАЮЩИЕ АРГУМЕНТЫ
tortila.left()
tortila.penup()
7. Черепаха опустила хвост, нарисовала правильный семиугольник и вернулась в исходное положение. Исправьте программу, вставив недостающие аргументы в команды.
#процедура рисования правильного семиугольника
def heptagon():
tortila.pendown()
for i in range(7):
tortila.forward(100)
#ВСТАВЬТЕ НЕДОСТАЮЩИЕ АРГУМЕНТЫ
tortila.left()
tortila.penup()
8. Напишите процедуры, выполняя которые Черепаха нарисует:
- правильный шестиугольник (длина стороны 100);
- правильный восьмиугольник (длина стороны 100);
- правильный девятиугольник (длина стороны 100);
- правильный 180-угольник (длина стороны 5)