Как сделать звезду в черепахе

Добавил пользователь Евгений Кузнецов
Обновлено: 04.10.2024

Цель: Формирование у учащихся основных понятий:

  • Что такое алгоритм.
  • Графический исполнитель. Среда
  • Команды исполнителя.
  • Черепашья графика.

Основные задачи:

  • Познавательные: Повторить с учащимися основные составляющие построения программ для ЛогоМиры.
  • Развивающие: Развитие приемов умственной деятельности ( обобщения, анализа, синтеза, сравнения), алгоритмического и логического мышления, внимания, творческой активности.
  • Воспитательная: Уверенность в собственных силах, формировать у них информационную культуру и потребность в приобретении знаний.
  • Мотивационные: Развивать познавательный интерес, способность применению полученных знаний и умений в различных информационных ситуациях, развивать речь и внимание школьников.

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

Тип уроков: комбинированный — урок повторения изученного материала, с элементам практической работы.

Оборудование: компьютеры

Программное обеспечение: ПО Лого Миры

Ход урока

1. Ребята, давайте мы с вами вспомним команды исполнителя “Черепаха”.

Самая простая команда это команда, заставляющая черепашку двигаться вперед, а перед у черепашки там, куда направлена ее голова. При загрузке проекта голова первой черепашки смотрит вверх и поэтому двигаться она по этой команде будет вверх.

вперед 100 (показать движение Черепахи)

Понятно, что двигаться только по одной прямой для черепашки не очень интересно. Поэтому она может поворачиваться. Повернуть черепашку можно командами направо и налево:

(показать повороты)

Для того, чтобы написать простейшую процедуру (программу) нам нужна еще одна команду. Это команда, заставляет черепашку повторять то или иное действие какое-то количество раз. Таким образом, это примитив (команда) реализует циклическую структуру алгоритма.

Теперь можно приняться за обучение черепашки командам.

3. Практическая часть урока. Работа с программной средой ЛогоМиры.

Упражнение 1

рис.1

Создайте процедуры рисования равносторонних треугольника, пятиугольника, шестиугольника.

В своих процедурах предусмотрите увеличение толщины пера и изменения цвета рисования. Чтобы фигуры появились на листе проекта, обучите трех черепашек выполнять созданные вами процедуры: напишите в качестве инструкции в соответствующем поле диалогового окна черепашки название своих процедур. Тогда при щелчке по черепашке, они будут выполнять описанные в программе действия.

Записать в тетрадь процедуры рисование этих картинок:

а) ПРОЦ треугольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 3 РАЗ
вперёд (70)
вправо (120)
КОНЕЦ
КОНЕЦ

б) ПРОЦ 5-ти угольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 5 РАЗ
вперёд (70)
вправо (72)
КОНЕЦ
КОНЕЦ

в) ПРОЦ 6-ти угольник
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 6 РАЗ
вперёд (70)
вправо (60)
КОНЕЦ
КОНЕЦ

Созданные пользователем процедуры используются также, как и обычные команды для черепашек. Попробуем, например, использовать созданную ранее процедуру для рисования узора. Этот узор составлен из шести квадратов (составить процедуру рисования квадрата), повернутых относительно друг друга на 60º. Текст программы узора может быть таким:

Упражнение 2

ПРОЦ рисунок
НАЧАЛО
опусти хвост
ПОВТОРИТЬ 6 РАЗ
квадрат
вправо(60)
КОНЕЦ
КОНЕЦ

Нарисовать этот рисунок цветом.

Упражнение 3

Нарисуем паутину. Отвечаем на вопрос: Какие геометрические фигуры напоминает паутина? (многоугольник) Вместе с классом составляем процедуру паутина.

ПРОЦ паутина
НАЧАЛО
шестиугольник 20
шестиугольник 30
шестиугольник 40
шестиугольник 50
шестиугольник 60
КОНЕЦ

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

Упражнение 4

Создайте проект, где в листе программ определите процедуру рисования треугольников. Попробуйте создать три узора (в виде процедур на листе программ), использующие процедуру рисования треугольника, изображенные на рисунке. Обучите трех черепашек с помощью диалогового окна рисовать эти узоры.

рис.3

На этом уроке мы повторили с вами, как использовать циклы или другим языком повторения некоторых команд. Данная команда заставляет черепашку повторять то или иное действие какое-то количество раз, и поэтому значительно упростит написание программы, где используются большое количество одинаковых операций. Таким образом, это примитив (команда) реализует циклическую структуру алгоритма когда Черепашка повторяет те действия, которые указаны в скобках.

Исполнитель черепашка
Первые шаги

Вначале программист дает черепашке простые приказы, например ВПЕРЕД 100 , что означает "передвинуться вперед на 100 шагов", или НАЛЕВО 60 , т. е. "сделать поворот влево на 60 градусов". Эти команды можно использовать для создания программ, рисующих геометрические фигуры, необходимо только запомнить, что каждая команда пишется на отдельной строке. Передвигаясь по экрану, черепашка оставляет за собой след (по умолчанию цвет кисти у черепахи - ярко зеленый).

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

Шаги черепашки очень маленькие - равны расстоянию между двумя соседними точками на экране, поэтому действие команды "ВПЕРЕД 1" можно и не заметить.

Выполняя команды НАЛЕВО или НАПРАВО, черепашка поворачивается на заданный угол (при этом она считает, что угол задан в градусах). При повороте черепашка остается на месте, не смещаясь ни в какую сторону, меняется только ее направление. Не забывайте, что направление поворота (налево или направо) определяется "с точки зрения" черепашки.

Число или числовое выражение, которое указывает черепашке сколько шагов пройти или на какой угол повернуть, называется аргументом команды. Если аргумент не задан, то черепашка считает его равным нулю.

Запускают программу на выполнение с помощью большой красной кнопки с надписью Выполнить или с помощью клавиши F5 на клавиатуре. Выйти из выполняемой программы, можно с помощью серой кнопки с крестиком в верхнем правом углу окна исполнения или с помщью клавиши Escape на клавиатуре.

Попробуем вместе начертить квадрат. Чтобы заставить черепашку двигаться по квадрату, мысленно проделайте за нее весь путь и опишите получившееся.

Если сторона квадрата будет длиной в 100 черепашьих шагов, можно составить такую последовательность команд:

вперед 100
налево 90
вперед 100
налево 90
вперед 100
налево 90
вперед 100
налево 90

В этой последовательности 4 раза повторяется группа команд ВПЕРЕД 100 НАЛЕВО 90. Чтобы не писать одни и те же команды четыре раза подряд, познакомимся с еще одной командой, которую знает черепашка, - командой ПОВТОРИТЬ . Наша программа, рисующая квадрат, будет выглядеть так :

повторить 4 вперед 100
налево 90
>

В фигурных скобках в нужной последовательности записываются те команды, которые необходимо сделать черепашке несколько раз.

Фигурные скобки можно ставить и так:

повторить 4
вперед 100
налево 90
>

--> повторить 4 вперед 100
налево 90>

Для того чтобы увидеть выполнение команд в более медленном режиме, можно воспользоваться командой ПАУЗА , после которой необходимо указать время в миллисекундах. В одной секунде - 1000 миллисекунд. То есть, если мы хотим сделать задержку в полсекунды, следует дать команду пауза 500 .

Теперь подумаем, как нарисовать равносторонний треугольник?

При рисовании равностороннего треугольника черепашка должна нарисовать три одинаковых линии и сделать три одинаковых поворота. При создании программы нам поможет одно простое правило, которое называется "Правило 360 градусов".

Правило 360 градусов

Обратите внимание, что при рисовании квадрата черепашка начинает и заканчивает свой путь в одной и той же точке и смотрит в одну и ту же сторону, т.е. ее начальное и конечное положения совпадают. Рисуя квадрат, она совершает полный оборот, т.е. поворачивается на 360 градусов. Разделив 360 на 4 (равных поворота), мы получим 90 - величину угла поворота. При рисовании треугольника черепашка должна сделать три одинаковых поворота и вернуться в начальное положение. Следовательно, каждый из углов поворота равен 360 : 3 = 120.

повторить 3 вперед 100
налево 120
>

Можно легко научить черепашку рисовать правильный пятиугольник. Каждый раз черепашка поворачивается на угол, равный 72 градусам (360:5=72), а повторяет 5 раз. Шестиугольник — 360:6=60, повторяет 6 раз.

А теперь попробуйте нарисовать восьмиугольник и двенадцатиугольник самостоятельно.

Запустить интерпретатор python можно из командной строки:

Интерактивный режим

Откройте командную строку и напишите команду python3.

Вы увидите примерно следующее приглашение командной строки:

Вводите команды и наслаждайтесь результатом. А что можно вводить? Несколько примеров:

Первая команда вычисляет сумму двух чисел, вторая команда вычисляет 2 в степени 100, третья команда выполняет операцию конкатенации для строк, а четвертая команда печатает строку 'ABC' , повторенную 10 раз.

Хотите закончить работу с питоном? Введите команду exit() (именно так, со скобочками, так как это — функция) или нажмите Ctrl+D.

Программируемый режим

В предыдущей главе мы использовали Python для простых разовых вычислений, используя интерактивный режим. Теперь создадим программу и выполним её целиком.

Здесь мы используем переменные — объекты, в которых можно сохранять различные (числовые, строковые и прочие) значения. В первой строке переменной a присваивается значение 179 , затем переменной b присваивается значение 971 , затем переменной c присваивается значение арифметического выражения, равного длине гипотенузы. После этого значение переменной c выводится на экран.

Упражнение №1

Откройте произвольный текстовый редактор, например, spyder или Geany . Скопируйте туда текст программы, написанной выше. Сохраните текст в файле с именем hypot.py .

Запустите терминал, перейдите в каталог, где лежит файл hypot.py и выполните эту программу:

Интерпретатор языка Python вместо интерактивного режима выполнит последовательность команд из файла.

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

Базовый синтаксис языка Python 3

Типы данных

Итак, мы видим, что Python умеет работать как минимум с двумя видами данных — числами и строками. Числа записываются последовательностью цифр, также перед числом может стоять знак минус, а строки записываются в одинарных кавычках. 2 и '2' — это разные объекты, первый объект — число, а второй — строка. Операция + для целых чисел и для строк работает по-разному: для чисел это сложение, а для строк — конкатенация.

Кроме целых чисел есть и другой класс чисел: действительные (вещественные числа), представляемые в виде десятичных дробей. Они записываются с использованием десятичной точки, например, 2.0 .

Определить тип объекта можно при помощи функции type :

Обратите внимание — type является функцией, аргументы функции указываются в скобках после ее имени.

Операции с числами

Вот список основных операций для чисел:

  • A+B — сумма;
  • A-B — разность;
  • A*B — произведение;
  • A/B — частное;
  • A**B — возведение в степень.

Полезно помнить, что квадратный корень из числа x — это x**0.5 , а корень степени n — это x**(1/n) .

Есть также унарный вариант операции -, то есть операция с одним аргументом. Она возвращает число, противоположное данному. Например: -A .

В выражении может встречаться много операций подряд. Как в этом случае определяется порядок действий? Например, чему будет равно 1+2*3**1+1 ? В данном случае ответ будет 8, так как сначала выполняется возведение в степень, затем — умножение, затем — сложение.

Более общие правила определения приоритетов операций такие:

  1. Выполняются возведения в степень справа налево, то есть 3**3**3 это 3²⁷.
  2. Выполняются унарные минусы (отрицания).
  3. Выполняются умножения и деления слева направо. Операции умножения и деления имеют одинаковый приоритет.
  4. Выполняются сложения и вычитания слева направо. Операции сложения и вычитания имеют одинаковый приоритет.

Операции над строками

  • A+B — конкатенация;
  • A*n — повторение n раз, значение n должно быть целого типа.

Ветвление

Ветвление (или условная инструкция) в Python имеет следующий синтаксис:

Блок_инструкций_1 будет выполнен, если Условие истинно. Если Условие ложно, будет выполнен Блок_инструкций_2 .

В условной инструкции может отсутствовать слово else и последующий блок. Такая инструкция называется неполным ветвлением. Например, если дано число x и мы хотим заменить его на абсолютную величину x , то это можно сделать следующим образом:

В этом примере переменной x будет присвоено значение -x , но только в том случае, когда x . А вот инструкция print(x) будет выполнена всегда, независимо от проверяемого условия.

Для выделения блока инструкций, относящихся к инструкции if или else в языке Python используются отступы. Все инструкции, которые относятся к одному блоку, должны иметь равную величину отступа, то есть одинаковое число пробелов в начале строки. Рекомендуется использовать отступ в 4 пробела.

Вложенные условные инструкции

Внутри условных инструкций можно использовать любые инструкции языка Python, в том числе и условную инструкцию. Вложенное ветвление — после одной развилки в ходе исполнения программы появляется другая развилка. При этом вложенные блоки имеют больший размер отступа (например, 8 пробелов).

Примере программы, которая по данным ненулевым числам x и y определяет, в какой из четвертей координатной плоскости находится точка (x,y):

Операторы сравнения

Как правило, в качестве проверяемого условия используется результат вычисления одного из следующих операторов сравнения:

Оператор Значение
Меньше — условие верно, если первый операнд меньше второго.
> Больше — условие верно, если первый операнд больше второго.
Меньше или равно — условие верно, если первый операнд меньше или равен второму.
>= Больше или равно — условие верно, если первый операнд больше или равен второму.
== Равенство. Условие верно, если два операнда равны.

Операторы сравнения в можно объединять в цепочки, например, a == b == c или 1 .

Тип данных bool

Операторы сравнения возвращают значения специального логического типа bool . Значения логического типа могут принимать одно из двух значений: True (истина) или False (ложь). Если преобразовать логическое True к типу int , то получится 1, а преобразование False даст 0. При обратном преобразовании число 0 преобразуется в False , а любое ненулевое число в True . При преобразовании str в bool пустая строка преобразовывается в False , а любая непустая строка в True .

Каскадные условные инструкции

Пример программы, определяющий четверть координатной плоскости, можно переписать используя «каскадную« последовательность операцией if. elif. else :

В такой конструкции условия if , . elif проверяются по очереди, выполняется блок, соответствующий первому из истинных условий. Если все проверяемые условия ложны, то выполняется блок else , если он присутствует. Обратите внимание, что таким образом мы чётче видим условия наступления случаев (нет "призраков"), а также отлавливаем ситуацию, когда точка не находится ни в одной из четвертей.

Цикл while

Синтаксис цикла while в простейшем случае выглядит так:

При выполнении цикла while сначала проверяется условие. Если оно ложно, то выполнение цикла прекращается и управление передается на следующую инструкцию после тела цикла while . Если условие истинно, то выполняется инструкция, после чего условие проверяется снова и снова выполняется инструкция. Так продолжается до тех пор, пока условие будет истинно. Как только условие станет ложно, работа цикла завершится и управление передастся следующей инструкции после цикла.

Например, следующий фрагмент программы напечатает на экран всех целые числа, не превосходящие n:

Общая схема цикла while в данном случае для перебора всех подходящих значений такая:

Выводем все степени двойки, не превосходящие числа n:

Цикл for

Цикл for может быть использован как более краткая альтернатива циклу while .

Для последовательного перебора целых чисел из диапазона [0; n) можно использовать цикл for :

Этот код по выполняемым действиям полностью соответствуют циклу while :

Можно задавать начальные и конечные значения для переменной цикла, а также шаг:

Аналогичный цикл while

Черепаха

Стандартная библиотека Python содержит модуль turtle , предназначенный для обучения программированию. Этот модуль содержит набор функций, позволяющих управлять черепахой. Черепаха умеет выполнять небольшой набор команд, а именно:

Команда Значение
forward(X) Пройти вперёд X пикселей
backward(X) Пройти назад X пикселей
left(X) Повернуться налево на X градусов
right(X) Повернуться направо на X градусов
penup() Не оставлять след при движении
pendown() Оставлять след при движении
shape(X) Изменить значок черепахи (“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”)
stamp() Нарисовать копию черепахи в текущем месте
color() Установить цвет
begin_fill() Необходимо вызвать перед рисованием фигуры, которую надо закрасить
end_fill() Вызвать после окончания рисования фигуры
width() Установить толщину линии
goto(x, y) Переместить черепашку в точку (x, y)

Например, следующая программа рисует букву S :

Упражнение №2: буква S

Сохраните и выполните предыдущую программу. Убедитесь в том, что черепаха работает.

Упражнение №3: квадрат

Нарисуйте квадрат. Пример:

Упражнение №4: окружность

Нарисуйте окружность. Воспользуйтесь тем фактом, что правильный многоугольник с большим числом сторон будет выглядеть как окружность. Пример:

Упражнение №5: больше квадратов

Нарисуйте 10 вложенных квадратов.

Упражнение №6: паук

Нарисуйте паука с n лапами. Пример n = 12:

Упражнение №7: спираль

Нарисуйте спираль. См. теорию. Пример:

Написание функций

Как было сказано раньше, функции — это своего рода готовые кирпичики, из которых строится программа. До этого момента мы использовали стандартные функции ( print , input , функции модуля turtle ), теперь настало время написать функцию:

Так же, как и в случае циклов и условных операторов, тело функции выделяется при помощи отступов.

Вызов функции осуществляется по имени с указанием параметров:

Внутри функции можно использовать те же синтаксические конструкции, что и вне её — циклы, ветвления, можно даже описывать новые функции. Естественно, внутри функции можно работать и с переменными.

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

Для возврата значения из функции используется оператор return : в качестве параметра указывается значение, которое требуется вернуть.

Упражнение №9: правильные многоугольники

Нарисуйте 10 вложенных правильных многоугольников. Используйте функцию, рисующую правильный n-угольник. Формулы для нахождения радиуса описанной окружности. Пример:

Упражнение №12: пружина

Нарисуйте пружину. Используйте функцию, рисующую дугу. Пример:

Упражнение №13: смайлик

Нарисуйте смайлик с помощью написанных функций рисования круга и дуги. Пример:

Упражнение №14: звезды

Нарисуйте две звезды: одну с 5 вершинами, другую — с 11. Используйте функцию, рисующую звезду с n вершинами. Пример:

Красивый код на Python

Важная мысль создателя языка Python, Гвидо ван Россума : код читается намного больше раз, чем пишется.

Поэтому существуют рекомендации о стиле кодирования PEP8. Они направлены на то, чтобы улучшить читаемость и сделать его согласованным между большим числом проектов. В идеале, весь код будет написан в едином стиле, и любой сможет легко его прочесть.

Сайт построен с использованием Pelican. За основу оформления взята тема от Smashing Magazine. Исходные тексты программ, приведённые на этом сайте, распространяются под лицензией GPLv3, все остальные материалы сайта распространяются под лицензией CC-BY.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.

Закрыт 1 месяц назад .

Нужно нарисовать следующую 11-ти конечную звезду на turtle :

Звезда


3 ответа 3

Помогаю - нужно ехать прямо нужную длину. Потом повернуть на такой угол, чтобы получилась 11 конечная звезда.

Повторить 11 раз

А этот угол - 180-180/11 градусов (черепашка же в градусах работает?)

Но немного кривенькая. Вот скриншот:

Скриншот

А лучше ещё так (спасибо @GrAnd):

Вот так получится:

Cкриншот 2


Так всё же проще делается: from turtle import * t = Turtle() for i in range(11): t.right(180-180/11) t.fd(200) done()

можно в лоб замутить:


Всё ещё ищете ответ? Посмотрите другие вопросы с метками python графика turtle или задайте свой вопрос.

Похожие

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.21.41235

Исполнитель Черепаха может ходить по полю и рисовать линии пером. Если перо поднято, она просто перемещается в другое место, если перо опущено – рисует за собой линию.

Среда Черепахи – плоскость с системой координат. В начале работы с программой Черепаха находится в начале координат. Черепаха подчиняется командам, входящим в ее Список Команд Исполнителя, и может нарисовать любой рисунок. Размеры поля Черепахи и смещение начала координат можно задать в специальном окне настройки.

Чтобы вручную очистить рабочее поле Черепахи, надо нажать клавишу F12.

Как управлять Черепахой. Решение линейных алгоритмов

Задача 1. Составить программу для рисования квадрата со стороной 40 шагов.

Как вы знаете, все углы квадрата равны 90 градусов, поэтому программа выглядит так:

Квадрат /*название программы*/

покажись; /*черепашка появляется на поле*/
опусти_перо; /*при движении черепашка будет оставлять линию*/
вперед ( 40 ); /*черепашка движется вперед на 40 шагов*/
вправо ( 90 ); /*черепашка поворачивается вправо на 90 градусов*/
вперед ( 40 );
вправо ( 90 );
вперед ( 40 );
вправо ( 90 );
вперед ( 40 );

> /*конец программы*/

Заливка замкнутой области

Черепаха умеет также раскрашивать рисунки, заливая замкнутую область заданным цветом.

При этом необходимо выполнение следующих условий:

  1. Область должна быть замкнуты, то есть в границе не может быть разрывов, иначе краска "вытекает".
  2. В момент заливки черепаха должна находится внутри этой области.
  3. Черепаха не должна находиться в точке, которая имеет тот же цвет, что и граница.

Задача 2. Составить программу для рисования желтого квадрата со стороной 40 шагов и с границей синего цвета.

Квадрат

покажись;
опусти_перо;
цвет ( СИНИЙ ); /*цвет пера черепашки меняется на синий */
вперед ( 40 );
вправо ( 90 );
вперед ( 40 );
вправо ( 90 );
вперед ( 40 );
вправо ( 90 );
вперед ( 40 );
вправо ( 135 );
вперед ( 5 );
залить ( ЖЕЛТЫЙ ); /*черепашка заливает замкнутую область желтым цветом*/

Учтите, что если вы не использовали команду цвет, все линии рисуются черным цветом. Чтобы в самом начале залить экран каким-нибудь фоном, надо также использовать команду залить.

Окружности

Черепаха умеет сама рисовать окружности, для этого надо перевести ее в центр окружности и применить специальную команду.

Для рисования окружности, центр которой находится в том месте, где стоит Черепаха, используют команду
окружность ( R );
где R - радиус окружности

Цвет окружности определяется установленным цветом линий (то есть последней командой цвет). Учтите, что Черепаха рисует окружность только тогда, когда ее перо опущено.

Практические задания


Составить линейный алгоритм для рисования слудеющей фигуры:

Использован материал из книги "Алгоритмы и исполнители", автор Поляков К.

Читайте также: