Учебники

Логотип — Процедуры

Процедуры предоставляют способ инкапсулировать коллекцию команд. После того, как процедура была создана, ее можно использовать так же, как встроенную команду. «Значение» процедуры — это значение ее отдельных команд.

Процедура без аргументов имеет слово «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

Вот практическая демонстрация приведенного выше примера —

Командная строка

Теперь давайте обсудим, как передать два аргумента в процедуру. Следующий скриншот — практическая демонстрация того же самого.