目录

Logo - 快速指南

Logo - Introduction

徽标是一种非常简单易学的编程语言。 它用于教学生和孩子如何编程计算机。

我们为什么要学习Logo语言?

  • 因为它很有趣,很有趣。
  • 增强孩子的逻辑意识。
  • 培养编程技巧。
  • 这是真正的计算机科学。

Logo是一种非常简单有趣的编程语言。 它有足够的深度来虚拟地做任何事情,这可以用任何其他计算机编程语言完成。

如何下载和安装MSW徽标软件?

如果计算机上未安装徽标编程软件,我们可以从以下链接免费获取 -

www.softronix.com/mswlogo.html

安装后,它会在您的计算机桌面上放置一个徽标图标。

标志图标

MSW Logo屏幕有两个部分 -

  • 上面的绘图窗口,中间有一个三角形的TURTLE。
  • Commander窗口,如下面的屏幕截图所示。
MSW标志画面

我们将在命令行中编写命令,即Commander窗口底部的文本框。 要执行或运行这些命令,请按Enter键或单击“执行”按钮。 我们也可以一次在线编写和运行多个命令。

命令历史记录将显示在灰色框中。 单击历史记录中的一行以使其跳转到相应的命令行,然后我们可以进行更改(如果需要)。 完成后,按Enter键或单击“执行”按钮。

Logo - Turtle

简单的Logo绘图命令可以向前和向后移动Turtle,也可以向右或向左移动。 命令及其缩写如下 -

  • fd - 前锋
  • bk - 落后
  • rt - 对
  • 对 - 离开
  • cs - 清除屏幕

可以使用这些命令的任一版本。 除了cs命令之外,每个命令必须后跟一个名为其参数的值。 fd和bk的参数是单位; 那些rt和lt是可以是任何整数的角度。 360度旋转是完全旋转,因此旋转375度与1/15度相同。

  • forward 60fd 60意味着前进60步

  • right 90rt 90表示右转90度

  • left 90lt 90表示左转90度

  • back 60bk 60意味着返回60步

  • clearscreencs表示擦除所有图纸。 这将Turtle设在中心位置

图形窗口具有坐标系。 中心的两个坐标(通常称为x和y)的值为0,0。在东北角,它们是250,250; 在东南角,他们是250,-250。 在西南角,他们是-250,-250; 如果Turtle试图走到屏幕的一侧,它会缠绕在一起。 右侧包裹在左侧,顶部包裹在底部。

许多编程系统都在相同类型的双轴'xy'坐标平面上工作,我们也在代数中使用它。

龟

这里,'0 0'是中心或原点(这里没有逗号或括号!)。 在其中心,缩放 - “正常”状态下,Logo的绘图屏幕显示从中心向上或向下约300点和向右或向左300点的区域。

Turtle可以用与罗盘相对应的标题指示,0或360度直指向上,向右直90度,依此类推。 您可以将变量设置为0到360之间的数字,然后在该路径上行走。

Turtle Commands

现在让我们尝试一些命令。 命令将每行发出一个,然后是回车符。 其中一些命令可以在命令窗口中连续输入,然后返回回车符。 对Turtle的影响是一样的。 但是,如果键入命令,该命令需要一个或多个输入并在下一行提供缺少的输入,则Logo将显示错误。

以下是练习命令,在右侧显示所需的结果。

龟命令

命令 - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120 ,导致Turtle绘制三角形,正如你可以通过尝试它们看到的那样。

这些命令从左到右读取。 由于命令fd需要一个参数,因此将其作为下一个值。 同样, rt也会引用一个论点。 因此,Logo可以为这些字符串中的每一个赋予明确的含义。 对于某些徽标命令,需要使用分隔符。

以下是一些具有所需结果的练习命令。

练习2

练习2

练习2

练习2

下面是一个练习,以检查你在本章到目前为止学到的知识。

行使

Logo - Controlling the Turtle & Pen

Logo有许多其他绘图命令,其中一些在下面给出。

  • pu - penup

  • pd - pendown

  • ht - hideturtle

  • dt - showturtle

  • setpensize

pendown和penup命令分别告诉Turtle在移动或不移动墨水时在屏幕上留下墨迹。 hideturtleshowturtle命令隐藏或显示Turtle,但不影响它在移动时留下墨水的能力。 home命令使Turtle返回到屏幕中心。 当Turtle回到屏幕中心时,它可能会留下墨水。 setpensize命令决定绘图笔的大小。

  • penuppu意味着捡起笔,所以你可以移动龟而不留penup

  • pendownpd意味着选择笔,所以你可以移动Turtle并离开轨道。
  • hideturtleht意味着隐藏Turtle,所以你可以欣赏你的绘画。

  • showturtlest表示Turtle,所以你可以继续你的绘图。

  • setpensize意味着它可以使笔更大,更容易看到。 默认笔尺寸为 - [1 1]。

以下是一些具有所需结果的练习命令。

练习指挥1

练习指挥2

练习指挥3

Logo - Turtle World

Logo还有许多其他附加绘图命令,其中一些命令如下。

  • home
  • cleartext or ct
  • label
  • setxy

label命令将一个单词作为带引号的字符串(例如“a_string”)或[]括号中的单词列表而不带引号(例如[一串字母])并将它们打印在Turtle位置的图形窗口中。 让我们考虑以下代码。

指挥官

setxy命令采用两个参数,将第一个视为横坐标(水平轴)的值,第二个视为纵坐标(垂直轴)的值。 它将Turtle放在这些坐标处,可能在到达这些坐标时留下墨水。 在以下三个图中,我们展示了如何使用setxy命令。

图1

Figure2

Figure3

cleartext命令(缩写为ct )清除命令窗口的文本区域。

明文司令部

Exercise

下面是一个练习,以检查你在本章到目前为止学到的知识。

以下命令序列产生什么样的数字?

从左到右阅读这些命令时解释这些命令。 尝试找出结果。

以下是命令摘要表。

命令名称 目的
setx 100

将Turtle的x坐标设置为+100

将它移动到中心右侧100点

没有垂直变化

setx -200

将Turtle移动到中心左侧200点

没有垂直变化

sety 150

将Turtle的y坐标设置为150

将它移动到中心150点以上

没有横向变化

sety - 50

将Turtle移动到中心以下50点

没有横向变化

setxy 100 100

将Turtle移动到xy坐标100 100

显示xcor

显示ycor

报告Turtle的x坐标

报告Turtle的y坐标

设定0

seth 0

将龟直接指向“高中午”

seth 120

将Turtle移动120度指向四点钟位置

以下屏幕截图是上述某些命令的实际演示。

实际演示

Logo - Variables

变量是可以包含值的内存位置的名称。 在计算机中,每个存储器位置都有一个整数地址。 由于很难记住包含程序使用的值的每个位置的地址,因此计算机科学家已经找到了给出这些位置的方法,即符号名称。 一旦变量具有名称,我们就可以使用和操作它。

变量的名称是字母串。 变量名称可以包含字母表(不区分大小写),数字和下划线。 可以使用前面的“:”在计算中访问变量名。 让我们在屏幕截图中考虑以下示例。

变量

在上面的例子中,我们定义了两个变量first_name, 100_last_name_200 ,并使用以下语句用值AmalDas初始化它们 -

  • make “first_name “Amal
  • make “100_last_name_200 “Das

此外,我们使用语句print:first_name和print:100_last_name_200打印这两个变量。

以下示例显示如何定义数字变量 -

数字变量

在这里,我们定义了两个数值变量val1val2 。 我们还使用它们进行了加法和减法。

Logo - Arithmetic Operations

Logo提供加法,减法,乘法和除法的常用算术运算,用符号+, - ,*,/表示。 这些操作中的每一个都产生结果。 如果您不对结果执行某些操作(例如打印),则徽标将显示错误。

使用print命令,可以在命令窗口中使用和打印算术运算的结果。 以下屏幕截图中给出的示例演示了相同的内容

算术运算符

其他有用的命令是 -

  • sqrt - 它接受一个非负参数并返回其平方根。

  • power - 它需要两个参数,称它们为'a'和'b',并产生一个b功率。

  • ln - 它接受一个参数并返回其自然对数。

  • exp - 它需要一个参数并计算e到该幂,e是自然数2.718281828。

  • log10 - 以对数为基数10的一个参数。

以下屏幕截图显示了上述命令及其各自输出的示例。

有用的命令

算术运算符的优先级决定了它们的计算顺序。

Note - 打印60 * sqrt 2和打印sqrt 2 * 60会产生不同的答案。 这里*运算符优先于sqrt运算符。 因此,如果有选择,*将在sqrt之前完成,如第二种情况。

因此,第一个语句打印的值是平方根2的60倍,而第二个语句打印的平方根为120,如下面的屏幕截图所示。

声明打印价值

Logo - Repetition

我们经常重复一系列命令。 计算机程序经常执行重复的任务。 几乎每个编程系统都有一种方法来执行这种重复或迭代,就像计算机科学家所说的那样。 让我们考虑以下示例 -

让我们假设我们想绘制一个长度为100的边的正方形,我们可以用以下程序来做 -

我们注意到两个命令 - fd 100和rt 90重复四次。 告诉计算机它应该重复这两个命令四次而不是连续四次写入它会不会更简单? 我们可以使用以下命令完成此操作 -

重复练习1

它节省了我们打字的时间来制作正方形。 一般形式是: repeat number [commands] 。 我们必须使用关键字 - repeat后跟一个数字,然后使用[方括号]中的一系列命令。

通常,我们可能不得不在重复内重复。 这称为nesting 。 让我们看一下这方面的一些例子。

重复练习2

重复练习3

下面是一个练习,以检查你在本章到目前为止学到的知识。

重复练习

Logo - Randomization

有时,计算结果不可预测会很有趣。 徽标提供随机程序以生成随机数。 它有一个参数并产生一个随机均匀选择的整数值,该值大于或等于0且小于其参数的值。 因此,如果您想要一个0到359度之间的随机角度,您可以使用命令random 360来生成它。 请记住,除非您对结果执行某些操作(例如打印),否则徽标将显示错误。

让我们看看下面的例子 -

随机化实例

我们发出了命令 - 在上面的命令窗口中多次print random 360 ,如果你注意到,每次都会产生一个随机输出。

以下是一些具有所需结果的练习命令。

随机实践1

随机实践2

Logo - Procedures

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

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

子程序是另一个程序执行的命名步骤序列。 子程序的其他名称是程序和功能。 在Logo中,您告诉计算机如何做某事 - 例如 -

一旦我们描述了Logo的过程,我们就可以在命令行中输入它的名字,就像我们对任何内置的东西一样。 在这种情况下,我们将在命令行上键入“square”,Logo会查找命令以生成正方形。

单击Edall (编辑全部)按钮以显示Logo的内置编辑器。 (如果您的徽标没有Edall按钮,请在命令行中键入“edall”)。 以下代码块具有子程序所需的结构。

程序或子程序必须以“to”一词开头,然后是我们想到的名称。 下一步是键入我们在命令行上编写的所有相同步骤。 该程序必须以“结束”一词结束。 所有注释或注释行都应以分号(;)开头。

以下是上述例子的实际演示 -

实际演示

现在,从命令行,使用其名称“square”执行该过程,如下所示 -

广场

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

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

预定义程序

以下屏幕截图显示了调用过程“flower”时的输出 -

花

我们不希望每个广场都具有相同的尺寸 - 我们想要多样化。 在Logo中,我们创建变量,我们可以更改其值。 在以下示例中,我们将使用相同的平方过程并进行少量更改。

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

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

命令行

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

通过两个论点

Logo - Recursive Procedures

在递归过程中,将在过程中对过程进行重复调用。 让我们考虑以下代码 -

已经从过程体本身调用了过程spiral_recur。 以下屏幕截图显示了代码的执行和输出。

递归程序

Logo - Decision-Making

决策和变量结合在一起。 程序需要能够根据情况改变路线。 例如,这里是绘制螺旋的框架。 它有一个循环,前面显示的重复变化,循环体是我们填写的。

上面的代码显示了MSW徽标语法的几个新功能。 我们通过键入'make'将变量设置为新值,然后变量的名称前面加一个双引号“而不是冒号':',如下所示。

但是,我们使用变量,在其名称前面加上冒号':'。

执行'while [condition]'后括号中的代码,条件为真。 当它不再成立时,因为(在这种情况下)':n'的值增长大于100,所以执行括号后面的代码。

以下屏幕截图显示了上述代码的执行和输出。

做决定

现在,我们将讨论'if语句'的使用,它具有仅在给定条件为真时才执行的代码。

它还显示了一个生成随机数的内置徽标。 语句random 3在随机序列中任意生成任意数字0或1或2。 然后程序决定“随机”走哪条路。 生成的随机数将保存在'r'中,以后根据变量'r'的值,将执行if语句之一,这将满足条件。 因此,如果 -

  • 'r'的值为0,然后执行[fd 20]
  • 'r'的值为1,然后执行[rt 90 fd 20]
  • 'r'的值为2,然后执行[lt 90 fd 20]

以下屏幕截图显示了上述讨论的执行和输出。

随机序列

Logo - Strings

任何字母数字字符序列,例如 - “america”,“emp1234”等都是字符串的示例。 计算字符是所有字符串过程中最基本的。 问题stringlength "abc12ef的答案stringlength "abc12ef由以下程序给出 -

在上面的过程中,''是包含输入字符串的变量。 变量inputstring包含输入字符串的副本。 变量计数初始化为0.在while循环中,条件检查字符串是否变空。 在每个循环计数中,变量增加1以保持长度计数。 语句print first :s ,仅打印存储在's'中的字符串的第一个字符。

该语句make "s butfirst :s ,检索除第一个字符之外的子字符串。从while循环退出后,我们打印了字符计数或输入字符串的长度。以下是代码的执行和输出。

字符串

Logo - Color

计算机屏幕使用红色,绿色和蓝色光组件,因此有时称为RGB screens

在Logo的Set菜单上,我们可以设置三个屏幕元素的颜色 -

  • The turtle's pen
  • Turtle的填充物(如外壳的油漆桶)
  • The screen background
笔颜色

我们通过向左和向右移动这三个滑块来设置颜色。 请记住,黑色是没有所有颜色,白色是所有颜色。 混合光不像混合涂料。 例如,如果你混合红色和绿色油漆,你会得到一个泥泞的颜色。 由于这是一台计算机,因此每种颜色都有内部数字表示。

在滑动标尺的左端是零(0)。 在右端是255,这有点像计算机的99(它是2 8 - 1)。 因此,黑色为[0 0 0],红色为[255 0 0],绿色为[0 255 0],蓝色为[0 0 255]。 你可以在这些颜色之间做任何事情,在所有这些颜色中,有256 * 256 * 256种可能的颜色。 这是2 8 * 2 8 * 2 8 ,或24位颜色 - 机器内部的24位二进制数字。

以下命令会给你一个大红色的笔 -

当您使用滑块找到喜欢的颜色时,可以询问徽标它是什么:选择笔颜色,然后在命令窗口中输入以下命令。

以下屏幕截图显示了上述代码的执行和输出。

笔颜色选择

您可以使用以下步骤制作彩色方块 -

Step 1 - 使用以下命令绘制边长为40的正方形。

Step 2 - 使用以下命令进行操作。

Step 3 - 转到广场内的一个点。 例如,使用以下命令将Turtle放置在坐标(20,20)处。

Step 4 - 用设置的泛色填充方块。 例如,要将floodcolor设置为蓝色,请使用以下命令。

下表列出了一些与颜色和笔相关的命令。

颜色和笔命令 命令的目的

setpencolor [rgb]

setpc [rgb]

设置Turtle笔的颜色

rgb是范围[0,255]中的数字

setfloodcolor [rgb]

setfc [rgb]

设置背书区域的颜色

setscreencolor [rgb]

setsc [rgb]

设置背景的颜色

显示pencolor

显示泛色

显示screencolor

指定命名项的[rgb]的当前值

Fill

在光标位置转储一桶当前泛色

Fill

在光标位置转储一桶当前泛色

尝试执行以下命令集 -

  • cs - 清除屏幕。

  • home - 把龟带到家里。

  • setpensize [5 5] - 设置笔的大小。

  • setpencolor [255 0 0] - 将笔颜色设置为红色。

  • setfloodcolor [0 0 255] - 将泛色设置为蓝色。

  • setscreencolor [0 255 0] - 将屏幕颜色设置为绿色。

  • repeat 4 [fd 40 rt 90] - 画一个边长为40的正方形。

  • pu - Pen up。

  • setxy 20 20 - 将Turtle放在坐标处(20,20)。

  • fill - 用设置的泛色蓝色填充方块。

  • ht - 隐藏Turtle。

执行上述命令时,您应该收到以下输出。

命令集
<上一篇.Logo - Color
↑回到顶部↑
WIKI教程 @2018