登陆注册
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行的作用和执行顺序。

同类推荐
  • 108影响人类的伟大发明

    108影响人类的伟大发明

    《108影响人类的伟大发明》特意选择了在人类历史上影响深远又和今天的生活密切相关的一百零八个发明,不论发明的大小轻重,将其背后的故事和相关的趣闻一起呈现出来,旨在让更多的人了解发明、热爱发明,将文明的火种传递下去。
  • 探究式科普丛书-人体内的电子机器:电子生化人

    探究式科普丛书-人体内的电子机器:电子生化人

    本书从计算机、电子元件入手,以高端生化技术以及先进的科技理念为基础,详细阐述了电子生化人的基本概念、特征、构造原理与人类的关系、未来的发展前景以及给社会带来的影响等,旨在通过本书的学习让读者更全面地认识和了解电子生化物,了解尖端的科技知识。
  • 太空世纪

    太空世纪

    科学是人类进步的第一推动力,而科学知识的普及则是实现这一推动的必由之路。在新的时代,社会的进步、科技的发展、人们生活水平的不断提高,为我们青少年的科普教育提供了新的契机。抓住这个契机,大力普及科学知识,传播科学精神,提高青少年的科学素质,是我们全社会的重要课题。
  • 海洋变迁:趣话海洋知识

    海洋变迁:趣话海洋知识

    本书用生动流畅的语言,丰富精美的插图,并配以准确、科学的图解文字,生动形象地向读者展示了知识世界中神秘、有趣、耐人寻味的各种现象,让学生们在充满趣味的阅读中,轻松愉快地开阔视野、增长知识。本书力求做到集知识性、趣味性、科学性于一身。
  • 动手做实验丛书--光学实验改进设计实践

    动手做实验丛书--光学实验改进设计实践

    本系列丛书主要介绍动手做实验,本书详细讲解了光学实验改进设计实践等内容。
热门推荐
  • 浪子天歌

    浪子天歌

    人生在世,有人图富贵,有人图长生。叶天歌什么都不图,就想和自己喜欢的人一起,安安静静过日子。【本书完】
  • 冰山王子狂追腹黑女王

    冰山王子狂追腹黑女王

    他是冰山大少,对外人淡漠疏离,却被她融化冰山;她是腹黑女王,冰冷无情,难以靠近,不相信爱情,却把心,全部交给他;他是儒雅王子,外表好接近,实则拒人千里之外,却一心想飞到她面前;她是毒舌公主,骂人不带脏字,不相信他人,只相信自己的哥哥弟弟和姐妹,却为他甘愿付出一切;他是花花公子,身边美女无数,可却因为她,将她们置若罔闻,对她一心一意;她是可爱天使,但天使的外表下,有着一颗杀戮果断的心,却为了他,奋不顾身......六个性格迥异的人,却遇到了一起,上演了一场危险重重的恋爱话剧......
  • 百科知识-生命百科-生存环境(科普新课堂)

    百科知识-生命百科-生存环境(科普新课堂)

    在一个温暖的夏季早晨,当太阳升起的时候,内布拉斯加州的一个“小镇”已经充满了生机和活力。一些“居民”在为建设自己的家园而努力工作--它们在地下搞“建设”,
  • 快递时代

    快递时代

    当梦想与爱产生冲突,站在这十字路口上,萧尘该做何选择?与此同时,神秘的组织浮出水面,他们到底有何目的?尘封的过往被逐渐揭露,一切的开始竟都指向那次快递任务。
  • 影帝的娱乐人生

    影帝的娱乐人生

    俞铭:我曾经是一个德艺双馨的老艺术家,默默无闻的国家一级演员,潜心修炼的影视前辈。工壹:那您现在是?俞铭:娱乐圈里最亮的那颗星!
  • 从斗罗开始的拯救世界之路

    从斗罗开始的拯救世界之路

    古玉在死后被正神联盟所招募,签订契约,成为正神代言人,从此踏上对抗一切破坏世界稳定的无尽之路。在斗罗大陆,依靠须佐能乎一人屠灭圣灵教,只身对抗两大极限斗罗;第四次忍界大战,驾驭完全体须佐能乎,携尾兽之力正面应对六道斑,一人堪比万军。艾卡西亚的虚空裂缝,联合瑞兹和英雄们,以须佐能乎承载世界符文威能,对抗无尽虚空怪物。
  • 青羊宫到浣花溪

    青羊宫到浣花溪

    菊乐,一个成都的本土企业,在董事长童恩文的带领下,在风雨中走过了50年,克服无数困难和艰辛,才让菊乐成为一个让老百姓信得过的知名品牌,让菊乐企业成为员工依靠的企业。从创立菊乐至今,童恩文亲笔写下了几十篇文章,集结成书,内容包括往事、杂谈、游记三部分。
  • 天行

    天行

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

    沙棘结

    本书收录了作者近年创作的发表于各种文学期刊的《沙棘结》等6篇中篇小说,文笔细腻、文字优美、叙述功力深厚,人物栩栩如生、故事精彩曲折,或讽刺或褒扬或温暖或悲凄,描述的几乎皆为作者身处其中的当今社会现状,从中深刻道出了各种人生哲理。
  • 海贼王的荣光

    海贼王的荣光

    世界上没有什么事是一拳解决不了的。如果有,就两拳。——这是一个与路飞同时代的少年带着他的伙伴们走出一条新的航线,新的大冒险!我心里的故事,与诸君共赏!