Logo程序设计(授课讲稿)吴剑辉第三讲过程编辑在文本窗口中直接输入命令画图虽然比较简便,但也有缺点:在输入了比较复杂的图形之后,不但无法对这些命令进行保存,也难以进行补充修改。在学会使用Logo系统提供的Editor“编辑器”之后,我们编写各种Logo图形的程序就更加容易了。一、使用编辑器二、带参数的过程三、海龟的定向定位一、使用编辑器1、怎样进入编辑窗口?⑴、窗口方式:(如图1)单击工具栏里的“编辑按钮”。打开编辑器图1⑵、命令方式:(如图2)在命令窗口中的“?”Logo提示符后输入EDIT↙屏幕上都可弹出编辑窗口。命令方式图2【说明】:在编辑窗口里输入程序的方式和Word中输入其他文本的方式是基本一样的。编写的程序都是以“过程”的形式出现的。过程结构:一个过程是由3个部分组成的。⑴、引入:由TO引入,再加过程名。过程名一般都使用易于理解的汉字拼音或英语单词(不能使用Logo已有的命令),而第一个字符必须是字母,后面可以是字母或数字,过程名的字符数不得超过8个字符。⑵、主体:由一系列Logo命令或其他命令组成。要使整个过程层次非常清楚,每行过程体的开头都加入2个空格,或按一下〈Tab〉“跳格键”;最基本笔划或图形分行来编写构成比较复杂的图形。⑶、结束:用END来表示编辑工作完成。2、什么是过程?Logo过程是命令的集合并冠以一个名字。【知识点】:编写Logo程序的步骤:编写过程→定义过程→调用过程。3、过程的编写及定义。编写画正方形的过程:TOZFXREPEAT4[FD100RT90]END⑴、在命令窗口中直接输入?TOZFXREPEAT4[FD100RT90]ENDZFXdefined.?⑵、使用编辑窗口单击工具栏里的按“F2”键例题分析:编程画一个边长为100的正方形。编写过程的方法:TO过程名一条或多条命令END4、过程的调用。所定义的过程ZFX已经成为Logo的一个新的命令了。在命令窗口键入ZFX↙,图形窗口中马上就会画出一个正方形。5、在操作中学⑴、编写一个过程,画出一所小房屋(如图3)图3-小房屋(XFW)TOXFWDRAWREPEAT4[FD100RT90]FD100LT90FD30RT120REPEAT3[FD160RT120]HTENDTOHJDRAWFSREPEAT2[FD100RT90FD50RT90]RT180REPEAT180[FD25*PI/180LT1]BK25REPEAT2[FD100RT90FD20RT90]RT90PUBK70LT90PDREPEAT2[FD100RT90FD20RT90]PURT90FD20LT90FD125PDRT30REPEAT3[FD50RT120]LT30PUBK140PDBK50PUFD90RT90FD25LT90BK40PDBK80PUFD120RT90FD25LT90BK40PDBK50PUFD90LT90FD50RT90PDHTEND图4-火箭(HJ)⑵、编写一个过程,画出一支火箭(如图3)TODFDRAWFSHTFD110RT162REPEAT5[FD80LT72FD80RT144]LT162BK110RT36REPEAT5[FD42BK42RT36FD110BK110RT36]LT72FD42LT54FD15RT70FD35RT90FD15LT90REPEAT2[FD10LT90FD60LT90]FD10RT65FD40LT35FD45LT155FD40RT30FD30RT150FD60LT25FD50LT155FD50RT15FD61RT144FD45LT151FD70LT37FD35LT58FD39RT35FD10LT90FD15RT90FD22RT107FD31LT144FD80RT72FD80LT144FD50RT97FD40LT84FD15LT87FD45PUHOMEPDHTEND⑶、编写一个过程,画出一枚队徽(如图)。⑴、窗口方式:单击工具栏里的(或)⑵、命令方式:(使用保存过程命令)[格式]:SAVE“文件名[功能]:把当前工作区已经定义过的所有过程按指定文件名存盘。6、文件的保存。当出现存储文件对话框,可选择“驱动器”、“文件夹”确定把文件存在什么地方,然后输入文件名。例如ZFX,在单击“确定”按钮后,计算机会自动加上“.LOG”扩展名,以ZFX.LOG存储起来。⑴、首先看画边长为100的正方形过程:TOZFXREPEAT4[FD100RT90]END这个过程只能画边长为100的正方形。如果要想再画其他尺寸的正方形(如图5),那该怎么办?二、带参数的过程例题分析:怎样改变图形的大小和形状?1、设计具有共同特点的过程图3305080100注意观察:大小不同的正方形,其区别在于边长的不同。【知识点】:事实上,Logo系统就是这样编写出带变量的过程。TOZFX:BREPEAT4[FD:BRT90]END说明:在定义过程时,过程名后的变量叫做形式参数,即由冒号“:”与参数符号组成,之间不能留有空格?ZFX100?ZFX80?ZFX50?ZFX30⑵、再看画边长为60的正方形过程:TOZFXREPEAT4[FD60RT90]END这个过程只能画边长为60的正方形。如果要想再画相同尺寸的其他正多边形(如图6),那又该怎么办?观察与设计:其区别在于边数和转角的不同。TOZFX:NREPEAT:N[FD60RT360/:N]END【探究】:进而设计改变大小或形状的正多边形过程。TODBX:N:BREPEAT:N[FD:BRT360/:N]END图6?DBX360?DBX460?DBX560?DBX660?DBX760?DBX860?DBX4120⑴、格式与不带参数的过程基本相同,所不同的只是这里过程名后面带有参数(称之为“形式参数”,即由冒号“:”与参数符号组成,之间不能留有空格)。过程名与参数要留有空格。⑵、过程体内的每个参数必须在过程首部出现,同时参数符号要完全一致。⑶、执行新定义的带参数过程时,过程名后面也要跟一个实际参数值。实际参数与形式参数不同,它是一个数或有确定值的表达式,但数或表达式前面不再有冒号。⑷、在必要时,一个过程可以使用多个参数。在有多个参数的情况下,各个参数数据之间也必须留一个空格。2、编写带参数过程的说明3、常用绘图工具过程。1、正方形(:B表示边长)TOZFX:BREPEAT4[FD:BRT90]END2、长方形(:B表示宽,:A表示长)TOCFX:A:BREPEAT2[FD:ART90FD:BRT90]END3、三角形(:B表示边长)TOSJX:BREPEAT3[FD:BRT120]END4、正多边形(:N表示边数,:B表示边长)TODBX:N:BREPEAT:N[FD:BRT360/:N]END5、圆(:R表示半径,在LOGO语言中可以直接用PI来代替π的值)TOYUAN:RREPEAT360[RT0.5FD:R*PI/180RT0.5]END6、左弧(:N表示弧度,:R表示半径)TOLHU:N:RREPEAT:N[FD:R*PI/180LT1]END7、右弧(:N表示弧度,:R表示半径)TORHU:N:RREPEAT:N[FD:R*PI/180RT1]END8、左叶(:N表示弧度,:R表示半径)TOLY:N:RREPEAT2[LHU:N:RLT180-:N]END9、右叶(:N表示弧度,:R表示半径)TORY:N:RREPEAT2[RHU:N:RRT180-:N]END10、平行四边形:TOPXSBX:B1:B2:JREPEAT2[FD:B1RT:JFD:B2RT180-:J]END11、空心矩形(:A表示长,:B表示宽)TOKXJX:A:BSTAMPRECT:A:BEND12、实心矩形(:A表示长,:B表示宽)TOSXJX:A:B(STAMPRECT:A:B”TRUE)END13、空心椭圆(:X表示长半轴,;Y表示短半轴)TOKXTY:X:YSTAMPOVAL:X:YEND14、实心椭圆(:X表示长半轴,;Y表示短半轴)TOSXTY:X:Y(STAMPOVAL:X:Y”TRUE)END15、空心正多角形(:N表示边数,:B表示边长)TOKXJ:N:BREPEAT:N[FD:BRT720/:NFD:BLT360/:N]END16、一般正多角星(一般正多角星的内角角度为NJ=(N-2K)*180/N,其中K为整数,K的范围在1<K<N/2,且K与N没有公因数。)TOYBJ:N:B:KREPEAT:N[FD:BRT:K*360/:N]END4、过程的嵌套调用过程调用的最简单方式就是在命令行直接键入过程名。此外,还可以另外一种过程调用的方式,那就是在一个过程中允许使用已定义的过程,即过程的嵌套调用。过程B过程A过程C过程‥过程A过程B过程C过程‥⑴过程的串式嵌套调用说明:过程的嵌套调用还允许使用多层及交叉的方法。⑵过程的并式嵌套调用5、在操作中学:编程画出图形(如右下图)。子过程:TOZFX:XREPEAT4[FD:XRT90]ENDTOSJX:XREPEAT3[FD:XRT120]ENDTOCFX:A:BREPEAT2[FD:ART90FD:BRT90]END小房屋(XFW)(一般都要以带参数的过程方式编写)主过程:TOXFWDRAWFSZFX100PURT90FD15LT90PDCFX6030PURT90FD60LT90FD70PDREPEAT4[ZFX15RT90]PUFD30LT90FD85RT120PDSJX120HTEND动脑筋:如何改变小房屋的大小。【提示】:只要将主过程加上带参数:X,并把步数100改为:X,其余的按比例类推。(新值=原数/100*:X)改为带有参数TOXFW:XDRAWFSZFX:XPURT90FD:X*0.15LT90PDCFX:X*0.6:X*0.3PURT90FD:X*0.6LT90FD:X*0.7PDREPEAT4[ZFX:X*0.15RT90]PUFD:X*0.3LT90FD:X*0.85RT120PDSJX:X*1.2HTEND试一试,画一画:把原来编写的“队徽”过程改为可变幻大小。动脑筋,画一画⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂三、海龟的定向定位采用“描点法”,让海龟从一点走到下一点,对于不规则的图形也就不难了,关键是如何指定海龟的位置。在绘图过程中,有时很难确定海龟的位置和方向,我们可以使用定位和定向等命令后就方便多了。1、坐标概述用横方向和纵方向两个数来表示一个点的方法在数学中叫“坐标法”。在Logo画图屏幕,表示左右位置的数叫X坐标,表示上下位置的数叫Y坐标,海龟起始的位置在屏幕的中心点(海龟的头朝上)为原点,即(0,0)。2、基本命令【指导说明】:⑴、比较SETX、SETY与FD、BK使用时海龟位置的差异。⑵、比较SETH与RT、LT使用时海龟角度的差异。⑶、走到命令SETXY和画点命令DOT格式中的方括号内的数据只允许使用常数。使用变量或表达式时,要采用以下格式:SETXYSE:X:YDOTSE:X:Y命令全称简写说明横移SETX:X海龟平移到x位置纵移SETY:Y海龟竖移到y位置走到SETXY[:X:Y]移动海龟到(xy)位置上定向SETH:X海龟顺时针转动到X度处画点DOT[:X:Y]在(xy)处画一个点水平位置XCOR输出海龟X轴的位置垂直位置YCOR输出海龟Y轴的位置当前位置GETXY输出海龟当前的xy值当前角度HEADING输出海龟的指向角度3、在操作中学⑴、画出三个内嵌套的正方形图形(如右图)。TOSVQDRAWPUSETXY[-100-100]PDREPEAT4[FD200RT90]SETXY[-1000]SETXY[0100]SETXY[1000]SETXY[0-100]SETXY[-1000]SETXY[-5050]RT90REPEAT4[FD100RT90]END⑵、画出层叠的二个等腰三角形(如右图)。200100TOSJSABDRAWSETX-100SETXY[0100]SETXY[1000]SETX-100SETXY[00]