tceic.com
简单学习网 让学习变简单
当前位置:首页 >> 学科竞赛 >>

LOGO语言竞赛培训课件


LOGO语言简介
LOGO语言是一种早期的编程语言, 也是一种与自然语言非常接近的编程语言, 它通过“绘图”的方式来学习编程,对初 学者特别是儿童进行寓教于乐的教学方式。 LOGO语言创始于1968年,是美国国 家科学基金会所资助的一项专案研究,在 麻省理工学院的人工智能研究室完成。

LOGO语言简介
LOGO语言是由美国 麻省理工学

院人工智能 实验室于1968年开发成 功的。它的创始人是一 位数学家,名字叫西 蒙· 佩伯特(Seymour Papert )。又译为 西蒙· 派珀特,或西 蒙· 佩帕特。

什么是LOGO
? LOGO原意是“文字、符号”和“思考”、 “思想”。还有“标记、商标”等意思。

pc logo for windows基础
1、软件的安装 2、界面简介 了解标题栏、菜单栏、工具栏、绘图窗口、小海龟、命 令窗口、提示符( ?)、光标 (|)、状态栏以及常见 的工具按钮。 3、了解窗口的各种显示方式以及切换方法 LOGO语言中,可以用各窗口的最大化和还原命令改 变窗口的显示状态,也可以用输入命令的方法改变窗口的 显示状态(窗口界面视图的切换命令): FS (fullscreen) 全图状态命令,即全图方式。 SS (splitscreen)图文混合状态命令,即图文方式。 TS (textscreen)全文本状态命令,即文本方式。

pc logo for windows基础
全图状态时,看不到从键盘上输入的任何命 令,只能看到海龟画图区域。(但,此时,仍然 可以通过键盘输入并执行命令)。这时输入SS命 令,就可以回到图文混合状态了。 LOGO语言命令可以使用简写,如 FORWARD 是前进命令,可以简写为 FD。 在小 学教材中,一般使用的都是简写以便于学生记忆。 再如LEFT 是左转命令,简写为 LT。 RIGHT 是右转命令,简写为 RT。 BACK 是后退命令, 简写为 BK。 LOGO命令不分大小写。

简单的绘图命令
FD(forward) 参数 前进 BK(back) 参数 后退 RT(right) 参数 右转 LT(left) 参数 左转 注意:命令和参数之间必须用空格分开, 执行命令时必须按回车键。

练一练
练习1: 将FD 40 RT 90 连续输入四次,分别回 车,看看画出了什么?将FD 与RT 改为 BK 与LT再操作一次。(连续输入4次)
练习2:课本P5 第5题

退出软件的方法
(1) 使用BYE命令。 (2) 使用文件菜单中的“退出”命令。

(3)单击窗口右上角的关闭按钮。

思考题(P6 )
1、DRAW命令有什么作用? (DRAW 是初始化命令。 使系统恢复到启动状态。 效果是:清屏后,海龟归位,设臵的属性全部初 始化,即,海龟回到原点(又称源点或母位)位 臵,头向上,笔粗为1,笔色为黑色。 例如:比较一下 setw 20 fd 40 cs fd 50 和 setw 20 fd 40 draw fd 50 ) 2、小海龟只会一步步走路吗?怎样让小海龟 飞一段路程再走呢? (PU PD命令)

第2课涉及的几个命令
? ? ? ? ? PU(penup)抬笔命令 让海龟把脚抬起来,移动时不画线。 PD (pendown)落笔命令 让海龟把脚落下,移动时画出线来。 HT(hideturtle)藏龟命令 ST (showturtle)显龟命令 CLEAN 清图命令。清除屏幕上的图形,海龟的状态不变。即,只清 除屏幕上的图形,不改变海龟的位臵和方向。(海龟不归位)。 CS (clearscreen)清屏。 清除屏幕上的图形,海龟回母位。但,设臵 的属性仍保留。 例如: setw 20 fd 40 cs fd 50 Draw 初始化命令。 使系统恢复到启动状态。效果是:清屏(绘图窗 口)后,海龟归位,设臵的属性全部初始化,即,海龟回到原点位臵, 头向上,笔粗为1,笔色为黑色。 Home 回家命令。使海龟回到母位。 不清屏,海龟回到屏幕中心。 (带线归位)。例如: fd 60 rt 30 fd 40 home 可以利用带线归位的功能画图,例如: fd 60 rt 90 fd 30 home CT(cleartext)清文本 作用是:清除命令窗口所有文本,“?”提示 符回到第一行。

?
?

?
? ?

练一练
? 教材P10 5、6 ? P11 7、8

思考一下
? 怎么在画完图后,让小海龟不留痕迹回家, 并保留屏幕上画好的图形? (PU HOME) ? CLEAN与DRAW命令有什么相同点和不同 点? ? 在学过的命令中,哪些命令后面需要参数, 哪些命令后面不需要参数? ? 小海龟已经能画出很多好看的图形了,但 颜色单一,你能改变它吗?

小经验
? 修改错误的方法:在命令状态下,可以用键盘上 的四个光标控制键来移动光标。如果发现命令有 错误,首先将光标移到要删除的字符处,删除字 符,再键入正确的字符。 如果发现某个地方漏打 了字符,例如,命令 RT90在命令与数字之间忘 记输入空格了,可将光标移到字符“9”前,按一 下空格键,命令就变成了RT 90 了。 ? 小窍门:使用历史记录运行执行过的命令。在 LOGO语言里,若把光标键移到已经执行过的命 令上,回车,则可再次执行命令。例如:输入 FD 60 RT 90 回车后,用上述方法再执行三次,看 画出了什么图形。

REPEAT重复命令
重复命令格式: REPEAT 重复次数 [重复内容] P12 看一看 repeat 2 [fd 40 rt 90 fd 80 rt 90] repeat 36 [fd 10 rt 10] 比较一下:repeat 6 [fd 50 rt 60] 与 lt 30 repeat 6 [fd 50 rt 60]

想一想
? 不用重复命令怎样画正方形和长方形? ? 用重复命令怎样画正方形和长方形?体会一下重 复命令的好处。 ? 怎样用重复命令画正三角形?怎样画出顶点朝正 上方的正三角形?画顶点朝正上方的正五边形呢? 答案:lt 18 repeat 5 [fd 60 rt 72] ? 在画上面各正多边形时,你怎样根据多边形的内 角和公式计算旋转角度?[先根据(n-2)*180算出内 角和,再除以n 算出内角,再用“180-内角”算 出外角。旋转的角度就是外角的度数。]

用重复命令画正多边形公式
观察下面的列表,可以发现,小海龟在画正多边形时, 重复的次数与转角度数的乘积总是等于360度。 从表中可以看出,画正多边形时,转角的度数是正多 边形的一个外角的度数。在画正多边形时只要用360度除 以边数,就可以得到转角的度数。 画正多边形的公式:REPEAT 边数[FD 边长 RT 360/边数]
正多边形 重复次数 一个内角(度数) 转角(度数) 乘积(度数)

正三角形
正方形 正五边形 正六边形 正八边形

3
4 5 6 8

(3-2) ×180÷3=60
(4 -2)×180÷4=90 (5-2)×180÷5=108 (6-2)×180÷6=120 (8-2)×180÷8=135

120
90 72 60 45

120×3=360
90×4=360 72×5=360 60×6=360 45×8=360

小经验
? 注意:在计算机语言中,除号是/ 乘号是* ? 在画正多边形时,边数越多,边长就要越 小些。否则画出的图形会出界导致错乱。

练一练
? 练习画一下正三角形、正方形、正五、六、 七、八、九、十边形。 ? 想一想:画正七边形时,转角的度数怎么 表示呢?

画圆
如何用REPEAT命令画一个圆呢? (在LOGO语言中,通常采用 画一个正36边形来近似画圆。我们画圆一般是根据确定圆心和圆的半 径来画,如果圆的半径为r,那么圆的周长就是 2πr 。 这样得到下面 的式子: 36×边长=2πr 所以, 边长=2πr÷36=πr÷18 所以,画圆的公式为: repeat 36[fd 半径*0.174 rt 10] 有了这个式子,只要确定了圆的半径,就可以画出指定半径的圆 了。 例如:画一个半径为10的圆 repeat 36[fd 3.14*10/18 rt 360/36] 即 repeat 36[fd 3.14*10/18 rt 10] 或repeat 36[fd 10*0.174 rt 10] 在LOGO语言中,圆周率π可以写成 PI,系统默认是两位小数。 所以,上面的语句也可以写成 : repeat 36[fd PI*10/18 rt 10] 提示:若不指定半径,我们常常直接使用这样的命令画圆: repeat 36[fd 边长 rt 10] 如: repeat 36[fd 10 rt 10] 也可以使用这样的两次旋转,使画出的圆更平滑: repeat 36 [rt 5 fd 10 rt 5]

小知识
repeat 命令是可以嵌套的。例如: repeat 4 [ repeat 36[fd 10 rt 10] rt 90] 想一想:这个语句能画出什么图形? 试一下。然 后改变最外层的旋转角度和旋转次数,再试试。 将用重复命令画的其它图形,加上外部的嵌套 (重复次数自定),看看能画出什么图形。例如: repeat 18 [ repeat 5 [ fd 80 rt 144 ] rt 20] repeat 12 [ repeat 6 [ fd 70 rt 60 ] rt 30] repeat 6[ repeat 6 [ fd 70 rt 60 ] rt 30] 提示:当最外层的旋转次数与旋转角度的积是 360的时候,正好会旋转一周。 若积小于360呢?

重复命令嵌套练习
用重复命令嵌套完成下面的练习,要求旋转 一周: 1、用重复命令画一个圆,并旋转18次。 2、用重复命令画一个正方形,并旋转6次。 3、用重复命令画一个正八边形,并旋转8次。 4、用重复命令画一个五角星,并旋转18次。

重复命令嵌套练习(参见P35-36)
用重复命令嵌套完成下面的练习,要求旋转一周: 1、用重复命令画一个圆,并旋转18次。 repeat 18 [repeat 36[fd 10 rt 10] rt 20] 或 repeat 18 [repeat 36[rt 5 fd 10 rt 5] rt 20] 或 repeat 18 [repeat 36[rt 5 fd 5 rt 5] lt 20] 2、用重复命令画一个正方形,并旋转6次。 repeat 6 [repeat 4 [fd 100 lt 90] lt 60] 或 repeat 6 [repeat 4 [fd 100 rt 90] rt 60] 3、用重复命令画一个正八边形,并旋转8次。 repeat 8 [repeat 8[fd 50 lt 45] lt 45] 或 repeat 8 [repeat 8[fd 50 rt 45] rt 45] 4、用重复命令画一个五角星,并旋转18次。 repeat 18 [repeat 5[fd 120 rt 144] rt 20]

REPEAT命令使用范例 (P37)
? setpc 2 repeat 12 [pu fd 40 rt 30 pd repeat 3[fd 40 rt 120] lt 30 pu bk 40 rt 30]

? setpc 12 repeat 6 [ repeat 2 [fd 30 rt 90 fd 60 rt 90] rt 60]

REPEAT命令使用范例 (P37)
? setw 5 setpc 2 repeat 6 [lt 45 repeat 4 [ repeat 9 [fd 10 rt 10] repeat 9 [fd 10 lt 10] rt 90 ] rt 105 ] 或 setw 5 setpc 2 repeat 6 [lt 45 repeat 4 [ repeat 9 [fd 5 rt 10] repeat 9 [fd 5 lt 10] rt 90 ] rt 105 ]
提示:用重复命令画弧的公式: REPEAT 圆心角度数/10 [FD 半径*0.174 RT 10 ] 一般可以这样:REPEAT 圆心角度数/10 [FD 10 RT 10 ]

思考
? REPEAT命令中的中括号可以缺少一个吗? ? 利用重复命令,怎样画出下图呢?

参考答案

repeat 4[fd 60 bk 60 rt 90 pu fd 20 lt 90 pd]

改变笔色和背景色(P17)
? 改变笔色:可以通过工具栏 的按钮改变笔色。也可以使 用命令: setpc 颜色代码 (0~15) ? 背景色也可以改变,大家试 试用工具栏改变背景色。 用 命令是: setbg 颜色代码 (0~15) ? 从工具栏中,单击改变颜色 按钮,打开颜色列表。看看 各颜色的代码。记一下。

颜色代码表

代 码

0

1

2

3

4

5

6

7

8

9

10 11 12 13 14 15

颜 深 深 灰 深 浅 浅 浅 浅 浅 黑 绿 青 紫 棕 黄 白 色 蓝 红 白 灰 蓝 绿 青 红 紫

填充颜色命令 FILL
FILL 填充颜色命令。 使用该命令时,必须先使小海龟抬笔走 进要填充颜色的封闭图形中,然后落笔再 执行该命令。 例如: setpc 12 setbg 14 repeat 4[fd 100 rt 90] pu rt 45 fd 30 pd fill

小知识
给带有边色线的图形填充不同的颜色,命令格式为: (FILL 图形线的颜色) 注意:一定要有括号。 例如: setpc 12 (设笔色为浅红) repeat 4[fd 100 rt 90] ; 画出一个边线色为浅红色的正方形 rt 60 pu fd 40 pd setpc 14 ; 设笔色为浅蓝 (fill 12) ; 在浅红边框的正方形内填充浅蓝色

想一想
? 下面的第二条语句能画出什么图形?若想 给画出的图填色,横线上应该写什么语句? draw setw 5 repeat 36 [fd 15 rt 10] rt 90 pu fd 30 pd setpc 12 ________________ (FILL 0)

反笔命令(PX) 与笔擦命令(PE)
? 反笔命令不太常用,略。 请课后自已阅 读P18页内容。 ? PE(PENERASE) 笔擦命令。 ? 例如 ? fd 60 ? pe bk 60 请自由阅读 教材P19-21

练习(P21 4)
? 先想一想,下面语句能画出什么图形?然 后画一下。
REPEAT 4 [REPEAT 4 [FD 50 RT 90] RT 90]

? 画出上面图形后,若想擦除所画的图形, 应该输入什么命令呢?
PE REPEAT 4 [REPEAT 4 [FD 50 RT 90] RT 90] 当然,也可以先输入PE ,回车后,再把光标定位在上面的语句上, 再回车。

想一想
? 如何使用PE命令画一条虚线?
可参考下面语句: FD 150 PU BK 20 PE BK 20 PU BK 20 PE BK 20 PU BK 20 PE BK 20 PU BK 20 PE BK 20 注意:执行语句后若 再想画线,必须先执行落笔命令。 也可参考下面语句: FD 20 PU FD 20 PD FD 20 PU FD 20 PD FD 20 PU FD 20 PD FD 20 PU FD 20 PD

设臵笔宽命令
格式: SETW N 即, SETW 笔宽值(N是笔头型号, 也就是笔宽的值 。取值范围是 1~999 值越大画出的线越粗。初始化状态值为1。 例如: SETPC 12 SETW 30 FD 60 再如:FD 2 BK 2 ; 画点后海龟归位

画点的范例 (P24)
setw 20 setpc 12 fd 2 bk 2 ;画出一个点 pu rt 90 fd 20 lt 90 pd ;改变位置 setw 10 setpc 2 fd 1 bk 1 ;画出另一个点
画出连续的点: SETW 20 FD 2 BK 2 PU RT 90 FD 40 LT 90 PD SETW 10 FD 1 BK 1 PU RT 90 FD 40 LT 90 PD SETW 20 SETPC 12 FD 2 BK 2

读一读
? 自学教材 P24~25 的“练技能”部分。了 解各语句的作用。 ? 想一想,P25 第4题的各图应该如何画? ? 查询笔宽命令:WIDTH 例如: SETW 20 WIDTH ,则电脑显示 Result: 20

画椭圆和矩形
“看一看” (P27)
DRAW SETPC 12 (STAMPOVAL 40 40 “TRUE) PU LT 90 FD 350 RT 90 BK 130 PD SETPC 9 (STAMPRECT 700 120 “TRUE)

120 700

画椭圆命令
? 画空心椭圆
格式: STAMPOVAL 横轴半径 纵轴半径

? 画实心椭圆
格式: (STAMPOVAL 横轴半径 纵轴半径 “TRUE)
纵轴半 径
横轴半径

注意:画实心椭圆时, 一定要有括号。两个 参数相等时为正圆。

画矩形命令
? 画空心矩形
格式: STAMPRECT 长 宽

? 画实心矩形
格式: (STAMPRECT 长 宽 “ TRUE)
注意:画实心矩形时,一定 要有括号。两个参数相等时 为正方形。 长



小知识
? 用上述命令画椭圆后,小海龟在椭圆的中 心。 ? 用上述命令画矩形后,小海龟在矩形的左 下角。例如:
STAMPOVAL 120 50 STAMPRECT 120 50

练一练 (P29 3、4、5题)
提示:
第3题的前两图可以用STAMPRECT 和 STAMPOVAL命令通过修改参数来实现。 后一图,可以先画圆,也可以先画正方形, 画完一图后,要注意抬笔改变海龟的位臵 再落笔绘图。特别要注意画圆和画正方形 时,海龟处在所画图形中的位臵。

动脑筋
? 画矩形或椭圆时,海龟分别处在图形的什 么位臵?(答案略) ? 海龟在同一位臵画两个实心图形时,要注 意什么? ? STAMPOVAL 和 STAMPRECT 命令只能 画水平与垂直方向的椭圆和矩形吗?

动脑筋
? 画矩形或椭圆时,海龟分别处在图形的什 么位臵?(答案略) ? 海龟在同一位臵画两个实心图形时,要注 意什么?(答案:要注意区别两个图形的 颜色。) ? STAMPOVAL 和 STAMPRECT 命令只能 画水平与垂直方向的椭圆和矩形吗? (答 案:不管海龟角度如何,都只能画水平与 垂直方向的椭圆和矩形)

多龟作图
? 多龟作图常用方法:指名法、激活法。退出多龟 作图可以用draw命令。 1、指名法。使用呼叫命令: ASK 用ASK指名调 用海龟。 这种方法不够 灵活,用得较少。
格式: ASK [海龟代号] [命令组]

例如:
ASK 1 [FD 30 ST] ASK 2 [FD 60 ST] ASK 3 [RT 90 FD 60 ST] SETPC 12 可以发现有一只海龟变红色了。这是系统初始状态时那只0号海龟。 默认状态下,除0号海龟以外的海龟是不显示的。只有通过ST命令才 能让它们显示出来。

多龟作图
? 范例: ASK 1 [FD 30 ST] ASK 2 [FD 60 ST] ASK 3[BK 30 ST] ASK [1 2 3 ] [REPEAT 3[FD 30 RT 120]]

多龟作图
? 2、激活法。激活法常用TELL—WHO—EACH命 令激活并调用海龟。这是常用的多龟作图方式。 (告诉命令TELL是叫醒海龟的命令。用who命令 可以查看叫醒了几只。) ? 格式: TELL [海龟代号] ASK 1 [FD 30 ST] ASK 2 [FD 60 ST] ASK 3 [BK 30 ST] TELL [0 1 2 3 ] RT 90 FD 100 上面语句可以调用0~3号海龟同时作图。

多龟作图
? 也可使用告诉命令TELLALL。这也是叫醒海龟的 命令。用who命令可以查看叫醒了几只。 ) ? 格式: TELLALL 海龟代号1 海龟代号2 ? ASK 1 [FD 30 ST] ASK 2 [FD 60 ST] ASK 3 [BK 30 ST] TELLALL 0 2 RT 90 FD 100 上面语句可以调用0~2号海龟同时作图。

温馨提示
使用ASK呼叫命令和TELL告诉命令, 只能调用16只(0~15)海龟。若要调用更 多的海龟,可以用SETTURTLES 命令设臵 海龟的数量。 ? 例如: setturtles 300 ask 260 [fd 30 st] 若没用SETTURTLES 命令设臵海龟的数 量(1~32767),则类似ask 29 [fd 30 st] 这样的语句就会报错。

练技能 (P34 4)
第4题 让五只海龟一起来画奥林匹克五环标志图。 draw ht ask 1 [setpc 9 lt 90 pu fd 90 pd] ask 2 [setpc 12 rt 90 pu fd 90 pd] ask 3 [setpc 14 pu bk 30 lt 90 fd 45 pd] ask 4 [setpc 2 pu bk 30 rt 90 fd 45 pd] ask [0 1 2 3 4 5] [stampoval 35 35]

练技能 (P34 5)
第5题(1) 用多只海龟画出下列图形参考答案1 draw ht pu fd 50 pd fd 50 ask 1 [rt 24 pu fd 50 pd fd 50] ask 2 [rt 48 pu fd 50 pd fd 50] ask 3 [rt 72 pu fd 50 pd fd 50] ask 4 [rt 96 pu fd 50 pd fd 50] ask 5 [rt 120 pu fd 50 pd fd 50] ask 6 [rt 144 pu fd 50 pd fd 50] ask 7 [rt 168 pu fd 50 pd fd 50] ask 8 [rt 192 pu fd 50 pd fd 50] ask 9 [rt 216 pu fd 50 pd fd 50] ask 10 [rt 240 pu fd 50 pd fd 50] ask 11 [rt 264 pu fd 50 pd fd 50] ask 12 [rt 288 pu fd 50 pd fd 50] ask 13 [rt 312 pu fd 50 pd fd 50] ask 14 [rt 336 pu fd 50 pd fd 50]

练技能 (P34 5)
*第5题(1) 用多只海龟画出下列图形答案2

draw ht tellall 0 14 each [rt 24*who pu fd 50 pd fd 50]

练技能 (P34 5)
第5题(2) 用多只海龟画出下列图形,并把每个五角星变 成不同的颜色。
参考答案1: DRAW FD 70 REPEAT 5 [FD 20 RT 144] ASK 1 [ST SETPC 1 RT 45 FD 70 REPEAT 5 [FD 20 RT 144] ASK 2 [ST SETPC 2 RT 90 FD 70 REPEAT 5 [FD 20 RT 144] ASK 3 [ST SETPC 3 RT 135 FD 70 REPEAT 5 [FD 20 RT 144] ASK4 [ST SETPC 4 RT 180 FD 70 REPEAT 5 [FD 20 RT 144] ASK 5 [ST SETPC 5 RT 225 FD 70 REPEAT 5 [FD 20 RT 144] ASK 6 [ST SETPC 6 RT 270 FD 70 REPEAT 5 [FD 20 RT 144] ASK 7 [ST SETPC 7 RT 315 FD 70 REPEAT 5 [FD 20 RT 144]

练技能 (P34 5)
第5题(2) 用多只海龟画出下列图形,并把每个五角星变 成不同的颜色。
*参考答案2 DRAW TELLALL 0 7 ST EACH [ SETH 45*WHO SETPC WHO FD 80 REPEAT 5 [FD 30 RT 144]]
each [命令列表] 每只醒着的海龟都执行命令列表 who ;当前调出的海龟号。例如: tellall 0 7 who 结果显示: result: [0 1 2 3 4 5 6 7] seth 参数 ; 设置海龟头的方向

过程的定义
? 过程就是一系列有序命令的集合。 TO <过程名> <过程体> END 过程的第一行称为过程头,以TO开头,后面是过程 名,如: SJX WJX,过程头和过程名间要有空格 中间部分是过程体,是我们用来绘图或解决问题而按 照一定次序编排的命令序列,它是整个过程的核心。过程 体可以是一行命令,也可以是多行命令,还可以是其他一 些过程名。 最后一行是过程尾,用END表示过程的结束。

过程定义范例
定义一个画三角形的过程 TO SJX REPEAT 3 [FD 90 RT 120] END 定义一个画五角星的过程 TO WJX REPEAT 5 [FD 70 RT 144] END 定义过程后,输入过程名,回车,即可执行过程。

过程定义范例2
定义一个画花的过程
TO HUA REPEAT 5 [REPEAT 3 [FD 50 RT 120] RT 72] END

定义过程后,输入HUA,回车,即可执 行过程,画出花的图形。

过程定义范例3
定义画立体五角星的过程
TO LW HT RT 18 REPEAT 5 [FD 60 RT 144 FD 60 RT 54 FD 110 BK 110 LT 54+72] END

定义过程后,输入LW,回车,即可执行过程, 画出五角星的图形。 请大家分析一下上面画立体五角星的方法。

动脑筋 (41)
1、原始命令可以用作过程名吗?过程名可以重复吗? 原始命令不可以用作过程名,例如: to draw 回车后,电脑会显示:
DRAW is already in use. Try a different name.

to cs 回车后,电脑会显示: CS is already in use. Try a different name. 过程名也不可以重复。即,定义过的过程,若用它的 过程名,再次定义另一个过程,则先定义的过程被替换。 2、在一个过程中,如果命令输入错了怎么办? 可以输入 EDIT 过程名 ,回车后会调出过程编辑器。改正错 误后,按F2退出编辑器即可自动保存修改。

过程的编辑和修改
? 定义过程后,使用 EDIT 过程名 可调出编辑器,在编辑器中修改后, 按F2即可关闭并保存修改。 若定义了多个过程,则可以用EDIT ALL 回车后,可以编辑器中编辑所有的过程。 例如: TO F REPEAT 4 [FD 90 RT 90] END 输入F,回车后可画出正方形。 此时,输入EDIT F ,回车则打开编辑器。 在编辑器中添加SETPC 12,过程变成: TO F SETPC12 REPEAT 4 [FD 90 RT 90] END 然后按F2关闭编辑器 再输入 F,回车后会发现,画出的是红色的正方形了。说明修改成功。

过程的保存
? 在命令窗口或在编辑器中编写过程后,单击“文 件”菜单中的“保存”(快捷键是F6),或使用 工具栏的SAVE按钮,可以把过程保存下来,保存 时的文件名,可以与过程名不同。 ? 保存过程以后,可以使用“文件”菜单中的“打 开”或“装载”命令,或使用工具栏上的LOAD 按钮,打开保存的过程文件(*.LGO),再输入过 程名,回车后即可执行过程。

过程范例
旋转的风车 to fc repeat 6 [ fd 70 repeat 4 [fd 30 rt 90] bk 70 rt 60] wait 10 clean rt 10 fc end

过程范例
编写一个画地板图案的过程(自己加颜色) TO DB HT REPEAT 6 [REPEAT 6 [FD 30 LT 60] FD 30 RT 60] END 想一想,上面的语句 是如何画出地板图形的? 你能给地板图形填上颜色吗?

巧定海龟位臵
设臵坐标命令 SETXY [:X :Y] 将海龟移到坐标[:X :Y ]处,海龟的方向不变。 设臵横坐标命令 SETX :X 将海龟移到X坐标指定位臵,Y坐标和海龟方向不 变。 设臵纵坐标命令 SETY :Y 将海龟移到Y坐标指定位臵,X坐标和海龟方向不 变。 注意:上面的命令,在移动海龟时,会在前后位臵间连上线。 画点命令 DOT [:X :Y] 在指定的坐标位臵画一个点,海龟当前位臵不 变。

练技能
? 自由阅读教材 P 49~50内容

小知识
GETXY 显示海龟当前的坐标。 XCOR 输出海龟横坐标位臵。 YCOR 输出海龟Y坐标位臵。 DOTCOLOR [:X :Y] 返回指定坐标点的颜色 值。
大家在电脑上试一下。

多角星和空心星(1)
画非空心的多角星的公式
REPEAT 角数 [FD 步数 RT 360*K/角数] 其中 1<K<角数/2 ,且是与角数没有(1以外的)公约数的正整数。 计算K的方法举例: 五角星: 5÷2=2.5 所以,K的取值是2。 六角星: 6 ÷2=3 K的取值范围是2,但2与角数6有公约数,所 以,无法取值。 七角星: 7 ÷2=3.5 K的取值是2 、3。 八角星: 8 ÷2=4 K的取值范围是2、3,但2与角数8有公约数, 所以,K的取值是3。 九角星: 9 ÷2=4.5 K的取值范围是2、3、4,但3与角数9有公 约数。所以,K的取值为2、4。 十角星: 10 ÷2=5 K的取值范围是2、3、4,但2、4与角数10 有公约数 ,所以,K的取值是3。

多角星和空心星(2)
画空心多角星的公式 方法一: REPEAT 角数 [FD 边长 RT 720/角数 FD 边长 LT 360/角数] 方法二: REPEAT 角数 [ FD 边长 RT 第一次转角 FD 边长 LT 第一次转角-360/角数] 例如:画边长为40、第一次转角为100的空心五角 星,方法是: REPEAT 5 [ FD 40 RT 100 FD 40 LT 100-72]

练一练
? 动手练习一下P40~41

带参数(变量)的过程
? ? ? ? ? ? ? 示例 TO ZFX :A REPEAT 4 [FD :A RT 90] END 输入 ZFX 20 ,回车。 再输入ZFX 30 ,回车。 再输入ZFX 40 ,回车……

带参数(变量)的过程
示例二: TO YUAN :A :B STAMPOVAL :A :B END 输入YUAN 20 60,回车。 再输入YUAN 80 50 ,回车。 再输入YUAN 100 80,回车……

想一想
画正多边形的公式: REPEAT 边数[FD 边长 RT 360/边数] 你能定义一个带参数的过程来画任意边 长和边数的正多边形吗?
TO DBX :N :B

REPEAT :N [FD :B RT 360/:N]
END 输入 DBX 6 90 ,回车后即可画出边长为90的六边形。

输入 DBX 8 100 ,回车后即可画出边长为100的八边形。

画任意多角星(请参见本PPT 68页)
TO DJX :N :BC :K REPEAT :N [FD :BC RT 360* :K/ :N] END
其中, :N表示多角星的角数。 :BC 表示多角 星的线长。 :K 表示倍数。 倍数K的确定 方法,参见以前内容。 例如画线长为70的八角星,输入 DJX 8 70 3 ,再回车即可。

画任意空心多角星(请参见本PPT 69页)
? TO KXX :N :BC ? REPEAT :N [ FD :BC RT 720/:N FD :BC LT 360/:N] ? END ? 其中,:N 表示角数。 :BC 表示线长。 ? 例如画线长为50的空心九角星,输入 KXX 9 50,再回车即可。

画顶角可变的任意空心多角星(P54)
(请参见本PPT 69页)

TO KXX :N :BC :J REPEAT :N [ FD :BC RT :J FD :BC LT :J360/:N] END 其中,:N 表示角数。 :BC 表示线长。 :J表 示第一次转角。 例如画线长为40、第一次转角为100的的空心 五角星,输入 KXX 5 40 100,再回车即 可。

一个画小海星的过程
TO HX :B :C FD :B RT :C HX :B :C+10 HT END

输入HX 10 3 ,回车试试。再输入HX 10 1 ,回车试试。

过程的递归调用
一个程序中可以包括多个过程,当一个过程中出现另 一个过程的过程名时,就表示要调用那个过程,这种情形 称之为过程调用。 示例: TO LX :A FD :A RT 120 LX :A+10 END 这里的参数:A 表示第一次前进的步数。执行 LX 10, 会发现出现对话框报错。这是由于循环调用,成了死循环, 无法停止而造成内存缓冲区已满的错误。我们可以加一条 控制过程停止的语句,避免死循环。如下页:

过程的递归调用
TO S :A IF :A > 300 THEN STOP FD :A RT 120 S :A + 10 END IF :A > 300 THEN STOP 意思是, 当参数值增加到300以上时,就停止过程的 运行。

练技能(P59)
画正N边形的过程: TO ZHDBX :N :A ;N是边数,A是正多边形的边长 REPEAT :N [FD :A RT 360/:N] END 画正多边形螺旋线的过程: TO DBLX :A :N ;N是边数,A是起始多边形的边长 IF :A>150 THEN STOP FD :A RT 360/:N ; 画一条边,然后转到画下一条边的方向 DBLX :A+3 :N ; 调用自身,边长增加步 END 分别输入 DBLX 30 3 、 DBLX 30 4 、 DBLX 30 5 再回车试试。

练技能 (p60)
TO ZFX REPEAT 4 [FD 40 RT 90] END TO LX REPEAT 2 [FD 40 RT 60 FD 40 RT 120] END TO SJ REPEAT 3 [FD 40 RT 120] END TO XG CS PU FD 80 RT 90 BK 60 PD ZFX RT 90 LX LT 90 FD 40 RT 30 LX RT 60 FD 40 RT 30 SJ FD 40 RT 180 SJ RT 60 ZFX FD 40 LX FD 40 RT 60 FD 9 LT 120 SJ END 执行 XG ,可画出小狗。 注意:若在编辑器或命令窗口中同时定义了多个过程,保存过程文件时,会将定 义的多个过程同时保存到一个文件中。装载保存的过程文件后,各过程会全部被调入 内存中。大家可以把本页定义的各过程一起复制到编辑器中,再保存一下,然后装载 到LOGO中试试。 若各个过程要单独保存,则要在编辑器中一个一个的分别定义, 再一个一个地分别保存下来。 装载时,要一个一个地分别装载到内存中,才可以相互 调用。

练技能(参考P61)
to hua repeat 4 [repeat 3 [fd 30 rt 120] rt 90] end to huahuan setpc 12 repeat 8 [hua rt 45 pu fd 70 pd] end 定义过程后,输入 huahuan,再回车,即可画 出一个花环。

用递归的方法画三角形圆环
setpc 2 repeat 12 [pu fd 40 rt 30 pd repeat 3[fd 40 rt 120] lt 30 pu bk 40 rt 30] 上面的语句是我们以前画右图时使用的。 现在,若用递归调用的方法,应该怎样写呢? to sj setpc 2 repeat 3[fd 40 rt 120] end to huan repeat 12 [pu fd 40 rt 30 pd sj lt 30 pu bk 40 rt 30] end

小知识
1、调用磁盘上保存的过程,除了用“文件”菜单中的“装载”外,还有 以下方法: (1)按F5键 (2)单击工具栏上的 Load 按钮 2、停止按钮 在LOGO系统中有一个“交通岗”,当你进行递归调用时,如果想停 止、暂停或继续运行该过程,可以单击工具栏中的三个相应的“红绿 灯”按钮。(LOGO的“调试”菜单中也有相应的命令) 例如:这是以前我们做过的风车旋转的一个范例: to fc repeat 6 [ fd 70 repeat 4 [fd 30 rt 90] bk 70 rt 60] wait 10 clean rt 10 fc end 大家运行一下,并使用工具栏中 的“红绿灯”按钮控制一下试试。

条件判断语句—— IF语句
还记得以前我们画过的风车吧?那个旋转的风车,运行时,需要 单击停止按钮停止它的运行。原因是,在那个过程中,使用了循环调 用,产生了死循环。下面的范例,使用了IF语句,避免了死循环。 TO FC REPEAT 6 [FD 70 REPEAT 4 [FD 30 RT 90] BK 70 RT 60] WAIT 10 CLEAN RT 10 MAKE "N :N+1 IF :N = 60 THEN STOP ELSE FC END

定义这个过程后,在命令窗口输入 make “n 0,回车后,再输入 fc,再回车。会发现风车旋转一会儿就自动停止了。因为,每旋转一 个新角度后,N的值都会加1,旋转60次后,N的值变为60时,过程就 会自动停止了。 此时,若在命令窗口内输入 pr :n ,回车后会 看到此时变量N的值为60.

条件判断语句—— IF语句
下面我们讲解一下IF语句 IF语句有两种格式: 格式1: IF 条件 THEN [命令] (THEN 可以省略不写) 当符合条件时,执行THEN后面的命令,否则就不执行 THEN后面的命令,直接执行其它命令。 注意:命令可以是一个或多个命令,命令间以空格分开,最 后以回车结束。不属于THEN中的命令,一定要写到下一 行。 其中的“条件”,可以是等式或者不等式及表达式,如: S=40、 R>35、 R≤10 、 (OR :N<8, :N>20) 等。 请大家自行阅读一下教材P63页的两个范例,对IF语句的这 种格式加以理解。

条件判断语句—— IF语句
格式2: IF 条件 THEN [命令1] ELSE [命令2]
当条件表达式符合条件时,执行 THEN后面的命令1,跳过命令2,再接 着执行其它命令;否则,跳过命令1,执行ELSE后面的命令2,再接 着执行其它命令。 例如画风车的范例:

TO FC REPEAT 6 [FD 70 REPEAT 4 [FD 30 RT 90] BK 70 RT 60] WAIT 10 CLEAN RT 10 MAKE "N :N+1 IF :N = 60 THEN STOP ELSE FC END
注意:在递归调用时,若过程自己调用自己,一定要设计至少一个出 口,来结束过程,否则会造成死循环,过程不停地运行,甚至导致死 机等来重后果。 语句中的STOP,是停止过程运行的命令。它只能使用于过程当中。

IF语句编程范例(P64)
根据提示输入一个1~360的数,表示一个角度,由电 脑判断这个角是不是锐角,在命令窗口输出判断结果,并 在绘图窗口中画出这个角。
to jd :n cs rt 90 fd 100 bk 100 ; 画出一条边 lt :n ; 左转输入的角度 fd 100 ht ; 画出另一条边后隐藏海龟 end to pdjd pr [请输入角度:] ; 让屏幕显示"请输入角度:" make "r read ; 创建一个变量r ,并等待输入 jd :r ; 用输入的角度值 r 画角,画出一个r 度的角 if :r<90 then pr [您输入的角度是锐角] else pr [您输入的角度不是锐角] end

练技能 (P65)
试调用下面的两个过程,编写一个名为 XZ 的过程,完成以下功能:命令窗口显示提示: “请选择: 1 同心圆 2 两个正方形”,如果输入1,调用 YUAN 画出同心圆;如果输入 2, 调用ZFX画出两个正方形;如果输入其他数字,过程结束,无任何提示。 TO YUAN SETPC 14 (STAMPOVAL 60 60 "TRUE) SETPC 12 (STAMPOVAL 30 30 "TRUE) HT END TO ZFX SETPC 13 (STAMPRECT 78 78 "TRUE) SETPC 10 (STAMPRECT 50 50 "TRUE) HT END TO XZ DRAW PR [请选择: 1 同心圆 2 两个正方形] make "h read if :h=1 then yuan if :h=2 then zfx end

循环语句 FOR
循环控制命令FOR语句有两种格式 格式1:FOR “变量 初值 终值 [命令串] 功能:变量的值由初值开始,每次加1 并将后面的 命令串执行一遍,直到超过终值为止。 例如: DRAW SETPC 12 SETW 4 FOR "I 3 6 [REPEAT 3 [FD :I*20 RT 120 ]]

循环语句 FOR
格式2: (FOR “变量 初值 终值 [命令串] 步长)
功能:变量的值由初值开始,每次增长一个步长, 并将后面的命令串执行一遍, 直到超过终值为止。 例如: (FOR "I 1 7 [PR :I ] 2) 输出结果为: 1 3 5 7 (FOR "I 1 7 [PR :I ] 1) 输出结果为 1 2 3 4 5 6 7 (FOR "I 10 1 [PR :I ] -3) 输出结果为 10 7 4 1 (FOR "I 10 1 [PR :I ] -4) 输出结果为 10 6 2 注意:引号与变量名之间不能有空格。格式2中,步长若为1时,可以省略步长 值。 因此,格式1与格式2实际上是一样的,相当于格式2省略了步长。

FOR语句应用范例(P69)
用FOR语句累乘求积 编写过程求1×2 ×3 ×4 ×… ×30和值。 思路分析: 从1开始累乘求积时,要用一个变量来储存所求和积,并将该变量的初值设为1。 FOR循环中变量每次加1,将其与存积变量S相乘,作为变量S的新值继续保存。 这样,不断循环,使S的值最终为1到30的积。 过程如下: to sh make "s 1 ; 创建一个变量S,并赋值为1 for "i 1 30 [make "s :s*:i] ; 将变量值1分别乘以1~30并累乘求积。 (pr [1*2*3*4*...*30=] :s) ; 在命令窗口中输出所求的积。 end 号。

注意:若要在LOGO的命令窗口中输出多个内容,要在pr语句前后加上小括
这里的

本过程最后结果显示为: 1 * 2 * 3 * 4 * ... * 30 = 2.65E+32 2.65E+32 是科学计数法,表示 2.65×1032

FOR语句应用范例
* 想一想:若用for语句累加,求1~100的和, 应该怎么写过程呢? to qh make "s 0 ; 创建一个变量S,并赋值为0 for "i 1 100 [make "s :s+:i] ; 将变量值0 依次加上1~100并累加求和。 (pr [1+2+3+4+...+100=] :s) ; 在命令窗 口中输出所求的和。 end

FOR语句应用范例(P69)
用一条FOR语句循环命令画出从正三边 形到正九边形。 setw 4 setpc 13 for "p 3 9 [repeat :p [fd 30 rt 360/:p]
提示:正多边形的边数变化借助于FOR 循环中的变量,将FOR循环的初值设为3, 终值设为9。

FOR语句应用范例(P70)
用FOR循环命令画出边长分别为30、60、90、120的不 同颜色的正方形。 提示:利用随机函数RANDOM,随机产生不同的颜色。
cs for "s 1 4 [ setw 3 setpc random 15 stamprect :s*30 :s*30 ] 方法2:

cs (for "s 30 120 [ setw 3 setpc random 15 stamprect :s :s] 30)

FOR语句应用范例(P70)
编写一个程序,在命令窗口输出九九乘法口诀表。 提示:利用FOR循环嵌套FOR循环来实现。 to xjj for "i 1 9 [for "j 1 :i [(type :j [*] :i [=] :i * :j [ ])] pr " ] end 注意: pr " 的作用是换行。 语句中那对空括号[ ]的作用是产生空格, 否则第行内的各乘法算式会连在一起(教材中的语句是没有这个空 格的。)。type命令的作用和用法与pr命令类似,但它是不换行输 出,而pr是换行输出。这里之所以使用type,是为了实现在一行中 写出某数的口诀,例如 1X2=2 2X2=4 若把type 换成 pr,则, 每输出一个算式,都会换行。如下例: to xjj for "i 1 9 [for "j 1 :i [(pr :j [*] :i [=] :i * :j)]] end

动脑筋(P70)
1、FOR循环有几种格式,每种功能有什么不同? (答案略。参见本PPT前面部分) 2、利用FOR 循环能做动画吗?试一试。(答案: 能。例如: (FOR "I 10 360 [repeat 5 [fd 150 rt 144] wait 10 clean seth :i] 10) 3、FOR循环与递归调用有什么不同? (参考答案:FOR循环是在同一过程或命令行中 循环改变变量的值。递归调用是一个过程中调用 另一个过程。)

小知识
1、随机函数: RANDOM X 可以随机产生一个1~X之间的正整数。在一些带 参数的命令中,用随机函数作为参数,使执行结果在预定的范 围内,但不能具体确定。例如:REPEAT 5 [SETPC RANDOM 14 FD 90 RT 144] 再如:PR RANDOM 6 ,输出结果是1~6中的随机正整数。 2、赋值命令 MAKE 变量必须先赋值,有了确定的值后,该变量才能参与运算。 赋值语句格式为: MAKE "变量名 数据,如:MAKE " S 9 其中,引号后面的是变量名,而不是变量(LOGO中的变量 要带冒号的) 。 后边的数据是赋值内容,也可用READ命令等 待键盘输入。如: MAKE “S READ,回车后,输入60,则变量 S的值就赋值为60,此时若 输入 PR :S,则会显示为60。 给 变量赋值后,若要在过程中或命令行中使用该变量,则要在变 量名前加上冒号。

综合实践(P72)
这是对前面知识的综合运用。本PPT不 作讲解。请大家结合教材自学。自学时能 结合教材看懂这些过程语句就行了。也不 必要求所有学生都能掌握这部分内容。

写在后面的话
本PPT教程到此结束,因本人水平 有限,且时间仓促,其中一定存在着错 误和不足,望大家指正。 LOGO语言其 实是很强大的,它还有很多功能,如数 学运算、音乐播放等,不在本次教材培 训的讨论范围之内。如有兴趣,请大家 在“盖州信息技术教师2群中”讨论或 直接与本人交流。谢谢!


推荐相关:

logo语言竞赛复习题

logo语言竞赛复习题_学科竞赛_小学教育_教育专区。 今日推荐 78份文档 不...LOGO语言竞赛培训课件 106页 1下载券 logo语言竞赛模拟题 2页 免费 LOGO语言试题...


LOGO语言教学讲座

搜 试试 7 帮助 全部 DOC PPT TXT PDF XLS ...logo教程 42页 免费 LOGO语言辅导(最好) 62页 1...语言竞赛教程·习题集》的特点: 《LOGO 语言竞赛...


2012年logo语言竞赛试卷

2012年logo语言竞赛试卷_学科竞赛_小学教育_教育专区。2012 年芜湖市小学计算机水平...LOGO语言竞赛培训课件 106页 1下载券 logo语言竞赛复习题 3页 免费 logo语言竞...


LOGO语言赛前复习一 (4)

百度文库 教育专区 小学教育 学科竞赛上传文档支持以下设备:扫二维码下载 Android...LOGO语言基本常识知识点复... 79页 5财富值如要投诉违规内容,请到百度文库投诉...


2012年小学生计算机LOGO语言竞赛复赛

2012年小学生计算机LOGO语言竞赛复赛_学科竞赛_初中教育_教育专区。2012 厦门市小...LOGO语言竞赛培训课件 106页 免费 2012年9月计算机二级C语... 8页 1下载券...


LOGO讲义

百度文库 教育专区 小学教育 学科竞赛专题推荐 北师大二附理科学霸高中... 东北...logo培训讲义 11页 1下载券 LOGO 资料 2页 免费 专题6 LOGO语言培训讲义 44...


小学MSWLOGO语言竞赛_2009

小学MSWLOGO语言竞赛_2009_学科竞赛_小学教育_教育专区。2009 年惠山区小学生 LOGO...LOGO语言竞赛培训课件 106页 1下载券 LOGO语言辅导(最好) 62页 1下载券 201...


logo语言练习题

搜试试 2 悬赏文档 全部 DOC PPT TXT PDF XLS ...logo语言练习题_学科竞赛_小学教育_教育专区。六年级...LOGO语言辅导 62页 2下载券 必须掌握的 LOGO语言...


logo语言教学教案

二、 1、 新授 学习启动 LOGO 语言程序的两种方法: 我们要想见到这只神奇的小海龟,必须启动 LOGO 语言程序。 出示课件: ⑴⑵ 单击【开始】--【程序】--【...


logo语言基本命令

logo 语言基本命令 1. 前进命令 FORWARD(简写 FD) 【格式】 FD 步长 【功能...Logo图形 6页 1下载券 LOGO语言教材培训课件 98页 免费 LOGO语言基本命令 2页...

网站首页 | 网站地图
All rights reserved Powered by 简单学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com