1 / 21

Logo 程序设计

Logo 程序设计. ( 授课讲稿 ) 吴剑辉. 第十讲 多龟操作. 到现在为止,我们一直是只使用一只海龟作图。实际上, Logo 系统预定义了 16 只海龟,依次编号为 0~15 。 Logo 启动时 , 直接听从指挥的海龟只是 0 号,我们把它称为当前活动的海龟。其他海龟( 1~15 号)不能直接接受命令,叫做非活动的海龟。 如何使多只海龟参与操作?一种是指名方法,使非活动的海龟也能执行命令;另一种是激活方法,就是将非活动的海龟变成当前活动的海龟。. 一、指名海龟执行命令. 二、激活海龟参与活动. 三、多龟操作应用选编. 一、指名海龟执行命令.

Télécharger la présentation

Logo 程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logo程序设计 (授课讲稿) 吴剑辉

  2. 第十讲 多龟操作 到现在为止,我们一直是只使用一只海龟作图。实际上,Logo系统预定义了16只海龟,依次编号为0~15。Logo启动时,直接听从指挥的海龟只是0号,我们把它称为当前活动的海龟。其他海龟(1~15号)不能直接接受命令,叫做非活动的海龟。 如何使多只海龟参与操作?一种是指名方法,使非活动的海龟也能执行命令;另一种是激活方法,就是将非活动的海龟变成当前活动的海龟。 一、指名海龟执行命令 二、激活海龟参与活动 三、多龟操作应用选编

  3. 一、指名海龟执行命令 1 3 2 指名执行是通过ASK命令指使非活动海龟执行操作。 指名海龟执行命令(ASK) 【格式1】:ASK 龟号 [命令组] 【格式2】:ASK [龟号列表] [命令组] 【功 能】:使指定代号的海龟执行“命令组”中的命令。 例题1:指名执行。 (如图1所示) TO DHGZT1 DRAW ASK 1[ST PU SETX -200 PD REPEAT 3[FD 80 RT 120]] ASK 2[ST PU SETX 0 PD REPEAT 4[FD 80 RT 90]] ASK 3[ST PU SETX 200 PD REPEAT 5[FD 80 RT 144]] END 图1-?DHGZT1↙

  4. 5 0 10 15 例题2:指名执行。(如图2所示) TO DHGZT2 ASK 5[ST SETPC 1 PU SETXY[-30 30]] ASK 10[ST SETPC 2 PU SETXY[-30 -30]] ASK 15[ST SETPC 13 PU SETXY[30 -30]] ASK [5 10 15][PD SXJX 40 40] SETPC 12 PU SETXY[30 30] PD SXJX 40 40 END 笔色为蓝的5号海龟定位 笔色为绿的10号海龟定位 笔色为浅紫的15号海龟定位 5、10 、15 号海龟画正方形 笔色为浅红的0号海龟画正方形 TO SXJX :X :Y (STAMPRECT :X :Y "TRUE) END 图2-?DHGZT2↙ 【指导说明】: 海龟代号可以是0~15。在指定多只海龟时,海龟代号要用方括号括起来;如果只有一只海龟代号,就可不用;没有指定海龟代号的话,在过程中或执行时视为 0 号海龟。命令组中可以是一条命令,或一组命令,还可以调用其他过程。

  5. 二、激活海龟参与活动 一只或多只海龟一旦被激活,即为当前活动的海龟。这样其后的命令都是针对激活的还龟而言,直到再次激活其他海龟为止。

  6. 例题3:激活执行。(如图3所示) TO JHHG1 DRAW HT ASK 1[SETPC 2 PU SETX -50] ASK 3[SETPC 14 PU SETX 0] ASK 5[SETPC 12 PU SETX 50] TELL [1 3 5] PD (STAMPRECT 40 80 "TRUE) END 图3-?JHHG1↙ 例题4:激活执行。(如图4所示) TO JHHG2 DRAW ASK 8[SETPC 7] ASK 9[SETPC 8 RT 45] ASK 10[SETPC 9 RT 90] ASK 11[SETPC 10 RT 135] ASK 12[SETPC 11 RT 180] ASK 13[SETPC 12 RT 225] ASK 14[SETPC 13 RT 270] ASK 15[SETPC 14 RT 315] TELLALL 8 15 SETW 2 FD 80 REPEAT 4[FD 40 RT 90] END 图4-?JHHG2↙

  7. 例题5:测试激活的海龟。 ? DRAW ? WHO 结果: 0 ? ASK 1[ST FD 100] ? WHO 结果: 0 ? TELL [2 4 6] ? WHO 结果: [2 4 6] ? 【指导说明】: ⑴、执行DRAW命令,系统自动激活0号海龟,即0号海龟是当前活动海龟。 ⑵、ASK命令只是使非活动的海龟执行命令,它不能改变海龟的活动属性。 ⑶、只有执行激活海龟命令TELL,才使一只或几只海龟成为当前活动的海龟。 例题6:海龟分别执行画图(与例题4相同)。 TO FBZT DRAW TELLALL 8 15 EACH [SETPC WHO-1 RT WHO*45] SETW 2 FD 80 REPEAT 4[FD 40 RT 90] END 图4-?FBZT↙

  8. 例题7:用多海龟操作命令画定点旋转的风车图(如图5)。例题7:用多海龟操作命令画定点旋转的风车图(如图5)。 ⑴、编写风车一叶旋转过程:(如图5-1)。 TO FYVDA REPEAT 2[FD 60 RT 90 FD 20 RT 90] WAIT 5 CLEAN RT 4 FYVDA END 图5-1 ?FYVDA↙ ⑵、用0~3号海龟组成四片风车叶,使之转动(如图5-2)。 TO FYVD DRAW HT TELLALL 0 3 EACH [RT WHO*90] FYVDA END 【指导说明】: 使用EACH命令能把有规律的多海龟操作表达得更紧凑、简洁。 图5-2 ?FYVD↙

  9. 三、多龟操作应用选编 用多海龟作图的方式,我们一定能画出其他更有趣的图形来。使得我们编写Logo 程序的思路更开拓、方法更灵巧。 1、画出如图6所示的图形。 TO DGZT1 :A DRAW HT TELLALL 0 5 EACH[PU SETH (WHO*60+30) BK :A PD] LT 60 FD :A*1.5 REPEAT 3[FD :A RT 120] END 图6:?DGZT1 40↙ 【试一试,画一画】:用多龟作图方式画出下列图形。 ?DGZTA 50↙ ?DGZTC 30↙ ?DGZTB 50↙ ?DGZTD 80↙ ?DGZTE ↙

  10. 2、用多海龟同时画出五个五角星,各星颜色随机变化(如图7所示)。 TO WJX5 :L DRAW HT TELLALL 1 5 EACH [PU SETX WHO*100-300 SETH 18 PD SETPC RANDOM 14] SETW 2 REPEAT 5[FD :L RT 144 FD :L LT 72] END 图7:?WJX5 30↙ 3、用多海龟同时画出不同大小的五角星(如图8)。 TO NWJX :N DRAW HT TELLALL 1 :N EACH[PU SETX WHO*80-300 PD WJX WHO*3+8] END TO WJX :L SETPC RANDOM 14 SETW 2 RT 18 REPEAT 5[FD :L RT 144 FD :L LT 72] END 图8:?NWJX 5↙

  11. 4、绕一圆圈外转动(如图9所示)。 TO RYV DRAW HT SETW 2 SETPC 2 STAMPOVAL 50 50 SETPC 12 STAMPOVAL 47 47 SETPC 2 STAMPOVAL 44 44 RYV1 END TO RYV1 TELLALL 6 14 EACH [RT WHO*(360/9) SETPC 1*WHO] RYV2 8 END TO RYV2 :N IF :N>14 MAKE "N 8 PU FD 75 PD (STAMPOVAL 25 25 "TRUE) PU BK 75 PD RT 360/9 WAIT 10 RYV2 :N END 图9:?RYV↙

  12. 5、用多龟操作分别实现下面各题的要求,请设计程序 。 ⑴、半径为15的蓝、红、绿、黄 四个小球在500步之间左右同时反复跑动。(图10-1) ⑵、四小球边跑动边放大,半径由5步依次增0.5直到30步为止后,原地缩小为5步,再继续往回跑动。 TO LHLHA DRAW HT ASK 1[SETPC 1] ASK 2[SETPC 12] ASK 3[SETPC 2] ASK 4[SETPC 14] TELLALL 1 4 EACH[PU SETXY SE -250 \ (150-WHO*60) PD] LHAA 5 END TO LHAA :N IF XCOR>250 MAKE "N -5 IF XCOR<-250 MAKE "N 5 PD (STAMPOVAL 15 15 "TRUE) WAIT 20 CLEAN PU SETX XCOR+:N LT 90 LHAA :N END ? LHLHA↙ 当执行 LHLHA↙ 实现第⑴题的要求

  13. 跑动 ? LHLHB↙ TO LHA :R :N IF :R>30 LHB :R MAKE "R 5 \ MAKE "N -5 IF XCOR=-130 MAKE "N 5 PD (STAMPOVAL :R :R "TRUE) WAIT 20 CLEAN PU SETX XCOR+:N LHA :R+0.5 :N END TO LHLHB DRAW HT ASK 1[SETPC 1] ASK 2[SETPC 12] ASK 3[SETPC 2] ASK 4[SETPC 14] TELLALL 1 4 EACH[PU SETXY SE -130 \ (180-WHO*70) PD] LHA 5 5 END TO LHB :R IF :R<5 STOP PD (STAMPOVAL :R :R "TRUE) WAIT 20 CLEAN LHB :R-0.5 END 当执行 LHLHB↙ 实现第⑵题的要求

  14. A 6、使长方形或三角形分别绕中心点A和B同时旋转(如图11所示)。 ⑴、使长方形绕中心点A旋转(如图11-1)。 TO VF DRAW HT SETPC 9 PXSBX 120 70 90 WAIT 30 ZU 90 END 图11-1 ? VF↙ TO ZU :N MAKE "N :N+1 PXSBX 120 70 :N WAIT 1 CLEAN ZU :N+1 END TO PXSBX :B1 :B2 :J REPEAT 2[FD :B1 RT :J FD :B2 \ RT 180-:J] END

  15. B ⑵、使三角形绕中心点B旋转(如图11-2)。 TO VS DRAW HT SETPC 12 SJ 120 70 90 WAIT 30 ZS 90 END 图11-2 ? VS↙ TO ZS :N MAKE "N :N+1 SJ 120 70 :N WAIT 1 CLEAN ZS :N+1 END TO SJ :B1 :B2 :N FD :B1 MAKE "X XCOR MAKE "Y YCOR BK :B1 RT :N FD :B2 SETXY SE :X :Y PU LT :N BK :B1 PD END

  16. B A ⑶、使长方形或三角形分别绕中心点A和B同时旋转(如图11-3)。 TO TTV DRAW HT TTV2 WAIT 100 TTV1 90 END 图11-3 ? TTV↙ TO TTV1 :N ASK 1 [ZUV :N] ASK 2 [ZSV :N] REPEAT 3000[ ] CLEAN TTV1 :N+1 END TO TTV2 ASK 1 [PU SETXY[-150 0]PD SETPC 9 \ PXSBX 120 70 90] ASK 2 [PU SETXY[150 0]PD SETPC 12 \ ZSV 90] END

  17. 7、大齿轮带动若干个小齿轮同时转动(如图12所示)。 执行过程: TO DXLP DRAW HT DXLPA 0 END 主过程: TO DXLPA :N MAKE "M 0-:N ASK 0[SETPC 2 DLP :N] XLP4 :M REPEAT 30000[ ] CLEAN DXLPA :N+10 END 图12 ? DXLP↙ 空心椭圆: TO KXTY :X :Y STAMPOVAL :X :Y END

  18. 大齿轮过程: TO DLP :N SETW 2 KXTY 60 60 SETW 1 KXTY 50 50 REPEAT 6[FD 48 BK 48 RT 360/6] REPEAT 12[PU FD 57 PD SXTY 4 4 PU BK 57 RT 360/12 PD] SETH :N END 图12-1 ? DLP 0↙ 图12-3 ? XLP4 0↙ 四个小齿轮过程: TO XLP4 :N ASK 1[PU SETXY[90 0]PD] ASK 2[PU SETXY[0 -90]PD] ASK 3[PU SETXY[-90 0]PD] ASK 4[PU SETXY[0 90]PD] TELLALL 1 4 SETPC 12 XLP :N END 小齿轮过程: TO XLP :N SETW 2 KXTY 30 30 SETW 1 KXTY 25 25 REPEAT 6[FD 24 BK 24 RT 360/6] REPEAT 12[PU FD 27 PD SXTY 3 3 \ PU BK 27 RT 360/12] SETH :N END 图12-2 ? XLP 0↙

  19. 想一想,做一做 (要求用多龟作图) 由四片直角梯形组成的旋转风车 彩色圆圈圈 动态光芒四射 雪花图案 ? XXUS↙ ? BFY↙ ? VJFC↙ ? DGHH↙ 扇子展示图(颜色随机) 蓝红海龟在800步的跑道上赛跑 ? SHAZI 5↙ ? LVGP↙ 5组5朵梅花组成的图形 ? GHLQ 1↙ ? GHLQ 3↙ ? GHLQ 7↙ 闪闪红星 ? MEIHUA↙ N只龟画方阵圆 ? UJWX↙

More Related