Добавление собственных процедур и функций
Оглавление
Добавление собственных процедур 2
Что такое класс? 2
Выбор класса исполнителя 3
Добавление процедуры 4
Задание параметров процедуры 5
Описание алгоритма процедуры 7
Вызов процедуры 8
Редактирование кода процедуры 9
Аргументы поцедур и функций 9
Задание 9
Источники 9
Вы написали программу управления автомобилем. При повороте автомобиль должен мигать поворотными огнями. Причем, это он должен делать неопределённое количество раз. Больше того, это действие монотонное и повторяющееся. Можно, конечно, писать код мигания каждый раз, когда это требуется. Хорошо, если этот код довольно мал по размеру. Ну а если это большой по размеру код? Как же быть? Хорошо бы, чтобы вместо всего кода дать команду «Помигать огнями N раз, или t сек/мин». Именно для этого предназначены такие элементы программы как функции и процедуры. Но..
Не всегда можно найти в стандартных библиотеках желаемую процедуру/функцию. Например, нет такой процедуры Ask() – задать вопрос. Или той же Мигать. Для этого Алиса предоставляет возможность создания собственных процедур
Добавление собственных процедур
Напомним,
Процедура – это группа повторяю-щихся команд и предназначена, в основном, для уменьшения объёма кода программы и облегчения использования повторяющегося кода..
Процедура вызывается путём вставки в основную программу её имени и параметров. В основной программе процедура является командой. А так как это команда, она входит в СКИ одного из исполнителей. Но исполнители бывают разные. И команды они тоже могут выполнять разные. Мы имеем в виду, одни команды исполнитель выполнять может, а другие – нет. Для того, чтобы определить систему команд для конкретного пользователя процедуры пишутся для конкретного класса исполнителей.
Что такое класс?
Представьте себе, что Вы – конструктор. В вашей голове родился проект замечательного межзвёздного корабля на ионных двигателях. Для того чтобы создать этот корабль, надо начертить чертёж (условно, 1, на самом деле их будет много и все они будут называться Конструкторсокй документацией). Предположим, что конструкторская документация готова. Теперь на предприятии по этой документации будут собирать корабль. А может быть и не один. Они все будут похожи друг на друга почти как две капли воды. Но на «почти» они всё-таки будут различаться.
Так вот чертёж или конструкторская документация являются аналогами КЛАССА.
Класс - объединение однотипных сущностей
Класс описывает свойства и методы, которые будут доступны объекту(Экземпляру)
А корабли, которые собирают по чертежам, являются экземплярами класса.
Экземпляр (англ. instance) — это описание конкретного объекта в классе
Ту можно упомянуть и вот ещё что. Космический корабль относится к транспотным средствам. А вот это аналог СУПЕРКЛАССА.
СУПЕРКЛАССА класс в состав которго входят другие классы
Выбор класса исполнителя
Итак, для того, чтобы написать процедуру, сначала надо определить класс исполни-теля

Рисунок 1. Классы исполнителей в Alice 3.3

Рисунок 2. Кнопка выбора класса исполнителя и добавления элемента
Выбрать класс исполнителя можно несколькими способами. Одним из них является использование шестиугольной кнопки Выбора класса, вверху, около кнопки RUN окошка Предпросмотра в Редакторе Кода (Рисунок 2). В выпадающем меню можно выбрать класс и элемент, который вы собираетесь добавить или редактировать. В скобках указано количество элементов, уже существующих для указанного класса.
Добавление процедуры
Для добавления собственной процедуры достаточно для выбранного класса нажать кнопку Add Biped Procedure.

Рисунок 3. Кнопка выбора класса
Задание параметров процедуры
После нажатия этой кнопки появится меню задания параметров процедуры

Рисунок 4. Параметры процедуры
Для процедуры достаточно задать её имя по правилам присвоения имён элементам программы. Напомним, что при помощи этого имени в дальнейшем, вы будете вызывать эту команду на выполнение
После нажатия на OK процедура создана. В редакторе кода появится ещё две вкладки: одна с именем класса, другая с именем процедуры. Для процедуры будет открыто пространство кода. Здесь добавляют команды, описывающие алгоритм процедуры.
Как вы видите, в нашей процедуре пока ничего нет. То есть, названная команда при добавлении в основную программу ничего делать НЕ будет

Рисунок 5. Пустая процедура
Однако, заметьте, для класса BIPED, в СКИ добавилась команда по названию процедуры (Походка)

Рисунок 6. Добавленная процедура
Описание алгоритма процедуры
Добавим несколько команд в процедуру

Рисунок 7. Описание алгоритма процедуры
Теперь перейдём в основную программу, кстати, эта программа тоже является процедурой и называется она MyFirstMethod. Обратите внимание: в названии все слова пишутся вместе. Для разделения слов используются прописные буквы. Перейти в основную программу можно двумя способами:
Переключить вкладку на MyFirstMethod Воспользоваться кнопкой возврата в класс Scene, расположенной в окне предпросмотра над СКИ, и там выбрать MyFirstMethodВызов процедуры
Мы уже говорили о том, что если в процедуре просто описать алгоритм любых действий, то в сцене, действия, описанные в процедуре, происходить НЕ будут.
Для того чтобы заставить программу или исполнителя выполнять действия, описанные в процедуре, надо написать так называемый ‘вызов процедуры’ на выполнение. Для этого в коде(тексте) основной программы надо написать или добавить имя процедуры с аргументами или без них.
Для этого надо выбрать персонаж того класса, для которого написана процедура, и из СКИ добавить имя процедуры.
Если вы не видите процедуры в СКИ, то очевидны две ситуации:
– Процедуры не существует
– выбран персонаж другого класса, (не того класса, для которого написана процедура)

Рисунок 8. Вызов процедуры на выполнение
Редактирование кода процедуры
Для редактирования кода(текста) процедуры предназначена кнопка edit, находящаяся слева от процедуры, на панели процедур, в СКИ
Другой способ редактирования процедуры - это просто перейти на вкладку процедуры сверху.
Аргументы поцедур и функций
У процедур и функций могут быть аргументы.
Аргументы – это входные данные процедуры или функции или то, над чем подпрограммы будут выполнять действия.
Обычно, в языках программирования аргументы записываются в описании подпрограммы, в заголовке, после имени функции в круглых скобках.
В Алисе добавить аргументы можно с помощью кнопки Add Parameter, вверху редактора кода.
Задание
Написать собственную процедуру вращения персонажа вокруг своей оси. Число вращений: 1 раз. Разместить в сцене Алису и заставить её вращаться 5 раз Написать собственную процедуру мигания, например, огнями. В качесве огней взять цветные шарики. Длительность мигания: 10 раз с интервалом 0.5. процедуру написать для класса PROP/ Написать процедуру походки двуногих.Источники
http://www. alice. org/wp-content/uploads/2017/05/Alice-3-HowToGuide-Complete. pdf http://www. alice. org/resources/how-tos/creating-custom-procedures/19 января 2018 г.
Класс описывает свойства и методы, которые будут доступны объекта, построенного по описанию, заложенному в классе. Экземплярыиспользуются для представления (моделирования) конкретных сущностей реального мира.


