登陆注册
45421700000075

第75章 怎样编写LOGO过程

LOGO语言把编制好的一段一段的程序叫做过程。过程的整体形式是:TO过程名……过程头过程内容……过程体END……过程尾例如,键入:TO WBX按回车键后,屏幕进入编辑状态,屏幕下方有一行提示:EDIT:CTRL—C TO DEFINE,CTRL—G TO ABORT屏幕上方有一闪动的光标,这是你开始输入过程体的地方。例如,我们输入:REPEAT 5[FD 50 RT 72]END按了回车键,计算机并不执行这一命令,因为现在处于程序方式,而不是立即执行的命令方式。

按照屏幕下方的提示,按CTRL—C复合键,则刚刚输入的过程WBX被定义,而且存入工作区。

如果按CTRL—G复合键,就是向计算机声明刚刚输入的过程作废。按这两种键都可以退出编辑状态。

按CTRL—C键后,屏幕显示:PLEASE WAIT……WBX DEFINED?计算机说:请稍候…

…WBX定义定毕

这时,WBX就是LOGO的一个新指令了,而且这个指令是你教给它的!请键入:WBX屏幕上立刻就画出一个五边形来。

在编辑过程时,难免会出现错误,如果有错误,可以用下面的一些命令或功能键帮助修改。

ED过程名进入编辑状态,并出现该过程名的过程。ED是EDIT的缩写。

左移键使光标左移一格。

右移键使光标右移一格。

上移键删除光标右边的所有字符

CTRL-N使光标下移一行

CTRL-P使光标上移一行

CTRL-D删除光标所在位置上的字符,并使光标右边的所有字符顺序左移一格。

ESC删除光标左方的一个字符。

以上这些功能键,除CTRL—N,CTRL—P仅适用于编辑状态,其它各键在其它状态时也适用。

请定义下面的过程,并运行它(花括弧中的中文说明,不输入)。

KTOSHUYE{定义过程树叶}

LT45FD10BK10RT90FD10BK10LT45ENDTOSHUZHI{定义过程树枝}FD15SHUYEFD15SHUYEFD10BK40ENDTOSHUGUAN{定义过程树冠}LT60REPEAT7[SHUZHI RT 20]LT80ENDTOYIKESHU{定义过程一棵树}FD50SHUGUANBK50ENDTOYIBI{定义过程移笔}PURT90FD80LT90PDENDTOLIANGKESHU{定义过程两棵树}REPEAT 2[YIKESHUYIBI]END以上共定义了六个过程。这六个过程从画树叶开始直到画出两棵树,建议除了第五个过程(移笔),每定义一个过程,就运行一次看一看。认真体会LOGO语言可以在过程中调用已经定义过的过程的程序设计方法。

怎样编写和使用带参数的过程

请定义下面的过程:

TO ZFX:BIANCHANGREPEAT 4[FD:BIANCHANG RT 90]END这个过程可以画各种边长不同的正方形。过程名“ZFX”后面的“:BIANCHANG”(边长)叫做参数。

试键入:ZFX 50屏幕上将出现一个边长为50的正方形。

键入:ZFX 100则屏幕上出现一个边长为100的正方形。

需要注意的是,在定义过程时,参数名前需要加一个冒号。但在调用过程时,过程名后只须加一空格直接写出该参数的值即可,不能加冒号。

过程中的参数可以有多个。例如画任意边长的长方形,可定义如下:TO CFX:CHANG:KUANREPEAT 2[FD:CHANG RT 90 FD:KUAN RT 90]END键入:CFX100 60即可画出长100,宽60的长方形。

键入:CFX80 30

即可画出长80,宽30的长方形。

输入并运行下列带参数的过程:

TO CFX:CHANG:KUANREPEAT 2[FD:CHANG RT 90 FD:KUAN RT 90]ENDTO FENGCHE{定义过程风车}REPEAT 9[CFX 100 20 RT 40]ENDTO HUA{定义过程花}REPEAT 9[CFX 40 10 RT 40]LT20FENGCHEEND顺序运行上述过程,可以画出长方形和用长方形组成的风车、花的图案。应该注意到这三个过程中,CFX(长方形)过程带有两个参数,运行这个过程时,必须在过程名后绘出CHANG(长)和KUAN(宽)两个具体数值。后面的两个过程在调用CFX过程时,都已经给出了具体的参数。

什么是递归调用

常常有人讲这样一个故事:“从前有座山,山里有个庙,庙里有个老和尚。老和尚在讲故事,讲的什么故事呢?从前,有座山……”。这个故事可以永远讲不完。因为在故事又“调用”了这个故事本身。

LOGO语言的一些过程也可以调用它本身。这就叫过程的递归调用。

请看下例:TO XING{定义过程星}FD 100RT 160XING{调用XING(过程本身)}END运行这个程序,可以看到屏幕上出现一个九角星,而且海龟在不断地重复画。可以用CTRL—G使海龟停下来。想一想,为什么这么简单的过程能使海龟画出九角形,而且不停地在画?

下面的过程与上例基本一样,只是给出了BUSHU(步数)和JIAODU(角度)两个参数。变换这两个参数的值,可以画出许多不同的图形。

TO XING2:BUSHU:JIAODUFD:BUSHURT:JIAODUXING2:BUSHU:JIAODUEND请多次运行XING2过程,分别给出以下参数(每次运行前键入DRAW命令,以免各次显示的图形混在一起)。

BUSHUJIAODU501205090

507210185016060806013580144

下面给出的三个过程分别叫做LINGJIAN(零件)、ZUHE(组合)、ZAZUHE(再组合)。请分析它们的运行过程,并体会递归调用的作用。

TO LINGJIANHTFD 50LT 90FD 20LT 120FD 30ENDTO ZUHELINGJIANZUHEENDTO ZAZUHELINGJIANRT 60BK 50ZAZUHEEND怎样在LOGO语言中使用变量定义并运行下面这个可以输出方形螺旋的过程。过程名叫做FLX(方螺旋汉语拼音“FANG LUOXUAN”的缩写)。

TO FLXMAKE“BIAN 5REPEAT 80[FD:BIAN RT 90 MAKE”BIAN:BIAN+2]ENDMAKE是给变量赋值的命令。在MAKE“BIAN 5中,BIAN是变量名。这句的意思是给变量BIAN赋值为5。

在重复执行的表中(即方括弧中的命令系列)有:MAKE“BIAN:BIAN+2这相当于BASIC语言中的“LET BIAN=BIAN+2”。也就是变量BIAN在原来的值上增加2作为现有的值。例如,第1次执行“FD:BIAN”时,BIAN的值是5,第2次执行时,BIAN的值就变为7了,第3次执行时,BIAN的值变为9。依此类推,每次增值2。正是因为变量有这个特性,所以可以用跟画正方形形式上差不多的命令,画出如此复杂的螺旋形。这里的关键是边长每次都在变!

把上边的过程加上一个角度(JIAODU)参数,把过程名改为XUAN(旋),请输入下边给定的角度参数运行这个过程(也可以自定一些参数),你会看到许多“旋”的图案。

TO XUAN:JIAODUMAKE“BIAN 5REPEAT 50[FD:BIAN RT:JIAODU MAKE“BIAN:BIAN+2]END运行该过程时,可以在过程名后分别带上如下一些角度参数:12292727036最后,提醒大家注意两点:一、在MAKE命令中,变量名前必须有”号,而在后面的命令中,使用这个变量名时,则不用”号,而是必须在变量名前加上:号。

二有些命令系列比较长,例如上例过程体中的第2行,在屏幕的一行中显示不完。这时你应该继续输入,计算机会自动换到下一行,并认为这两行是连在一起的。计算机在自动换行时,会在这一行的最后加上一个!,它只是一个标记,不会影响过程的执行。你千万不要在一个语句没打完时按下回车键,这样会造成语法错误,使过程不能正常运行。

怎样使用LOGO语言做计算题(一)

PRINT(可以缩写为PR)命令可以输出表达式的结果,例如:PRINT 3+2按回车键后输出结果:5PR(78-34)/11*624在第二个表达式中,/表示÷号,表示乘号。表达式中可以使用圆括弧,但不能使用方括弧或花括弧。如果需要的话,可以在圆括弧中嵌套圆括弧,运算顺序为先内后外。如:PR5*(3+(7-2))40这个表达式不能写成:5*[3+(7-2)]键入:PR12345678100000

显示的结果是:

123457E12

这是用科学记数法表示的数,它的值是:123457×1012=1234570000000

可以看出,运算结果经过四舍五入保留了6位有效数字。

键入:

PR12345678/100000000000

1234357N3

这也是LOGO系统中科学记数法表示的数。它的值是:123457×10-3=000123457同样的,这个结果也是经过四舍五入保留了6位有效数字。

这里需要注意的是,当指数是负数的时候,LOGO的科学记数法用N而不用E。

定义过程:TOHCJS:X:Y

PR:X+:YPR:X-:YPR:X:YPR:X/:YEND这个过程的功能是求X、Y的和差积商(HCJS:和差积商汉语拼音的缩写),例如键入:HCJS104将显示:1464025试试看,如果键入:HCJS430

会出现什么结果。

怎样使用LOGO语言做计算题(二)

定义下面的过程:

TO JISUANMAKE“X RQMAKE“Y RQMAKE“X FIRST:XMAKE“Y FIRST:YPR[]IF:Y=0 STOPPR:X+:YPR:X-:YPR:X:YPR:X/:YPR[]JISUANEND这个过程名叫JISUAN(计算)。它的功能是从键盘输入X、Y的值,输出X、Y的和差积商。程序可以反复运行,直到输入的Y值是0为止。通过这个程序我们要了解LOGO语言中的一些新的概念和命令。

该过程体共有12行。下面我们逐行进行分析。

第1行和第2行使用了等待输入命令RQ(REQUEST的缩写)。计算机执行到这个命令时,等待你从键盘上给它输入。键盘输入的既可以是数字,也可以是字符串;既可以是1项,也可以是用空格分隔开的多项。我们现在用到的这个过程需要输入的是一个数。计算机把这个数放入一个“表”中,并通过MAKE命令把这个“表”赋给变量X。在第2行则把“表”赋给变量Y。

在LOGO语言中,把一串字符或一个数(一串数字字符)称为“字”;把若干个字的组合称为“表”。RQ命令是等待从键盘上输入一个表。

第3行和第4行使用了FIRST命令。第3行中的FIRST命令是把X(注意,FIRST右边X中存的是表)

中的第一个元素取出,经过MAKE命令把这个元素再赋值给变量X。这时变量X中存的不再是表,而是表中的第一个元素,一个具体的数了。同样的,执行第4行后,变量Y中存的也是一个具体的数了。

第3、4行是必要的。因为在第1、2行变量X和Y存的是表,而表是不能进行四则运算的。通过第3、4行的处理,把表中的第1个元素取出,分别赋给X和Y,这时变量X和Y才能进行下边的各种运算。

第5行和第11行中,两个方括弧中间没有字,这称为空表。PR[],输出一空行。

这是为了显示格式清楚。

第9~第10行分别显示变量X与Y的和差积商。

第11行是递归调用,使该过程可以反复运行。换行第6行中的IF是条件命令,STOP是停止当前过程执行的命令。全句的意思是:如果Y=0则停止过程的执行。否则,接下去执行下一命令行。

使用IF命令,对过程的控制将更为灵活。条件命令的用法可以细分为以下几种:一、IF条件THEN过程名如果条件满足,则执行THEN后面的过程,执行完该过程后再返回来接着往下执行。

二、IF条件THEN指令

如果条件满足,则执THEN后面的指令(或指令系列),执行完该指令后再返回来接着往下执行。

三、IF条件THEN STOP

如果条件满足,则退出本过程。如果本过程曾被其它过程调用,则返回曾调用此过程的过程去。

四、IF条件THEN TOPLEVEL

如果条件满足,就终止执行全部程序。

五、IF条件THEN过程或指令STOP或TOPLEVEL与3、4基本相同,只是在THEN后面可以先执行过程或指令,再停止本过程或全部过程。

以上5种形式的条件命令,THEN可以省略不写。

六、IF条件THEN活动1 ELSE活动2

这里的活动1、活动2可以由过程或指令系列组成(过程或指令之间用空格隔开,中间不得使用回车键换行)

这种形式的条件命令的执行方式是:如果条件满足则执行“活动1”中的内容,然后跳过“活动2”,继续往下执行;如果条件不满足则执行“活动2”中的内容,然后继续往下执行。

定义下列过程并运行,体会条件命令的用法。

TO BANYUAN:X{定义过程半园}IF:X>36 THEN HOME STOPFD 4 RT 5BANYUAN:X+1END(调用时,参数X的值可为0)下面这个过程的功能是计算并输出商品的售价。题目是:某商店出售磁盘,零售(10片和10片以下)按每片6元计价,批量购买(10片以上)按优惠价每片55元计价。要求编一程序、输入磁盘片数,即输出应付价款。

TO MCP{MCP:卖磁盘汉语拼音字头}MAKE“X RQMAKE“X FIRST:X

IF:X=0 STOP

IF:X>10 THEN PR 55*:X ELSE PR 6*:XPR[]MCPEND这个过程可以反复运行,只有当输入的X为0时,退出本过程。注意体会过程体中第4行的作用和执行顺序。

同类推荐
  • 百科知识-科普新课堂:陆战霸王

    百科知识-科普新课堂:陆战霸王

    本书是针对酷爱军事的青少年编写的一部科普图书,通过海军装备、特种武器、空军装备、陆军装备来向读者介绍军事中的一些基本的常识性的知识。内容既生动有趣又丰富了青少年的头脑。
  • 必谈的军事之谜

    必谈的军事之谜

    军事是一个国家和民族强大和稳定的象征,在国家生活中具有举足轻重的作用。国家兴亡,匹夫有责,全面而系统地掌握军事知识,是我们每一个人光荣的责任和义务,也是我们进行国防教育的主要内容。
  • 世界最具趣味的发明

    世界最具趣味的发明

    发明并不是“高不可攀”的东西。本书重在激励读者刻苦学习,不断创新。此外,在启发之余,本书每一篇的开头都将关键的主题词提炼出来,便于读者记忆与搜索。当你也具备了一双敏锐的眼睛,一个思想活跃的头脑,一股坚忍不拔的钻研劲头,一颗奉献之心,即便你不去做发明家,你在学习上,或任何工作岗位上都会受益无穷的。正因为这样,本书将是每一个孩子,甚至每一个成年人都值得一读的好书。
  • 上下而求索(科学知识大课堂)

    上下而求索(科学知识大课堂)

    为了普及科学知识,探索科学发展的历程,领略科学丰富多彩的趣味,弘扬科学名家的丰功伟绩,学习科学家不懈的创新精神与无私的奉献精神,培养青少年科学、爱科学的浓厚兴趣,并密切结合青少年朋友日常的生活与学习特点,我们组织编写了这套《科学知识大课堂》。作为一套普及科学知识的通俗读物,本书有别于专业的学术论著,侧重于知识性、趣味性、实用性,注重对青少年科技素质的培育、科学兴趣的培养、科学精神的塑造与科学方法的启迪,不求面面俱到,但求言之有物,物有所指,指有所发。
  • 世界科技百科:宇宙时空

    世界科技百科:宇宙时空

    科学是人类进步的第一推动力,而科学知识的普及则是实现这一推动的必由之路。在新的时代,社会的进步、科技的发展、人们生活水平的不断提高,为我们青少年的科普教育提供了新的契机。抓住这个契机,大力普及科学知识,传播科学精神,提高青少年的科学素质,是我们全社会的重要课题。科学教育,是提高青少年素质的重要因素,是现代教育的核心,这不仅能使青少年获得生活和未来所需的知识与技能,更重要的是能使青少年获得科学思想、科学精神、科学态度及科学方法的熏陶和培养。
热门推荐
  • 鼎破仙穹

    鼎破仙穹

    哪里有压迫,哪里就有反抗。人人向往逍遥,何人能得自在?青天高悬时,万古长青,众生共逍遥!
  • 穿越红楼之青莲花开

    穿越红楼之青莲花开

    她本是一朵碧色的莲花,他本是冰冷无情的黑暗之王。为了她,他舍弃了自己的精血,那是生生的挖出心脏中最纯的一部分,从此他无心无情;她进入红楼只想报恩,最重要的却是保护自己的亲人,可是当俩人相遇,他霸道地将她锁在怀中,不容任何人碰触,也不容许她逃离;她渐渐地被感动,却又感到不安,究竟会发生什么呢?
  • 晶武时代

    晶武时代

    在这个时代的转折点,赵凌融合了一块神秘的灵晶,成为御灵使,走进了强者横行,能量肆虐的星界...
  • 雄1连之新的神

    雄1连之新的神

    我堂堂宇宙的强者,一人抵雄狮百万,却,输在情上····
  • 神帝宠后:逆天魂师大小姐

    神帝宠后:逆天魂师大小姐

    什么?听起来很高大上的魂师是给人按摩、养魂、大保健的?有没有搞错!什么?别人都能修炼真气,就他们一族不能修炼?有没有搞错!什么?你们修真的还要来吊打我们?到底有没有搞错!堂堂华国异能组组长穿越而来,你们还真TM以为很好欺负!那个谁谁谁,帮了你那么多次,你说该怎么办?“亲爱的,这事你不操心。”“谁要欺负本帝的王后?嗯?”众人,匿。PS:嘿嘿嘿,放心哟,女主不是大保健的,一对一强文,爽文。
  • 篮球之越爆越强

    篮球之越爆越强

    李达:系统在手,天下我有!我要打爆所有人!系统:叮,你已被打爆!李达:……
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 永生仙忍

    永生仙忍

    绰号‘杀童’的沈临是一个特工,卧底在一个杀手帮会,不幸身份暴露被杀。没想到死亡之后灵魂穿越到一个位于仙侠世界的孩童身上,更没有想到的是,脑海中竟然储存了《火影忍者》中所有忍术的修炼方法。忍者,在这个世界展露锋芒!
  • 恶魔校草:臭丫头休想逃

    恶魔校草:臭丫头休想逃

    “啪!”的一巴掌打在了端木澈白皙洁净的脸上。戈薇愠怒道:“你个混蛋,那可是我的初吻!”端木澈把她禁锢在角落里,声音低沉:“你不是需要钱吗?我们来场交易怎么样?”戈薇气恨的伸出手就是一巴掌打过去,被端木澈一手钳住,声音里透着冷冽:“你还...
  • 三更药店

    三更药店

    季伯言目送二人离开,才低下头解开手里的档案袋,看到抽出来的东西时却愣住了。药品经营许可证副本?营业职照副本?公司登记申请表?股东承诺书?还有一串。。。。。。钥匙?我只是来面试而已,为什么要给自己这东西?等等,公司登记申请表中的法人身份证复印件为什么是自己的?