logo语言的双刃剑go label 语句

上传人:小** 文档编号:89125255 上传时间:2019-05-18 格式:DOC 页数:6 大小:20KB
返回 下载 相关 举报
logo语言的双刃剑go label 语句_第1页
第1页 / 共6页
logo语言的双刃剑go label 语句_第2页
第2页 / 共6页
logo语言的双刃剑go label 语句_第3页
第3页 / 共6页
logo语言的双刃剑go label 语句_第4页
第4页 / 共6页
logo语言的双刃剑go label 语句_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《logo语言的双刃剑go label 语句》由会员分享,可在线阅读,更多相关《logo语言的双刃剑go label 语句(6页珍藏版)》请在金锄头文库上搜索。

1、LOGO语言的双刃剑GO LABEL 语句LOGO语言的双刃剑GO-LABEL语句在LOGO语言中有一对十分重要的命令GO-LABEL,近来认识它、使用它的编程爱好者逐渐多起来了。可以这样讲:在LOGO语言中有些命题如果没有GO-LABEL命令,简直都没有办法编出程序来,所以它显得很好用、很重要。就连结构化编程实现得相当好的VB、PASCAL、C、C+语言中都保留了与GO-LABEL相类似的GOTO命令(例如用搜索引擎搜索PASCAL保留字或PASCAL关键字就能查出PASCAL语言的命令集中是否包含使用了GOTO命令)。由此可见GO-LABEL(或GOTO)命令的重要性。但是GO-LABEL

2、命令又是许多计算机程序设计专家极力反对使用的程序设计命令,因为使用不当时,它将会严重破坏程序的结构化,所以用得不好就极其有害。GO-LABEL命令类似于其它计算机程序设计语言中的GOTO命令。所以有少数类型的计算机程序设计语言中干脆就没有类似的命令语言,其用意在于彻底杜绝这方面的危害。这两条LOGO命令使用的语法如下:GO-LABEL必须是成对使用的命令。格式:GO行号功能:LOGO系统在执行到GO命令时,就无条件地转向所指定的行号处继续执行程序。行号之前一律以一个符号标识。一组GO-LABEL命令所采用的行号必须完全对应一致。格式:LABEL行号功能:标注一个指定的行号。简单的应用举例:TO

3、ZFX8;主程序用无条件转向命令画正方形DRAW;清屏幕MAKEN0;先设定N为0,因为还没有开始画LABELHH;在还没有画完4条边时就返回到这里FD60RT90;画一条边MAKEN:N+1;已经画过的边数自动累加1IF:N=4THENSTOPELSEGOHH;控制总共画4条边END看懂了上面程序的可能会说,用REPEAT4FD60RT90就画出来了,何必这么麻烦?这说的也是。但是GO-LABEL命令不是用在这样的地方的。林老师编写的以下几个程序,假如没有GO-LABEL命令的话,根本不可能编出来。在这些举例的程序中几乎没有别的LOGO命令或编程方式能够替代GO-LABEL命令。计算兼画图的

4、经典程序:挑战八皇后问题自定义海龟造型的工具程序:海龟是怎样DIY的至今还没被超越的纯计算程序:实战计算圆周率到小数下10000位一个至今还保持记录的25位数:寻找神秘的连锁数在上面的4个例子中GO-LABEL命令是其它命令所难以替代的大家可以点击以上链接查看这些程序在林老师的博客里还有其它例子,有劳自己找一找。下面还是通过一些例子来分析比较GO-LABEL命令和其他形式编程思路上的区别。示范例题:限定仅使用1个FOR循环找出所有3位数中3个数位的和等于16的所有3位数,并计算出它们的累加和。程序1:用标准的单重循环编程(评述:LOGO语言在REPEAT、FOR等命令的方括号中不允许分行写程序

5、,大大限制了编写复杂程序的能力。那个FOR命令括号内红色部分的LOGO命令行实在太长了!这是LOGO语言的致命伤之一-也许原先设计给孩子们使用的LOGO语言的设计者,从来都没有准备让大家用它来设计这样繁琐的计算程序。)TOLEIJIA1;标准的单循环程序MAKEN0;计算符合条件的数的个数MAKES0;计算累加和FORI100999MAKEAINT(:I/100)MAKEBREMAINDER:I100MAKECREMAINDER:B10MAKEBINT(:B/10)IF:A+:B+:C=18TYPE:ITYPECHAR32MAKEN:N+1MAKES:S+:IPRTYPE总共有TYPE:NPR

6、个符合条件的数。TYPE这些数的总和是:PR:SEND运行结果:LEIJIA1189198279288297369378387396459468477486495549558567576585594639648657666675684693729738747756765774783792819828837846855864873882891909918927936945954963972981990总共有54个符合条件的数。这些数的总和是:36531程序2:用GO-LABEL可以替代FOR循环编程(评述:一些复杂的长程序语句在使用GO-LABEL编程后,就允许分行编写了,方便了不少。在有些场合

7、下,GO-LABEL编程是无可替代的。)TOLEIJIA2;用GO-LABEL替代FOR循环MAKEN0;计算符合条件的数的个数MAKES0;计算累加和MAKEI100LABELLOOPMAKEAINT(:I/100);剪取三位数的百位MAKEBREMAINDER:I100;剪取十位连同个位MAKECREMAINDER:B10;剪取个位MAKEBINT(:B/10);剪取十位IF:A+:B+:C=18TYPE:ITYPECHAR32MAKEN:N+1MAKES:S+:IMAKEI:I+1IF:I1000THENGOLOOP;这是向前GOTO正确应用的典型例子PRTYPE总共有TYPE:NPR个

8、符合条件的数。TYPE这些数的总和是:PR:SEND程序3:使用转行符号编程(评述:这个程序实际上和LEIJIA1是一样的,仅仅是用符号把长程序截成几段连起来。但是,如果符号使用错误(例如缺少预留空格)或符号忘了写,将造成难以查找的出错。符号后面也不允许添加注解。符号是对LOGO程序难以写成很长的语言的一种改善。)TOLEIJIA4;使用转行符号编程MAKEN0;计算符合条件的数的个数MAKES0;计算累加和FORI100999MAKEAINT(:I/100)MAKEBREMAINDER:I100MAKECREMAINDER:B10MAKEBINT(:B/10)IF:A+:B+:C=18TYP

9、E:ITYPECHAR32MAKEN:N+1MAKES:S+:IPRTYPE总共有TYPE:NPR个符合条件的数。TYPE这些数的总和是:PR:SEND关于使用程序换行转接号的技巧请参考以下文章的链接:重新塑造LOGO编程风格的程序换行转接号程序4:(评述:这是通常提倡的方式,也是最优化的结构化编程方式。使用子程序就把FOR循环括号内的长语句解放出来了。)TOLEIJIA4;添加了子程序的单循环程序MAKEN0;计算符合条件的数的个数MAKES0;计算累加和FORI100999ZCX:I;产生3位数的FOR循环命令组PRTYPE总共有TYPE:NPR个符合条件的数。TYPE这些数的总和是:PR

10、:SENDTOZCX:I;计算子程序MAKEAINT(:I/100);剪取三位数的百位MAKEBREMAINDER:I100;剪取十位连同个位MAKECREMAINDER:B10;剪取个位MAKEBINT(:B/10);剪取十位IF:A+:B+:C=18TYPE:ITYPECHAR32MAKEN:N+1MAKES:S+:I;检查和等于18、显示、累加操作END滥用GO-LABEL将导致程序结构混乱的实例:程序5:(评述:这是个故意编造的滥用GO-LABEL的例子。整个程序从LOGO语法的角度来看,什么毛病也没有。但是运行了这个程序后发现它什么也没有干,只有在那里乱兜了几个圈子,程序甚至根本没有

11、执行程序中的MAKE、PR命令。当程序的结构更加复杂时,滥用GO-LABEL命令最后连导致程序的毛病出在哪里都找不到。)TOLEIJIA5GOL1;转向L1行号处MAKEA5MAKEB3PR:A+:BLABELL2GOL3;转向L3行号处PR:A*:BLABELL1GOL2;转向L2行号处LABELL3END上面这个程序LEIJIA5看懂了吗?能看懂最好。看不懂也无所谓。反正这肯定是一个运行轨迹缠绕、没有明确目的地飞来飞去的程序。千万别没有目的地使用GO-LABEL!它虽然可能成为最好的东西,但没有用好也可能是非常有害的东西!小结:在LOGO语言中,GO-LABEL命令的正确应用可以大大提高编

12、程的灵活性。GO语句一般都和IFTHENELSE联合使用,常常能达到其他语句无法达到的编程效果。编写程序时要十分慎重使用GO无条件转向语句。滥用GO无条件转向语句,可能会使程序的思路变得十分混乱。只有在以下两种目的性非常明确的情况下才能使用GO无条件转向语句:(1)向前GO:GO无条件转向语句指向在GO命令行之前的行号,可以构成循环重复执行前面的程序语句。(2)向后GO:GO无条件转向语句指向在GO命令行之后的行号,可以根据需要越过某些暂时不需要操作的程序语句。本文系应希望彻底了解GO-LABEL用途的读者的要求而撰写点击下面的页面查找详细分类目录的链接:林老师博客首页的链接:林正山老师邮箱:需要LOGO系统文件的可以发邮件给林老师文件包中还包括学习LOGO语言常用表格及工具程序文件声明:林正山老师发表的文章,媒体、网站或出版物未经本人许可谢绝进行任何形式的删节、改编、重组及转载。允许个人博客按原文(含图片及附注)进行完整转载,转载时敬请注明本博作者姓名、文章原始出处,并以链接形式标明来源。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号