7. Процедуры и команды повторения Процедуры. Ранее мы рассмотрели использование Личной карточки черепашки для записи повторяющейся последовательности команд. Рассмотрим пример: напишем программу рисования забора (см. рис.). Видно, что забор состоит из повторяющихся фрагментов – дощечек. Для рисования одной дощечки в инструкцию Личной карточки черепашки можно написать последовательность команд: по вперед 40 направо 45 вперед 10 направо 90 вперед 10 налево 135 назад 40 Далее можно использовать кнопку Много раз. Другой возможностью организации повторяющихся действий в ЛогоМирах является использование процедур - группы команд, которая выполняет законченное действие. Процедура записывается в Листе программ. Для его открытия выбрать пункт Меню Листы / Программы. Для рисования дощечки процедура будет иметь следующий вид: это дощечка по вперед 40 направо 45 вперед 10 направо 90 вперед 10 налево 135 назад 40 конец Теперь, если записать в Поле команд или в Личной карточке команду дощечка, то черепашка нарисует дощечку забора. В общем виде структура процедуры имеет следующий вид: это имя процедуры тело процедуры конец Процедуры, записанные в Листе программ, действуют на всех листах проекта и автоматически запоминаются в момент его сохранения. Команда повторения. Рассмотрим еще один пример: напишем процедуру рисования квадрата. это квадрат по вперед 30 направо 90 вперед 30 направо 90 вперед 30 направо 90 вперед 30 направо 90 конец Видно, что тело процедуры состоит из двух команд (вперед 30 направо 90), которые повторяются четыре раза. Упростить эту запись можно воспользовавшись командой повторения: это квадрат по повтори 4 [вперед 30 направо 90] конец Общий вид команды повторения: повтори N[список команд], где N – число повторений, список команд – команды, которые будут повторяться. Запишем процедуру для рисования правильного треугольника. это треугольник по повтори 3 [вперед 30 направо 120] конец Из приведенных выше примеров видно, что команда повторения для рисования правильного N-угольника имеет вид: повтори N[вперед К направо 360/N]. Если создать Кнопку, при нажатии которой рисуется ромб, то перемещая и поворачивая черепашку при помощи мыши, можно с помощью Кнопки получить следующий рисунок: Используя алгоритм рисования многоугольников, можно рисовать окружности. Запишем в поле команд следующую команду: по повтори 360[вперед 1 направо 1]. Процедура внутри процедуры. Процедуры в Лого мирах могут вызывать другие, ранее подготовленные процедуры. Напишем процедуру для рисования дома (см. рис.). Видно, что дом состоит из квадрата и равностороннего треугольника. Для их рисования можно воспользоваться уже готовыми процедурами «треугольник» и «квадрат». При этом учтем, что треугольник надо повернуть: это дом квадрат вперед 30 направо 30 треугольник конец Процедура с параметрами. ( в демо-версии не работает) Рассмотрим еще один пример: нарисуем пирамиду, состоящую из квадратов разных размеров. Для рисования квадратов с разными размерами сторон, в процедуре квадрат вводят изменяемый параметр: сторона. это квадрат: сторона по повтори 4 вперед: сторона направо 90 конец Если требуется, чтобы квадраты были еще и разных цветов, можно добить еще один параметр краска: это квадрат: сторона: краска по повтори 4 нов_цвет: краска вперед: сторона направо конец Запишем теперь процедуру для рисования пирамиды: это пирамида квадрат 40 15 пп вперед 40 направо 90 вперед 5 по квадрат 30 20 пп вперед 30 направо 90 вперед 5 по квадрат 20 30 конец Использование процедур и повторений при организации движения объектов в ЛогоМирах. Для придания реалистичности движению удобно использовать не одну форму движущегося объекта, а несколько, на которых изображены промежуточные фазы движения. Рассмотрим пример бегущей собаки. Для нее в поле форм есть 2 готовые формы: 17 – толчок, 18 – прыжок. Эти движения будут повторятся много раз, поэтому удобно движения разбить на две части и для каждой части записать процедуру: это толчок нов_форма 17 нов_курс 270 вперед 2 жди 3 конец это прыжок нов_форма 18 вперед 5 жди 5 конец Теперь, при задании в Личной карточке черепашки инструкции толчок прыжок и включение режима Много раз, собака будет бежать вперед. 7. Создание мультипликационного сюжета Используя полученные знания, можно приступить к созданию мультфильма. Можно выделить следующие этапы создания мультфильма: 1. Составление сценария. 2. Выделение в сценарии отдельных сюжетов. 3. Составление инструкций для каждого сюжета в отдельности. 4. Используя личные карточки черепашек, Кнопки и Бегунки соединяем отдельные части в одно целое в нужной последовательности. Рассмотрим процесс создания мультипликационного сюжета «Цирковое представление»: под куполом цирка по канату ходит акробат, а на арене играет оркестр. При помощи графического редактора нарисуем арену и натянутый под куполом канат. Создадим три формы движения акробата (№ 61, 62, 63) в левую сторону. Для движения в правую сторону скопируем формы в свободные ячейки и сделаем зеркальное отображение (№ 64, 65, 66). Опишем в Листе программ процедуру элемента движения акробата влево: это влево нов_форма 61 жди 5 нов_форма 62 вперед 2 нов_форма 63 вперед 4 жди 5 конец Запишем процедуру движения по всему канату в левую сторону. Элемент движения акробата влево обеспечивает продвижение на 6 шагов. Если длина каната равна 120 шагам, то можно сделать 20 элементов движения влево: это иду_влево нов_курс 270 повтори 20[влево] конец Аналогичным образом описывается движение акробата в правую сторону: это вправо нов_форма 64 жди 5 нов_форма 65 вперед 2 нов_форма 66 вперед 4 жди 5 конец это иду_вправо нов_курс 90 повтори 20[вправо] конец Запишем в инструкции Личной карточки черепашки-акробата следующую последовательность команд: иду_влево жди 10 иду_вправо жди 10 (Много раз). Мы получим движение акробата, который будет доходить до конца каната, разворачиваться и идти в обратную сторону. Создадим фазы движения музыканта, играющего на тарелках (№67,68). Запишем в Листе программ процедуру движения музыканта: это тарелки нов_форма 67 жди 1 нов_форма 68 bac жди 1 конец bac – звук удара тарелок, который создадим при помощи музыкального редактора. Аналогичным образом поступим с барабанщиком и гитаристом: это барабан нов_форма 69 bum жди 1 нов_форма 70 bum жди 1 конец это гитара нов_форма 71 жди 1 нов_форма 72 trun жди 1 Запишем в Личные карточки черепашек-музыкантов их инструкции: тарелки, барабан, гитара и зададим режим Много раз. Приведем в движение черепашек и получим сюжет: акробат ходит по канату туда-сюда, а музыканты играют на тарелках, гитаре и барабане. С помощью Музыкального редактора напишем мелодию, которая будет сопровождать все музыкальное представление и назовем ее circus. Теперь во время представления вместе с игрой музыкантов будет звучать и данная мелодия. Можно создать формы цветных огоньков или солнечных зайчиков, которые будут беспорядочно двигаться по экрану во время представления. Для этого в Личной карточке черепашки-«зайчика» зададим инструкцию: Направо случайный 360 вперед случайный 150 (Много раз). Лабораторная работа №6. Создание мультфильма Создайте мультипликационный сюжет по заданной теме. Тема сюжета соответствует номеру студента в журнале 1. «Игра в мяч». 2. «Приключения колобка». 3. «Подводное царство». 4. «Дельфин и русалка». 5. «Бег на лыжах с препятствиями». 6. «Жизнь на ферме». 7. «Бременские музыканты». 8. «Маленькая страна». 9. «Лесная жизнь». 10. «На рыбалке». Справочные материалы Основные команды и их назначение Команда Сокращенная Действие запись вперед 10 вп 10 движение вперед на 10 шагов назад 10 нд 10 движение назад на 10 шагов направо 30 пр 30 поворот по часовой стрелке на 30 градусов поворот против часовой стрелки на 30 налево 30 лв 30 градусов пауза в 5 тиков жди 5 опускание пера для рисования по поднятие пера для движения без следа пп очистка экрана от рисунка сг одевание черепашки в форму под №3 нов_форма 3 поворот черепашки по компасу в нов_курс 30 направлении 30 градусов установка цвета с №10 нов_цвет 10 установка размера черепашки с №5 нов_размер 5 установка толщины пера черепашки с №8 нов_размер_пера 8 закрашивание замкнутой области или крась 15 экрана в цвет с №15 оттиск формы черепашки на экране штамп