Logo - 过程

过程提供了一种封装命令集合的方法。一旦创建了过程,就可以像使用内置命令一样使用它。过程的"含义"是其各个命令的含义。

没有参数的过程在第一行有单词"to"(保留字)和过程名称。(Logo 中的保留字不能用作变量,并且具有明确的含义和用途。)它在最后一行有保留字"end"。

子程序是另一个程序要执行的命名步骤序列。子程序的其他名称是过程和函数。在 Logo 中,您可以告诉计算机如何做某事 — 例如 −

to square
repeat 4 [fd 100 rt 90]
end

一旦我们向 Logo 描述了我们的程序,我们就可以在命令行中输入它的名称,就像我们对任何内置的东西所做的那样。在这种情况下,我们会在命令行中输入"square",Logo 会查找命令来制作一个正方形。

单击按钮 Edall(用于编辑全部)以调出 Logo 的内置编辑器。(如果您的 Logo 没有 Edall 按钮,请在命令行中输入"edall")。以下代码块具有子程序所需的结构。

to procedurename
此处输入程序步骤
end

程序或子程序必须以单词"to"开头,后跟我们想到的名称。下一步是输入我们在命令行中编写的所有相同步骤。程序必须以单词"end"结尾。所有注释或备注行前面都应加分号 (;)。

以下是上述示例的实际演示 −

Practical Demonstration

现在,从命令行,使用其名称"square"执行过程,如下所示 −

Square

过程不仅可以包含内置命令,还可以包含其他过程。

在下面的示例中,过程"flower"从其主体调用我们预定义的过程"square"。

Predefined Procedure

以下屏幕截图显示了调用过程"flower"时的输出−

Flower

我们不希望每个方块都是相同大小——我们希望有多样性。在 Logo 中,我们创建变量,其值可以更改。我们将在以下示例中使用相同的 square 过程,但略作修改。

to square :n
repeat 4 [fd :n rt 90]
end

我们在命令行上为 Logo 提供':n'的替换值,如下所示。

square 50
square 75
square 100

以下是上述示例的实际演示 −

Command Line

现在让我们讨论如何将两个参数传递给过程。以下屏幕截图是相同的实际演示。

Pass Two Arguments