1 / 24

Logo 程序设计

Logo 程序设计. ( 授课讲稿 ) 吴剑辉. 第三讲 过程 编辑. 在文本窗口中直接输入命令画图虽然比较简便,但也有缺点:在输入了比较复杂的图形之后,不但无法对这些命令进行保存,也难以进行补充修改。在学会使用 Logo 系统提供的 Editor “ 编辑器” 之后,我们编写各种 Logo 图形的程序就更加容易了。. 一、使用编辑器. 二、带参数的过程. 三、海龟的定向定位. 一、使用编辑器. 图 1. 打开 编辑器. 命令方式. 图 2. 1 、怎样进入编辑窗口?. ⑴ 、窗口方式:(如图 1 ) 单击 工具栏里的 “编辑按钮” 。.

asher-mcgee
Download Presentation

Logo 程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logo程序设计 (授课讲稿) 吴剑辉

  2. 第三讲 过程编辑 在文本窗口中直接输入命令画图虽然比较简便,但也有缺点:在输入了比较复杂的图形之后,不但无法对这些命令进行保存,也难以进行补充修改。在学会使用Logo系统提供的 Editor “编辑器” 之后,我们编写各种Logo图形的程序就更加容易了。 一、使用编辑器 二、带参数的过程 三、海龟的定向定位

  3. 一、使用编辑器 图1 打开 编辑器 命令方式 图2 1、怎样进入编辑窗口? ⑴、窗口方式:(如图1) 单击工具栏里的“编辑按钮”。 ⑵、命令方式:(如图2) 在命令窗口中的“?”Logo提示符后输入EDIT↙ 屏幕上都可弹出编辑窗口。 【说明】:在编辑窗口里输入程序的方式和 Word中输入其他文本的方式是基本一样的。 编写的程序都是以“过程”的形式出现的。

  4. 2、什么是过程? Logo过程是命令的集合并冠以一个名字。 过程结构:一个过程是由3个部分组成的。 ⑴、引入:由TO引入,再加过程名。 过程名一般都使用易于理解的汉字拼音或英语单词(不能使用Logo已有的命令),而第一个字符必须是字母,后面可以是字母或数字,过程名的字符数不得超过8个字符。 ⑵、主体:由一系列Logo命令或其他命令组成。 要使整个过程层次非常清楚,每行过程体的开头都加入2个空格,或按一下〈Tab〉“跳格键”;最基本笔划或图形分行来编写构成比较复杂的图形。 ⑶、结束:用END来表示编辑工作完成。 【知识点】: 编写Logo程序的步骤:编写过程→定义过程→调用过程。

  5. 3、过程的编写及定义。 编写过程的方法: TO 过程名 一条或多条命令 END 单击工具栏 里的 按“F2”键 例题分析:编程画一个边长为100的正方形。 编写画正方形的过程: TO ZFX REPEAT 4[FD 100 RT 90] END ⑵、使用编辑窗口 ⑴、在命令窗口中直接输入 ? TO ZFX > REPEAT 4[FD 100 RT 90] > END ZFX defined. ?

  6. 图3-小房屋(XFW) 4、过程的调用。 所定义的过程ZFX 已经成为Logo的一个新的命令了。在命令窗口键入ZFX↙,图形窗口中马上就会画出一个正方形。 5、在操作中学 ⑴、编写一个过程,画出一所小房屋(如图3) TO XFW DRAW REPEAT 4[FD 100 RT 90] FD 100 LT 90 FD 30 RT 120 REPEAT 3[FD 160 RT 120] HT END

  7. 图4-火箭(HJ) ⑵、编写一个过程,画出一支火箭(如图3) TO HJ DRAW FS REPEAT 2[FD 100 RT 90 FD 50 RT 90] RT 180 REPEAT 180[FD 25*PI/180 LT 1] BK 25 REPEAT 2[FD 100 RT 90 FD 20 RT 90] RT 90 PU BK 70 LT 90 PD REPEAT 2[FD 100 RT 90 FD 20 RT 90] PU RT 90 FD 20 LT 90 FD 125 PD RT 30 REPEAT 3[FD 50 RT 120] LT 30 PU BK 140 PD BK 50 PU FD 90 RT 90 FD 25 LT 90 BK 40 PD BK 80 PU FD 120 RT 90 FD 25 LT 90 BK 40 PD BK 50 PU FD 90 LT 90 FD 50 RT 90 PD HT END

  8. ⑶、编写一个过程,画出一枚队徽(如图)。 TO DF DRAW FS HT FD 110 RT 162 REPEAT 5[FD 80 LT 72 FD 80 RT 144] LT 162 BK 110 RT 36 REPEAT 5[FD 42 BK 42 RT 36 FD 110 BK 110 RT 36] LT 72 FD 42 LT 54 FD 15 RT 70 FD 35 RT 90 FD 15 LT 90 REPEAT 2[FD 10 LT 90 FD 60 LT 90]FD 10 RT 65 FD 40 LT 35 FD 45 LT 155 FD 40 RT 30 FD 30 RT 150 FD 60 LT 25 FD 50 LT 155 FD 50 RT 15 FD 61 RT 144 FD 45 LT 151 FD 70 LT 37 FD 35 LT 58 FD 39 RT 35 FD 10 LT 90 FD 15 RT 90 FD 22 RT 107 FD 31 LT 144 FD 80 RT 72 FD 80 LT 144 FD 50 RT 97 FD 40 LT 84 FD 15 LT 87 FD 45 PU HOME PD HT END

  9. 6、文件的保存。 单击工具栏 里的 ⑴、窗口方式: (或) 当出现存储文件对话框,可选择“驱动器”、“文件夹”确定把文件存在什么地方,然后输入文件名。例如ZFX,在单击“确定”按钮后,计算机会自动加上“.LOG”扩展名,以ZFX.LOG存储起来。 ⑵、命令方式:(使用保存过程命令)[格式]:SAVE “文件名[功能]:把当前工作区已经定义过的所有过程按 指定文件名存盘。

  10. 二、带参数的过程 100 80 50 30 图3 1、设计具有共同特点的过程 例题分析:怎样改变图形的大小和形状? ⑴、首先看画边长为100的正方形过程: TO ZFX REPEAT 4[FD 100 RT 90] END 这个过程只能画边长为100的正方形。如果要想再画其他尺寸的正方形(如图5),那该怎么办? ?ZFX 100 ?ZFX 80 ?ZFX 50 ?ZFX 30 注意观察:大小不同的正方形,其区别在于边长的不同。 【知识点】:事实上,Logo系统就是这样编写出带变量的过程。 TO ZFX :B REPEAT 4[FD :B RT 90] END 说明:在定义过程时,过程名后的变量叫做形式参数,即由冒号“:”与参数符号组成,之间不能留有空格

  11. 图6 ⑵、再看画边长为60的正方形过程: TO ZFX REPEAT 4[FD 60 RT 90] END 这个过程只能画边长为60的正方形。如果要想再画相同尺寸的其他正多边形(如图6),那又该怎么办? ?DBX 3 60 ?DBX 4 60 ?DBX 5 60 ?DBX 6 60 ? DBX 7 60 ? DBX 8 60 ? DBX 4 120 观察与设计:其区别在于边数和转角的不同。 TO ZFX :N REPEAT :N[FD 60 RT 360/:N] END 【探究】:进而设计改变大小或形状的正多边形过程。 TO DBX :N :B REPEAT :N[FD :B RT 360/:N] END

  12. 2、编写带参数过程的说明 ⑴、格式与不带参数的过程基本相同,所不同的只是这里过程名后面带有参数(称之为“形式参数”,即由冒号“:”与参数符号组成,之间不能留有空格)。过程名与参数要留有空格。 ⑵、过程体内的每个参数必须在过程首部出现,同时参数符号要完全一致。 ⑶、执行新定义的带参数过程时,过程名后面也要跟一个实际参数值。实际参数与形式参数不同,它是一个数或有确定值的表达式,但数或表达式前面不再有冒号。 ⑷、在必要时,一个过程可以使用多个参数。在有多个参数的情况下,各个参数数据之间也必须留一个空格。

  13. 3、常用绘图工具过程。 10、平行四边形: TO PXSBX :B1 :B2 :J REPEAT 2[FD :B1 RT :J FD :B2 RT 180-:J] END 11、空心矩形 (:A表示长, :B表示宽) TO KXJX :A :B STAMPRECT :A :B END 12、实心矩形 (:A表示长, :B表示宽) TO SXJX :A :B (STAMPRECT :A :B ”TRUE) END 13、空心椭圆 (:X表示长半轴, ;Y表示短半轴) TO KXTY :X :Y STAMPOVAL :X :Y END 14、实心椭圆 (:X表示长半轴, ;Y表示短半轴) TO SXTY :X :Y (STAMPOVAL :X :Y ”TRUE) END 15、空心正多角形 (:N表示边数, :B表示边长) TO KXJ :N :B REPEAT :N[FD :B RT 720/:N FD :B LT 360/:N] END 16、一般正多角星 (一般正多角星的内角角度为NJ=(N-2K)*180/N,其中K为整数,K的范围在1<K<N/2,且K与N没有公因数。) TO YBJ :N :B :K REPEAT :N[FD :B RT :K*360/:N] END 1、正方形 (:B表示边长) TO ZFX :B REPEAT 4[FD :B RT 90] END 2、长方形 (:B表示宽, :A表示长) TO CFX :A :B REPEAT 2[FD :A RT 90 FD :B RT 90] END 3、三角形 (:B表示边长) TO SJX :B REPEAT 3[FD :B RT 120] END 4、正多边形 (:N表示边数, :B表示边长) TO DBX :N :B REPEAT :N[FD :B RT 360/:N] END 5、圆(:R表示半径,在LOGO语言中可以直接用PI来代替π的值) TO YUAN :R REPEAT 360[RT 0.5 FD :R*PI/180 RT 0.5] END 6、左弧 (:N表示弧度, :R表示半径) TO LHU :N :R REPEAT :N[FD :R*PI/180 LT 1] END 7、右弧 (:N表示弧度, :R表示半径) TO RHU :N :R REPEAT :N[FD :R*PI/180 RT 1] END 8、左叶 (:N表示弧度, :R表示半径) TO LY :N :R REPEAT 2[LHU :N :R LT 180-:N] END 9、右叶 (:N表示弧度, :R表示半径) TO RY :N :R REPEAT 2[RHU :N :R RT 180-:N] END

  14. 4、过程的嵌套调用 过程B 过程A 过程C 过程‥ 过程A 过程B 过程C 过程‥ 小房屋(XFW) 过程调用的最简单方式就是在命令行直接键入过程名。此外,还可以另外一种过程调用的方式,那就是在一个过程中允许使用已定义的过程,即过程的嵌套调用。 ⑴过程的串式嵌套调用 ⑵过程的并式嵌套调用 说明:过程的嵌套调用还允许使用多层及交叉的方法。 5、在操作中学:编程画出图形(如右下图)。 子过程: TO ZFX :X REPEAT 4[FD :X RT 90] END (一般都要以带参数的过程方式编写) TO SJX :X REPEAT 3[FD :X RT 120] END TO CFX :A :B REPEAT 2[FD :A RT 90 FD :B RT 90] END

  15. 主过程: TO XFW DRAW FS ZFX 100 PU RT 90 FD 15 LT 90 PD CFX 60 30 PU RT 90 FD 60 LT 90 FD 70 PD REPEAT 4 [ZFX 15 RT 90] PU FD 30 LT 90 FD 85 RT 120 PD SJX 120 HT END 动脑筋:如何改变小房屋的大小。 改为带有参数 TO XFW :X DRAW FS ZFX:X PU RT 90 FD :X*0.15 LT 90 PD CFX :X*0.6 :X*0.3 PU RT 90 FD :X*0.6 LT 90 FD :X*0.7 PD REPEAT 4 [ZFX :X*0.15 RT 90] PU FD :X*0.3 LT 90 FD :X*0.85 RT 120 PD SJX :X*1.2 HT END 【提示】:只要将主过程加上带参数:X,并把步数100改为:X,其余的按比例类推。(新值=原数/100*:X) 试一试,画一画:把原来编写的“队徽”过程改为可变幻大小。

  16. 动脑筋,画一画 ⑸ ⑷ ⑵ ⑴ ⑶ ⑹ ⑼ ⑽ ⑺ ⑻ ⑿ ⒂ ⒀ ⒁ ⑾

  17. 三、海龟的定向定位 采用“描点法”,让海龟从一点走到下一点,对于不规则的图形也就不难了,关键是如何指定海龟的位置。在绘图过程中,有时很难确定海龟的位置和方向,我们可以使用定位和定向等命令后就方便多了。 1、坐标概述 用横方向和纵方向两个数来表示一个点的方法在数学中叫 “坐标法”。在Logo画图屏幕,表示左右位置的数叫X坐标,表示上下位置的数叫Y坐标,海龟起始的位置在屏幕的中心点(海龟的头朝上)为原点,即(0,0)。

  18. 2、基本命令 【指导说明】: ⑴、比较SETX、SETY与FD、BK使用时海龟位置的差异。 ⑵、比较SETH与RT、LT使用时海龟角度的差异。 ⑶、走到命令SETXY和画点命令DOT格式中的方括号内的数据只允许使用常数。使用变量或表达式时,要采用以下格式: SETXY SE :X :Y DOT SE :X :Y

  19. 200 200 100 3、在操作中学 ⑴、画出三个内嵌套的正方形图形(如右图)。 TO SVQ DRAW PU SETXY[-100 -100]PD REPEAT 4[FD 200 RT 90] SETXY[-100 0] SETXY[0 100] SETXY[100 0] SETXY[0 -100] SETXY[-100 0] SETXY[-50 50] RT 90 REPEAT 4[FD 100 RT 90] END ⑵、画出层叠的二个等腰三角形(如右图)。 TO SJSAB DRAW SETX -100 SETXY[0 100] SETXY [100 0] SETX -100 SETXY[0 0] RT 135 FD 100 SETX 0 PU SETY 0 PD RT 90 FD 100 SETX 0 PU SETY 0 PD END

  20. 4、题例分析: :B*1.3 :B*1.5 图7-1 图7 在正五边形中画出内嵌正五角星 (如图7)。 【编程方法1】: 第一步:编写过程L1,执行后观察两个图形的方位。(如图7-1) TO L1 :B LT 18 REPEAT 5[FD :B RT 72] RT 36 REPEAT 5[FD :B RT 144] END 第二步:修改过程中正五角星的边长,逐一增长。 逐一增长 TO L1 :B LT 18 REPEAT 5[FD :B RT 72] RT 36 REPEAT 5[FD :B*1.62 RT 144] END 说明:先确定正五边形和正五角星的相互间转角,后要反复多次调试更改正五角星的边长。这种方法是画不规则组合图形的最基本的方法,对于初学者有助于观察分析、判断思考和综合运用知识的能力,但是比较麻烦!

  21. 【编程方法2】: ?DRAW L2 100↙ 0 0 (A点坐标) -31 95 (E点坐标) 50 154 (D点坐标) 131 95 (C点坐标) 100 0 (B点坐标) 第一步:编写过程L2,执行后显示出A、B、C、D、E、F各点坐标的位置。 TO L2 :B LT 18 REPEAT 5[PR GETXY FD :B RT 72] END 第二步:再重新编写过程L2A或L2B。 TO L2B :B LT 18 REPEAT 5[FD :B RT 72] SETXY SE 0.5*:B 1.54*:B SETXY SE :B 0 SETXY SE -0.31*:B 0.95*:B SETXY SE 1.31*:B 0.95*:B SETXY [0 0] END TO L2A LT 18 REPEAT 5[FD 100 RT 72] SETXY[50 154] SETXY[100 0] SETXY[-31 95] SETXY[131 95] SETXY[0 0] END 改为带有参数 说明:使用相关海龟定方位和查方位命令为我们绘制较复杂的图形提供了极大的方便。

  22. ? L3 30 ? L3 50 ? L3 80 ? L3 150 【编程方法3】: 第一步:根据执行L2,找出在同坐标同线上两点间距离。 第二步:确定正五边形与内嵌正五角星的边长之间的 关系。 ?DRAW L2 100↙ 0 0 (A点坐标) -31 95 (E点坐标) 50 154 (D点坐标) 131 95 (C点坐标) 100 0(B点坐标) 根据上面数据,E、C相距(31+131=162)得出:内嵌正五角星的边长为正五角星的边长的1.62倍。 第三步:编写一个可变幻的图形。 TO L3 :B LT 18 REPEAT 5[FD :B RT 72] RT 36 REPEAT 5[FD :B*1.62 RT 144] END

  23. 动脑筋,画一画⑴ [0,60] [60,60] [150,60] [0,0] ⑸ ⑷ ⑶ ⑵ ⑴ ⑹ ⑽ 120 ⑼ ⑻ ⑺ [0,30] 8 10 30° 130 150 ⑿ ⒁ ⒂ 10 ⒀ 5 120 用“一笔画”画出图形⑿、⒀、⒁、⒂ ⑾

  24. 动脑筋,画一画⑵ [40 130] [-60 130] [-100 100] [40 30] [-100 0] [0 0] ⑹ 60 100 ⑸ ⑷ ⑶ ⑵ ⑴ 1- - - →2 - - - →3 - - - →4 ⑺ ⑽ ⑾ ⑼ ⑻

More Related