Процедуры предоставляют способ инкапсулировать коллекцию команд. После того, как процедура была создана, ее можно использовать так же, как встроенную команду. «Значение» процедуры — это значение ее отдельных команд.
Процедура без аргументов имеет слово «to» (зарезервированное слово) и имя процедуры в первой строке. (Зарезервированные слова в логотипе не могут использоваться в качестве переменных и имеют четкое значение и использование.) В последней строке зарезервированное слово «конец».
Подпрограмма — это именованная последовательность шагов для выполнения другой программой. Другими названиями подпрограмм являются процедуры и функции. В логотипе вы говорите компьютеру, как сделать что-то, например,
to square repeat 4 [fd 100 rt 90] end
После того, как мы описали нашу процедуру для Logo, мы можем ввести ее имя в командной строке, так же, как мы поступили бы с любой из встроенных вещей. В этом случае мы будем вводить «квадрат» в командной строке, и Logo ищет команды для создания квадрата.
Нажмите кнопку с надписью Edall (для редактирования всех), чтобы открыть встроенный редактор Logo. (Если ваш логотип не имеет кнопки Edall, введите «edall» в командной строке). Следующий кодовый блок имеет требуемую структуру подпрограммы.
to procedurename steps of your procedure here end
Процедура или подпрограмма должны начинаться со слова «to», за которым следует имя, о котором мы думаем. Следующий шаг — ввести все те же шаги, которые мы напишем в командной строке. Процедура должна заканчиваться словом «конец». Всем комментариям или примечаниям должна предшествовать точка с запятой (;).
Ниже приводится практическая демонстрация приведенного выше примера.
Теперь из командной строки выполните процедуру, используя ее имя «квадрат», как показано ниже —
Процедуры могут содержать не только встроенные команды, но и другие процедуры.
В следующем примере процедура ‘flower’ вызывает нашу предопределенную процедуру ‘square’ из своего тела.
Следующий скриншот показывает вывод при вызове процедуры «цветок» —
Мы не хотим, чтобы каждый квадрат был одинакового размера — мы хотим разнообразия. В Logo мы создаем переменные, значения которых мы можем изменить. Мы будем использовать ту же самую квадратную процедуру с небольшим изменением в следующем примере.
to square :n repeat 4 [fd :n rt 90] end
Мы даем Логотипу заменяющее значение для ‘: n’ в командной строке, как показано ниже.
square 50 square 75 square 100
Вот практическая демонстрация приведенного выше примера —
Теперь давайте обсудим, как передать два аргумента в процедуру. Следующий скриншот — практическая демонстрация того же самого.