LOGO语言教材培训完整_第1页
LOGO语言教材培训完整_第2页
LOGO语言教材培训完整_第3页
LOGO语言教材培训完整_第4页
LOGO语言教材培训完整_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

会计学1LOGO语言教材培训完整PPT课件LOGO语言简介LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程,对初学者特别是儿童进行寓教于乐的教学方式。

LOGO语言创始于1968年,是美国国家科学基金会所资助的一项专案研究,在麻省理工学院的人工智能研究室完成。第一讲第1页/共97页LOGO语言简介LOGO语言是由美国麻省理工学院人工智能实验室于1968年开发成功的。它的创始人是一位数学家,名字叫西蒙·佩伯特(SeymourPapert)。又译为西蒙·派珀特,或西蒙·佩帕特。第一讲第2页/共97页什么是LOGOLOGO原意是“文字、符号”和“思考”、“思想”。还有“标记、商标”等意思。第一讲第3页/共97页pclogoforwindows基础1、软件的安装2、界面简介了解标题栏、菜单栏、工具栏、绘图窗口、小海龟、命令窗口、提示符(?)、光标(|)、状态栏以及常见的工具按钮。3、了解窗口的各种显示方式以及切换方法

LOGO语言中,可以用各窗口的最大化和还原命令改变窗口的显示状态,也可以用输入命令的方法改变窗口的显示状态(窗口界面视图的切换命令):FS(fullscreen)全图状态命令,即全图方式。SS(splitscreen)图文混合状态命令,即图文方式。TS(textscreen)全文本状态命令,即文本方式。第一讲第4页/共97页pclogoforwindows基础

全图状态时,看不到从键盘上输入的任何命令,只能看到海龟画图区域。(但,此时,仍然可以通过键盘输入并执行命令)。这时输入SS命令,就可以回到图文混合状态了。

LOGO语言命令可以使用简写,如FORWARD是前进命令,可以简写为FD。在小学教材中,一般使用的都是简写以便于学生记忆。再如LEFT是左转命令,简写为LT。RIGHT是右转命令,简写为RT。BACK是后退命令,简写为BK。LOGO命令不分大小写。第一讲第5页/共97页简单的绘图命令FD(forward)参数前进

BK(back)参数后退

RT(right)参数右转

LT(left)参数左转注意:命令和参数之间必须用空格分开,执行命令时必须按回车键。第一讲第6页/共97页练一练练习1:将FD40RT90连续输入四次,分别回车,看看画出了什么?将FD与RT改为BK与LT再操作一次。(连续输入4次)第一讲第7页/共97页退出软件的方法(1)使用BYE命令。

(2)使用文件菜单中的“退出”命令。

(3)单击窗口右上角的关闭按钮。第一讲第8页/共97页思考题(P6)1、DRAW命令有什么作用?(DRAW是初始化命令。使系统恢复到启动状态。效果是:清屏后,海龟归位,设置的属性全部初始化,即,海龟回到原点(又称源点或母位)位置,头向上,笔粗为1,笔色为黑色。例如:比较一下setw20fd40csfd50和setw20fd40drawfd50)

2、小海龟只会一步步走路吗?怎样让小海龟飞一段路程再走呢?(PUPD命令)第一讲第9页/共97页第2课涉及的几个命令PU(penup)抬笔命令让海龟把脚抬起来,移动时不画线。PD(pendown)落笔命令让海龟把脚落下,移动时画出线来。HT(hideturtle)藏龟命令ST(showturtle)显龟命令CLEAN清图命令。清除屏幕上的图形,海龟的状态不变。即,只清除屏幕上的图形,不改变海龟的位置和方向。(海龟不归位)。CS(clearscreen)清屏。清除屏幕上的图形,海龟回母位。但,设置的属性仍保留。例如:setw20fd40csfd50Draw初始化命令。使系统恢复到启动状态。效果是:清屏(绘图窗口)后,海龟归位,设置的属性全部初始化,即,海龟回到原点位置,头向上,笔粗为1,笔色为黑色。Home回家命令。使海龟回到母位。不清屏,海龟回到屏幕中心。(带线归位)。例如:fd60rt30fd40home可以利用带线归位的功能画图,例如:fd60rt90fd30homeCT(cleartext)清文本作用是:清除命令窗口所有文本,“?”提示符回到第一行。第一讲第10页/共97页思考一下怎么在画完图后,让小海龟不留痕迹回家,并保留屏幕上画好的图形?(PUHOME)CLEAN与DRAW命令有什么相同点和不同点?在学过的命令中,哪些命令后面需要参数,哪些命令后面不需要参数?小海龟已经能画出很多好看的图形了,但颜色单一,你能改变它吗?第一讲第11页/共97页小经验修改错误的方法:在命令状态下,可以用键盘上的四个光标控制键来移动光标。如果发现命令有错误,首先将光标移到要删除的字符处,删除字符,再键入正确的字符。如果发现某个地方漏打了字符,例如,命令RT90在命令与数字之间忘记输入空格了,可将光标移到字符“9”前,按一下空格键,命令就变成了RT90了。小窍门:使用历史记录运行执行过的命令。在LOGO语言里,若把光标键移到已经执行过的命令上,回车,则可再次执行命令。例如:输入FD60RT90回车后,用上述方法再执行三次,看画出了什么图形。第一讲第12页/共97页REPEAT重复命令重复命令格式:REPEAT重复次数[重复内容]P12看一看repeat2[fd40rt90fd80rt90]repeat36[fd10rt10]比较一下:repeat6[fd50rt60]与lt30repeat6[fd50rt60]第二讲第13页/共97页想一想不用重复命令怎样画正方形和长方形?用重复命令怎样画正方形和长方形?体会一下重复命令的好处。怎样用重复命令画正三角形?怎样画出顶点朝正上方的正三角形?画顶点朝正上方的正五边形呢?答案:lt18repeat5[fd60rt72]在画上面各正多边形时,你怎样根据多边形的内角和公式计算旋转角度?[先根据(n-2)*180算出内角和,再除以n算出内角,再用“180-内角”算出外角。旋转的角度就是外角的度数。]第二讲第14页/共97页用重复命令画正多边形公式

观察下面的列表,可以发现,小海龟在画正多边形时,重复的次数与转角度数的乘积总是等于360度。正多边形重复次数一个内角(度数)转角(度数)乘积(度数)正三角形3(3-2)×180÷3=60120120×3=360正方形4(4-2)×180÷4=909090×4=360正五边形5(5-2)×180÷5=1087272×5=360正六边形6(6-2)×180÷6=1206060×6=360正八边形8(8-2)×180÷8=1354545×8=360

从表中可以看出,画正多边形时,转角的度数是正多边形的一个外角的度数。在画正多边形时只要用360度除以边数,就可以得到转角的度数。画正多边形的公式:REPEAT边数[FD边长RT360/边数]第二讲第15页/共97页小经验注意:在计算机语言中,除号是/乘号是*在画正多边形时,边数越多,边长就要越小些。否则画出的图形会出界导致错乱。第二讲第16页/共97页练一练练习画一下正三角形、正方形、正五、六、七、八、九、十边形。想一想:画正七边形时,转角的度数怎么表示呢?第二讲第17页/共97页画圆

如何用REPEAT命令画一个圆呢?(在LOGO语言中,通常采用画一个正36边形来近似画圆。我们画圆一般是根据确定圆心和圆的半径来画,如果圆的半径为r,那么圆的周长就是2πr。这样得到下面的式子:

36×边长=2πr所以,边长=2πr÷36=πr÷18

所以,画圆的公式为:repeat36[fd半径*0.174rt10]

有了这个式子,只要确定了圆的半径,就可以画出指定半径的圆了。例如:画一个半径为10的圆

repeat36[fd3.14*10/18rt360/36]

即repeat36[fd3.14*10/18rt10]或repeat36[fd10*0.174rt10]

在LOGO语言中,圆周率π可以写成PI,系统默认是两位小数。所以,上面的语句也可以写成:

repeat36[fdPI*10/18rt10]

提示:若不指定半径,我们常常直接使用这样的命令画圆:repeat36[fd边长rt10]如:repeat36[fd10rt10]

也可以使用这样的两次旋转,使画出的圆更平滑:

repeat36[rt5fd10rt5]第二讲第18页/共97页小知识repeat命令是可以嵌套的。例如:

repeat4[repeat36[fd10rt10]rt90]

想一想:这个语句能画出什么图形?试一下。然后改变最外层的旋转角度和旋转次数,再试试。将用重复命令画的其它图形,加上外部的嵌套(重复次数自定),看看能画出什么图形。例如:

repeat18[repeat5[fd80rt144]rt20]repeat12[repeat6[fd70rt60]rt30]repeat6[repeat6[fd70rt60]rt30]

提示:当最外层的旋转次数与旋转角度的积是360的时候,正好会旋转一周。若积小于360呢?第二讲第19页/共97页重复命令嵌套练习

用重复命令嵌套完成下面的练习,要求旋转一周:1、用重复命令画一个圆,并旋转18次。2、用重复命令画一个正方形,并旋转6次。3、用重复命令画一个正八边形,并旋转8次。4、用重复命令画一个五角星,并旋转18次。第二讲第20页/共97页重复命令嵌套练习

用重复命令嵌套完成下面的练习,要求旋转一周:1、用重复命令画一个圆,并旋转18次。

repeat18[repeat36[fd10rt10]rt20]

或repeat18[repeat36[rt5fd10rt5]rt20]

或repeat18[repeat36[rt5fd5rt5]lt20]2、用重复命令画一个正方形,并旋转6次。

repeat6[repeat4[fd100lt90]lt60]

或repeat6[repeat4[fd100rt90]rt60]3、用重复命令画一个正八边形,并旋转8次。

repeat8[repeat8[fd50lt45]lt45]

或repeat8[repeat8[fd50rt45]rt45]4、用重复命令画一个五角星,并旋转18次。

repeat18[repeat5[fd120rt144]rt20]第二讲第21页/共97页REPEAT命令使用范例setpc2repeat12120]

lt30pubk40rt30][pufd40rt30pdrepeat3[fd40rtsetpc12repeat6[repeat2[fd30rt90fd60rt90]rt60]第二讲第22页/共97页REPEAT命令使用范例setw5setpc2repeat6[lt45repeat4[repeat9[fd10rt10]repeat9[fd10lt10]rt90]rt105]或setw5setpc2repeat6[lt45repeat4[repeat9[fd5rt10]repeat9[fd5lt10]rt90]rt105]第二讲提示:用重复命令画弧的公式:REPEAT圆心角度数/10[FD半径*0.174RT10]一般可以这样:REPEAT圆心角度数/10[FD10RT10]第23页/共97页思考REPEAT命令中的中括号可以缺少一个吗?利用重复命令,怎样画出下图呢?第二讲第24页/共97页参考答案repeat4[fd60bk60rt90pufd20lt90pd]第二讲第25页/共97页改变笔色和背景色(P17)改变笔色:可以通过工具栏的按钮改变笔色。也可以使用命令:setpc颜色代码(0~15)背景色也可以改变,大家试试用工具栏改变背景色。用命令是:setbg颜色代码(0~15)从工具栏中,单击改变颜色按钮,打开颜色列表。看看各颜色的代码。记一下。第三讲第26页/共97页颜色代码表代码0123456789101112131415颜色黑深蓝绿青深红紫棕灰白深灰浅蓝浅绿浅青浅红浅紫黄白第三讲第27页/共97页填充颜色命令FILLFILL填充颜色命令。使用该命令时,必须先使小海龟抬笔走进要填充颜色的封闭图形中,然后落笔再执行该命令。例如:

setpc12setbg14repeat4[fd100rt90]purt45fd30pdfill第三讲第28页/共97页小知识

给带有边色线的图形填充不同的颜色,命令格式为:(FILL图形线的颜色)注意:一定要有括号。例如:setpc12(设笔色为浅红)repeat4[fd100rt90];画出一个边线色为浅红色的正方形rt60pufd40pdsetpc14

;设笔色为浅蓝(fill12);在浅红边框的正方形内填充浅蓝色第三讲第29页/共97页想一想下面的第二条语句能画出什么图形?若想给画出的图填色,横线上应该写什么语句?drawsetw5repeat36[fd15rt10]rt90pufd30pdsetpc12________________(FILL0)第三讲第30页/共97页反笔命令(PX)与笔擦命令(PE)反笔命令不太常用,略。请课后自已阅读P18页内容。PE(PENERASE)笔擦命令。例如fd60pebk60请自由阅读教材P19-21第三讲第31页/共97页练习(P214)先想一想,下面语句能画出什么图形?然后画一下。REPEAT4[REPEAT4[FD50RT90]RT90]画出上面图形后,若想擦除所画的图形,应该输入什么命令呢?PEREPEAT4[REPEAT4[FD50RT90]RT90]当然,也可以先输入PE,回车后,再把光标定位在上面的语句上,再回车。第三讲第32页/共97页想一想如何使用PE命令画一条虚线?

可参考下面语句:FD150PUBK20PEBK20PUBK20PEBK20PUBK20PEBK20PUBK20PEBK20注意:执行语句后若再想画线,必须先执行落笔命令。

也可参考下面语句:

FD20PUFD20PDFD20PUFD20PDFD20PUFD20PDFD20PUFD20PD第三讲第33页/共97页设置笔宽命令

格式:SETWN

即,SETW笔宽值(N是笔头型号,也就是笔宽的值。取值范围是1~999值越大画出的线越粗。初始化状态值为1。例如:SETPC12SETW30FD60

再如:FD2BK2;画点后海龟归位

第三讲第34页/共97页画点的范例(P24)

setw20setpc12fd2bk2;画出一个点purt90fd20lt90pd;改变位置setw10setpc2fd1bk1;画出另一个点画出连续的点:

SETW20FD2BK2PURT90FD40LT90PDSETW10FD1BK1PURT90FD40LT90PDSETW20SETPC12FD2BK2第三讲第35页/共97页读一读自学教材P24~25的“练技能”部分。了解各语句的作用。想一想,P25第4题的各图应该如何画?查询笔宽命令:WIDTH例如:SETW20WIDTH,则电脑显示

Result:20第三讲第36页/共97页画椭圆和矩形“看一看”(P27)DRAWSETPC12(STAMPOVAL4040“TRUE)PULT90FD350RT90BK130PDSETPC9(STAMPRECT700120“TRUE)第三讲120700第37页/共97页画椭圆命令画空心椭圆格式:STAMPOVAL横轴半径纵轴半径画实心椭圆格式:(STAMPOVAL横轴半径纵轴半径“TRUE)

注意:画实心椭圆时,一定要有括号。两个参数相等时为正圆。横轴半径纵轴半径第三讲第38页/共97页画矩形命令画空心矩形格式:STAMPRECT长宽画实心矩形格式:(STAMPRECT长宽“TRUE)

注意:画实心矩形时,一定要有括号。两个参数相等时为正方形。长宽第三讲第39页/共97页小知识用上述命令画椭圆后,小海龟在椭圆的中心。用上述命令画矩形后,小海龟在矩形的左下角。例如:STAMPOVAL12050STAMPRECT12050第三讲第40页/共97页练一练(P293、4、5题)

提示:第3题的前两图可以用STAMPRECT和STAMPOVAL命令通过修改参数来实现。后一图,可以先画圆,也可以先画正方形,画完一图后,要注意抬笔改变海龟的位置再落笔绘图。特别要注意画圆和画正方形时,海龟处在所画图形中的位置。第三讲第41页/共97页动脑筋画矩形或椭圆时,海龟分别处在图形的什么位置?(答案略)海龟在同一位置画两个实心图形时,要注意什么?

STAMPOVAL和STAMPRECT命令只能画水平与垂直方向的椭圆和矩形吗?第三讲第42页/共97页动脑筋画矩形或椭圆时,海龟分别处在图形的什么位置?(答案略)海龟在同一位置画两个实心图形时,要注意什么?(答案:要注意区别两个图形的颜色。)

STAMPOVAL和STAMPRECT命令只能画水平与垂直方向的椭圆和矩形吗?(答案:不管海龟角度如何,都只能画水平与垂直方向的椭圆和矩形)第三讲第43页/共97页多龟作图多龟作图常用方法:指名法、激活法。退出多龟作图可以用draw命令。1、指名法。使用呼叫命令:ASK用ASK指名调用海龟。这种方法不够灵活,用得较少。格式:ASK[海龟代号][命令组]例如:ASK1[FD30ST]ASK2[FD60ST]ASK3[RT90FD60ST]SETPC12

可以发现有一只海龟变红色了。这是系统初始状态时那只0号海龟。默认状态下,除0号海龟以外的海龟是不显示的。只有通过ST命令才能让它们显示出来。第四讲第44页/共97页多龟作图范例:ASK1[FD30ST]ASK2[FD60ST]ASK3[BK30ST]ASK[123][REPEAT3[FD30RT120]]第四讲第45页/共97页多龟作图2、激活法。激活法常用TELL—WHO—EACH命令激活并调用海龟。这是常用的多龟作图方式。(告诉命令TELL是叫醒海龟的命令。用who命令可以查看叫醒了几只。)格式:TELL[海龟代号]ASK1[FD30ST]ASK2[FD60ST]ASK3[BK30ST]

TELL[0123]RT90FD100上面语句可以调用0~3号海龟同时作图。第四讲第46页/共97页多龟作图也可使用告诉命令TELLALL。这也是叫醒海龟的命令。用who命令可以查看叫醒了几只。)格式:TELLALL海龟代号1海龟代号2ASK1[FD30ST]ASK2[FD60ST]ASK3[BK30ST]

TELLALL02RT90FD100上面语句可以调用0~2号海龟同时作图。第四讲第47页/共97页温馨提示

使用ASK呼叫命令和TELL告诉命令,只能调用16只(0~15)海龟。若要调用更多的海龟,可以用SETTURTLES命令设置海龟的数量。例如:setturtles300ask260[fd30st]

若没用SETTURTLES命令设置海龟的数量(1~32767),则类似ask29[fd30st]这样的语句就会报错。第四讲第48页/共97页练技能(P344)第4题让五只海龟一起来画奥林匹克五环标志图。drawhtask1[setpc9lt90pufd90pd]ask2[setpc12rt90pufd90pd]ask3[setpc14pubk30lt90fd45pd]ask4[setpc2pubk30rt90fd45pd]ask[012345][stampoval3535]第四讲第49页/共97页练技能(P345)第5题(1)用多只海龟画出下列图形参考答案1drawhtpufd50pdfd50ask1[rt24pufd50pdfd50]ask2[rt48pufd50pdfd50]ask3[rt72pufd50pdfd50]ask4[rt96pufd50pdfd50]ask5[rt120pufd50pdfd50]ask6[rt144pufd50pdfd50]ask7[rt168pufd50pdfd50]ask8[rt192pufd50pdfd50]ask9[rt216pufd50pdfd50]ask10[rt240pufd50pdfd50]ask11[rt264pufd50pdfd50]ask12[rt288pufd50pdfd50]ask13[rt312pufd50pdfd50]ask14[rt336pufd50pdfd50]第四讲第50页/共97页练技能(P345)*第5题(1)用多只海龟画出下列图形答案2drawhttellall014each[rt24*whopufd50pdfd50]第四讲第51页/共97页练技能(P345)第5题(2)用多只海龟画出下列图形,并把每个五角星变成不同的颜色。参考答案1:DRAWFD70REPEAT5[FD20RT144]ASK1[STSETPC1RT45FD70REPEAT5[FD20RT144]ASK2[STSETPC2RT90FD70REPEAT5[FD20RT144]ASK3[STSETPC3RT135FD70REPEAT5[FD20RT144]ASK4[STSETPC4RT180FD70REPEAT5[FD20RT144]ASK5[STSETPC5RT225FD70REPEAT5[FD20RT144]ASK6[STSETPC6RT270FD70REPEAT5[FD20RT144]ASK7[STSETPC7RT315FD70REPEAT5[FD20RT144]第四讲第52页/共97页练技能(P345)第5题(2)用多只海龟画出下列图形,并把每个五角星变成不同的颜色。*参考答案2

DRAWTELLALL07STEACH[SETH45*WHOSETPCWHOFD80REPEAT5[FD30RT144]]each[命令列表]每只醒着的海龟都执行命令列表who;当前调出的海龟号。例如:tellall07who结果显示:result:[01234567]seth参数;设置海龟头的方向第四讲第53页/共97页过程的定义过程就是一系列有序命令的集合。

TO<过程名><过程体>END

过程的第一行称为过程头,以TO开头,后面是过程名,如:SJXWJX,过程头和过程名间要有空格中间部分是过程体,是我们用来绘图或解决问题而按照一定次序编排的命令序列,它是整个过程的核心。过程体可以是一行命令,也可以是多行命令,还可以是其他一些过程名。最后一行是过程尾,用END表示过程的结束。第五讲第54页/共97页过程定义范例定义一个画三角形的过程TOSJXREPEAT3[FD90RT120]END定义一个画五角星的过程TOWJXREPEAT5[FD70RT144]END定义过程后,输入过程名,回车,即可执行过程。第五讲第55页/共97页过程定义范例2定义一个画花的过程TOHUAREPEAT5[REPEAT3[FD50RT120]RT72]END

定义过程后,输入HUA,回车,即可执行过程,画出花的图形。第五讲第56页/共97页过程定义范例3定义画立体五角星的过程TOLWHTRT18REPEAT5[FD60RT144FD60RT54FD110BK110LT54+72]END

定义过程后,输入LW,回车,即可执行过程,画出五角星的图形。请大家分析一下上面画立体五角星的方法。第五讲第57页/共97页动脑筋(41)1、原始命令可以用作过程名吗?过程名可以重复吗?原始命令不可以用作过程名,例如:

todraw

回车后,电脑会显示:DRAWisalreadyinuse.Tryadifferentname.

tocs

回车后,电脑会显示:CSisalreadyinuse.Tryadifferentname.

过程名也不可以重复。即,定义过的过程,若用它的过程名,再次定义另一个过程,则先定义的过程被替换。2、在一个过程中,如果命令输入错了怎么办?可以输入EDIT过程名,回车后会调出过程编辑器。改正错误后,按F2退出编辑器即可自动保存修改。第五讲第58页/共97页过程的编辑和修改定义过程后,使用EDIT过程名可调出编辑器,在编辑器中修改后,按F2即可关闭并保存修改。若定义了多个过程,则可以用EDITALL回车后,可以编辑器中编辑所有的过程。例如:TOFREPEAT4[FD90RT90]END

输入F,回车后可画出正方形。此时,输入EDITF,回车则打开编辑器。在编辑器中添加SETPC12,过程变成:TOFSETPC12REPEAT4[FD90RT90]END然后按F2关闭编辑器再输入F,回车后会发现,画出的是红色的正方形了。说明修改成功。第五讲第59页/共97页过程的保存在命令窗口或在编辑器中编写过程后,单击“文件”菜单中的“保存”(快捷键是F6),或使用工具栏的SAVE按钮,可以把过程保存下来,保存时的文件名,可以与过程名不同。保存过程以后,可以使用“文件”菜单中的“打开”或“装载”命令,或使用工具栏上的LOAD按钮,打开保存的过程文件(*.LGO),再输入过程名,回车后即可执行过程。第五讲第60页/共97页过程范例旋转的风车

tofcrepeat6[fd70repeat4[fd30rt90]bk70rt60]wait10cleanrt10fcend第五讲第61页/共97页过程范例编写一个画地板图案的过程(自己加颜色)TODBHTREPEAT6[REPEAT6[FD30LT60]FD30RT60]END

想一想,上面的语句是如何画出地板图形的?你能给地板图形填上颜色吗?第五讲第62页/共97页巧定海龟位置设置坐标命令SETXY[:X:Y]将海龟移到坐标[:X:Y]处,海龟的方向不变。设置横坐标命令SETX:X将海龟移到X坐标指定位置,Y坐标和海龟方向不变。设置纵坐标命令SETY:Y将海龟移到Y坐标指定位置,X坐标和海龟方向不变。注意:上面的命令,在移动海龟时,会在前后位置间连上线。画点命令DOT[:X:Y]在指定的坐标位置画一个点,海龟当前位置不变。第六讲第63页/共97页小知识GETXY显示海龟当前的坐标。XCOR输出海龟横坐标位置。YCOR输出海龟Y坐标位置。DOTCOLOR[:X:Y]返回指定坐标点的颜色值。大家在电脑上试一下。第六讲第64页/共97页多角星和空心星(1)画非空心的多角星的公式REPEAT角数[FD步数RT360*K/角数]其中1<K<角数/2,且是与角数没有(1以外的)公约数的正整数。计算K的方法举例:五角星:5÷2=2.5所以,K的取值是2。六角星:6÷2=3K的取值范围是2,但2与角数6有公约数,所以,无法取值。七角星:7÷2=3.5K的取值是2、3。八角星:8÷2=4K的取值范围是2、3,但2与角数8有公约数,所以,K的取值是3。九角星:9÷2=4.5K的取值范围是2、3、4,但3与角数9有公约数。所以,K的取值为2、4。十角星:10÷2=5K的取值范围是2、3、4,但2、4与角数10有公约数,所以,K的取值是3。第六讲第65页/共97页多角星和空心星(2)画空心多角星的公式方法一:REPEAT角数[FD边长RT720/角数FD边长LT360/角数]方法二:REPEAT角数[FD边长RT第一次转角FD边长LT第一次转角-360/角数]例如:画边长为40、第一次转角为100的空心五角星,方法是:REPEAT5[FD40RT100FD40LT100-72]第六讲第66页/共97页带参数(变量)的过程示例TOZFX:AREPEAT4[FD:ART90]END输入ZFX20,回车。再输入ZFX30,回车。再输入ZFX40,回车……第六讲第67页/共97页带参数(变量)的过程示例二:TOYUAN:A:BSTAMPOVAL:A:BEND输入YUAN2060,回车。再输入YUAN8050,回车。再输入YUAN10080,回车……第六讲第68页/共97页想一想画正多边形的公式:REPEAT边数[FD边长RT360/边数]

你能定义一个带参数的过程来画任意边长和边数的正多边形吗?TODBX:N:BREPEAT:N[FD:BRT360/:N]END输入DBX690,回车后即可画出边长为90的六边形。输入DBX8100,回车后即可画出边长为100的八边形。第六讲第69页/共97页画任意多角星(请参见本PPT68页)TODJX:N:BC:KREPEAT:N[FD:BCRT360*:K/:N]END其中,:N表示多角星的角数。:BC表示多角星的线长。:K表示倍数。倍数K的确定方法,参见以前内容。例如画线长为70的八角星,输入DJX8703,再回车即可。第六讲第70页/共97页画任意空心多角星(请参见本PPT69页)TOKXX:N:BCREPEAT:N[FD:BCRT720/:NFD:BCLT360/:N]END其中,:N表示角数。:BC表示线长。例如画线长为50的空心九角星,输入KXX950,再回车即可。第六讲第71页/共97页画顶角可变的任意空心多角星(P54)

(请参见本PPT69页)TOKXX:N:BC:JREPEAT:N[FD:BCRT:JFD:BCLT:J-360/:N]END其中,:N表示角数。:BC表示线长。:J表示第一次转角。例如画线长为40、第一次转角为100的的空心五角星,输入KXX540100,再回车即可。第六讲第72页/共97页一个画小海星的过程TOHX:B:CFD:BRT:CHX:B:C+10HTEND第六讲第73页/共97页过程的递归调用

一个程序中可以包括多个过程,当一个过程中出现另一个过程的过程名时,就表示要调用那个过程,这种情形称之为过程调用。示例:

TOLX:AFD:ART120LX:A+10END

这里的参数:A表示第一次前进的步数。执行LX10,会发现出现对话框报错。这是由于循环调用,成了死循环,无法停止而造成内存缓冲区已满的错误。我们可以加一条控制过程停止的语句,避免死循环。如下页:第七讲第74页/共97页过程的递归调用TOS:AIF:A>300THENSTOPFD:ART120S:A+10ENDIF:A>300THENSTOP意思是,当参数值增加到300以上时,就停止过程的运行。第七讲第75页/共97页练技能(P59)

画正N边形的过程:TOZHDBX:N:A;N是边数,A是正多边形的边长REPEAT:N[FD:ART360/:N]END画正多边形螺旋线的过程:TODBLX:A:N

;N是边数,A是起始多边形的边长IF:A>150THENSTOPFD:ART360/:N

;画一条边,然后转到画下一条边的方向DBLX:A+3:N

;调用自身,边长增加步END

分别输入DBLX303、DBLX304、DBLX305再回车试试。第七讲第76页/共97页练技能(p60)TOZFXREPEAT4[FD40RT90]ENDTOLXREPEAT2[FD40RT60FD40RT120]ENDTOSJREPEAT3[FD40RT120]ENDTOXGCSPUFD80RT90BK60PDZFXRT90LXLT90FD40RT30LXRT60FD40RT30SJFD40RT180SJRT60ZFXFD40LXFD40RT60FD9LT120SJEND执行XG,可画出小狗。

注意:若在编辑器或命令窗口中同时定义了多个过程,保存过程文件时,会将定义的多个过程同时保存到一个文件中。装载保存的过程文件后,各过程会全部被调入内存中。大家可以把本页定义的各过程一起复制到编辑器中,再保存一下,然后装载到LOGO中试试。若各个过程要单独保存,则要在编辑器中一个一个的分别定义,再一个一个地分别保存下来。装载时,要一个一个地分别装载到内存中,才可以相互调用。第七讲第77页/共97页练技能(参考P61)tohuarepeat4[repeat3[fd30rt120]rt90]endtohuahuansetpc12repeat8[huart45pufd70pd]end定义过程后,输入huahuan,再回车,即可画出一个花环。第七讲第78页/共97页用递归的方法画三角形圆环setpc2repeat12[pufd40rt30pdrepeat3[fd40rt120]

lt30pubk40rt30]

上面的语句是我们以前画右图时使用的。现在,若用递归调用的方法,应该怎样写呢?tosjsetpc2repeat3[fd40rt120]endtohuanrepeat12[pufd40rt30pdsjlt30pubk40rt30]end第七讲第79页/共97页小知识1、调用磁盘上保存的过程,除了用“文件”菜单中的“装载”外,还有以下方法:(1)按F5键(2)单击工具栏上的Load按钮2、停止按钮在LOGO系统中有一个“交通岗”,当你进行递归调用时,如果想停止、暂停或继续运行该过程,可以单击工具栏中的三个相应的“红绿灯”按钮。(LOGO的“调试”菜单中也有相应的命令)例如:这是以前我们做过的风车旋转的一个范例:tofcrepeat6[fd70repeat4[fd30rt90]bk70rt60]wait10cleanrt10fcend

大家运行一下,并使用工具栏中的“红绿灯”按钮控制一下试试。第七讲第80页/共97页条件判断语句——IF语句

还记得以前我们画过的风车吧?那个旋转的风车,运行时,需要单击停止按钮停止它的运行。原因是,在那个过程中,使用了循环调用,产生了死循环。下面的范例,使用了IF语句,避免了死循环。TOFCREPEAT6[FD70REPEAT4[FD30RT90]BK70RT60]WAIT10CLEANRT10MAKE"N:N+1IF:N=60THENSTOPELSEFCEND定义这个过程后,在命令窗口输入make“n0,回车后,再输入fc,再回车。会发现风车旋转一会儿就自动停止了。因为,每旋转一个新角度后,N的值都会加1,旋转60次后,N的值变为60时,过程就会自动停止了。此时,若在命令窗口内输入pr:n,回车后会看到此时变量N的值为60.第七讲第81页/共97页条件判断语句——IF语句下面我们讲解一下IF语句IF语句有两种格式:格式1:IF条件THEN[命令]

(THEN可以省略不写)当符合条件时,执行THEN后面的命令,否则就不执行THEN后面的命令,直接执行其它命令。注意:命令可以是一个或多个命令,命令间以空格分开,最后以回车结束。不属于THEN中的命令,一定要写到下一行。其中的“条件”,可以是等式或者不等式及表达式,如:S=40、R>35、R≤10、(OR:N<8,:N>20)等。请大家自行阅读一下教材P63页的两个范例,对IF语句的这种格式加以理解。第八讲第82页/共97页条件判断语句——IF语句格式2:IF条件THEN[命令1]ELSE[命令2]当条件表达式符合条件时,执行THEN后面的命令1,跳过命令2,再接着执行其它命令;否则,跳过命令1,执行ELSE后面的命令2,再接着执行其它命令。例如画风车的范例:TOFCREPEAT6[FD70REPEAT4[FD30RT90]BK70RT60]WAIT10CLEANRT10MAKE"N:N+1IF:N=60THENSTOPELSEFCEND

注意:在递归调用时,若过程自己调用自己,一定要设计至少一个出口,来结束过程,否则会造成死循环,过程不停地运行,甚至导致死机等来重后果。语句中的STOP,是停止过程运行的命令。它只能使用于过程当中。第八讲第83页/共97页IF语句编程范例(P64)

根据提示输入一个1~360的数,表示一个角度,由电脑判断这个角是不是锐角,在命令窗口输出判断结果,并在绘图窗口中画出这个角。tojd:ncsrt90fd100bk100;画出一条边lt:n;左转输入的角度fd100ht;画出另一条边后隐藏海龟endtopdjdpr[请输入角度:];让屏幕显示"请输入角度:"make"rread;创建一个变量r,并等待输入jd:r;用输入的角度值r画角,画出一个r度的角if:r<90thenpr[您输入的角度是锐角]elsepr[您输入的角度不是锐角]end第八讲第84页/共97页练技能(P65)

试调用下面的两个过程,编写一个名为XZ的过程,完成以下功能:命令窗口显示提示:“请选择:1同心圆2两个正方形”,如果输入1,调用YUAN画出同心圆;如果输入2,调用ZFX画出两个正方形;如果输入其他数字,过程结束,无任何提示。TOYUANSETPC14(STAMPOVAL6060"TRUE)SETPC12(STAMPOVAL3030"TRUE)HTENDTOZFXSETPC13(STAMPRECT7878"TRUE)SETPC10(STAMPRECT5050"TRUE)HTENDTOXZDRAWPR[请选择:1同心圆2两个正方形]make"hreadif:h=1thenyuanif:h=2thenzfxend第八讲第85页/共97页循环语句FOR循环控制命令FOR语句有两种格式格式1:FOR“变量初值终值[命令串]功能:变量的值由初值开始,每次加1并将后面的命令串执行一遍,直到超过终值为止。例如:

DRAWSETPC12SETW4FOR"I36[REPEAT3[FD:I*20RT120]]第九讲第86页/共97页循环语句FOR格式2:(FOR“变量初值终值[命令串]步长)功能:变量的值由初值开始,每次增长一个步长,并将后面的命令串执行一遍,直到超过终值为止。例如:(FOR"I17[PR:I]2)输出结果为:1357(FOR"I17[PR:I]1)输出结果为1234567(FOR"I101[PR:I]-3)输出结果为10741(FOR"I101[PR:I]-4)输出结果为1062注意:引号与变量名之间不能有空格。格式2中,步长若为1时,可以省略步长值。因此,格式1与格式2实际上是一样的,相当于格式2省略了步长。第九讲第87页/共97页FOR语句应用范例(P69)用FOR语句累乘求积编写过程求1×2×3×4×…×30和值。思路分析:从1开始累乘求积时,要用一个变量来储存所求和积,并将该变量的初值设为1。

FOR循环中变量每次加1,将其与存积变量S相乘,作为变量S的新值继续保存。这样,不断循环,使S的值最终为1到30的积。过程如下:toshmake"s1;创建一个变量S,并赋值为1for"i130[make"s:s*:i];将变量值1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论