понедельник, 6 февраля 2012 г.

Процедура

Процедура это часть программы, выполняющая самостоятельную задачу и реализующая тот или иной алгоритм, который можно применить в другой процедуре или программе.
Таким образом, процедуры до бесконечности расширяют набор примитивов (команд) для черепашек, ведь любая написанная вами программа может считаться еще одной командой.
Первая строка любой процедуры должна содержать слово “это” и имя процедуры. Предпочтительней процедуру называть одним словом. Нежелательно применять в имени разделители и знаки препинания. Количество знаков в имени тоже лучше ограничить в связи с тем, что при вызове процедуры можно сделать ошибки при написании длинных имен. Итак, предлагается начать знакомство с темой написанием процедуры рисования правильной фигуры, например, квадрата.
 Текст процедуры записывается на листе программ  для Лого миров . Последней строкой в процедуре должна быть строка «конец». Это важно, потому что на листе программ может быть написано много процедур. Признаком окончания процедуры является слово «конец». Все, что написано между строками «конец» и следующей процедурой, начинающейся со слова «это» воспринимается в ЛОГО как комментарий. 
Для того, чтобы написать простейшую процедуру (программу) изучим еще одну команду. Это команда, заставляет черепашку повторять то или иное действие какое-то количество раз. Таким образом, это примитив (команда) реализует циклическую структуру алгоритма.

Команда
Параметр
Действие
Сокращенная форма
примеры
повтори  к [действия]
к – количество повторений; действия – команды или определенные пользователем процедуры. Черепашка повторяет те действия, которые указаны в скобках
повтори 100 [вп 1 жди 1]
черепашка будет медленно двигаться 100 шагов (жди это пауза в действиях)
Теперь можно приняться за обучение черепашки новым командам. Первая из них будет заставлять черепашку рисовать квадрат. Алгоритм рисования очень простой. Черепашка должна идти какое-то количество шагов вперед, а потом поворачиваться на 900.
Примерный текст процедуры квадрата следующий:
это квадрат
по
повтори 4[ вп 60 пр 90]
конец
Для того, чтобы черепашка выполнила новую команду, достаточно просто написать имя процедуры в поле команд:
кв
Теперь у черепашки есть новая команда, которую она может выполнять.

Использование процедур в процедуре


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


Этот узор составлен из шести квадратов, повернутых относительно друг друга на 600. Текст программы узора может быть таким: это узор
нрп 4 нц 25 по
повтори 6[квадрат пр 60]
конец
При выполнении процедуры узор черепашка нарисует похожую на приведенный рисунок картинку.

Процедура с параметрами

Параметр это величина, которая может принимать различные значения и описывает какие-либо характеристики объектов. В модуле параметр имеет имя, записываемое чаще всего буквами. Значение параметра можно изменить, при этом меняется результат работы процедуры.
В качестве примера можно рассмотреть процедуры для квадрата и треугольника. Введем для них один параметр, означающий длину стороны правильной фигуры. Обозначим его . В Лого знак  « перед именем параметра обязателен и показывает, что мы имеем дело со значением параметра, а не с его именем. При этом не стоит забывать, что между « и именем параметра пробела быть не должно.
Имена всех используемых параметров нужно обязательно указывать в первой строке процедуры (в заголовке процедуры).
тексты процедур для квадрата и треугольника будут выглядеть следующим образом:
*********************************************
это кв :д
по
повтори 4[ вп :д пр 90]
конец
*********************************************
это тр :д
по
повтори 3[вп :д пр 120]
конец
*********************************************
Для того, чтобы черепашка нарисовала нужные фигуры, при вызове процедур необходимо указать конкретные значение параметра. Например, для получения квадрата со стороной 100 шагов черепахи надо набрать в поле команд строку:
кв 100
При выполнении этой команды параметру присваивается значение, равное 100 и выполняется процедура с этим значением параметра.

Комментариев нет:

Отправить комментарий