这是个动态的时钟,不论是时针分针秒针还是下面的数字时间,全部都是实时动态的。
这个程序有以下三个特点:
第一:neal读者看来已经正确地掌握了“结构化编程”的思想。
程序的结构非常清晰,主程序调用子程序,使用非常得当。
第二:这是目前惟一见到的使用“多海
龟作图”的电子钟。
参与作图的共有64只海 龟,各司其职,程序编写得十分巧妙。
第三:程序中计算三根时针位置的公式完全正确。
众所周知,时钟三根针的位置是相关联的。一位“1.75年级”的小程序员能够正确找到计算时针位置的通用公式,实属不易。
下面是这个时钟的程序。有兴趣的读者可以拷贝到自己的计算机中,在LOGO语言系统中运行起来,然后再公正地评价一下,这位“1.75年级”的读者编写的程序可以给他打多少分。是100分,还是90分?
TO TIMEA ;作者neal
运行于PCLogo4.0
MAKE "COLOR RANDOM
14
B :COLOR
END
TO TIMEB
SETPC 12
TT ITEM 1 TIME PU SETX XCOR+20 PD
TT[时] PU SETX XCOR+20 PD
TT ITEM 2 TIME PU SETX XCOR+20 PD
TT[分] PU SETX XCOR+20 PD
TT ITEM 3 TIME PU SETX XCOR+20 PD
TT[秒]
END
TO D
SETPC 13
TT ITEM 3 DATE PU SETX XCOR+40 PD
TT[年] PU SETX XCOR+20 PD
TT ITEM 2 DATE PU SETX XCOR+20 PD
TT[月] PU SETX XCOR+20 PD
TT ITEM 1 DATE PU SETX XCOR+20 PD
TT[日]
END
TO B :COLOR
DRAW FS
IF :COLOR=0 THEN MAKE "COLOR
14
SETTURTLES 64
TELL 0 HT PU SETXY [-129 -171] PD
SETW 10 SETPC :COLOR
STAMPRECT 260
288
TELLALL 1 60
EACH [HT SETH WHO*6 PU FD 115 PD
SETPC 9 TT[.]]
TELL [5 10 15 20 25 30 35 40 45 50
55 60]
EACH [HT PU HOME SETH WHO*6 FD 100
PD SETPC 12 TT WHO/5]
MAKE "A ITEM 1
TIME
MAKE "B ITEM 2
TIME
MAKE "C ITEM 3
TIME
TELL 61 HT SETPC 12 SETH
:A*30+:B/2+:C/120 SETW 6 FD 65
TELL 62 HT SETPC 9 SETH :B*6+:C/10
SETW 3 FD 75
TELL 63 HT SETPC 10 SETH :C*6 SETW
1 FD 90
TELL 0 PU FD 35 RT 90 FD 73 LT 90
PD TIMEB
LT 90 PU FD 110 RT 90 BK 14 PD
D
WAIT 100
B :COLOR-1
END
当时林老师对neal和读者们写下了这样几句话。
林老师对其他所有读者说的话:
如果你也是小学生,在没有看到这个程序之前,你想到过学编程并动手编写类似的程序了吗?
如果你是老师,在你周围发现了像neal这样爱学习的孩子,会支持他们玩这些与学校课堂中任何一门功课都无关的编程游戏吗?
如果你是家长,你能够容忍孩子在课外花大量的时间研究编写程序吗?据了解,“1.75年级”的neal读者本来是花了大量的时间学习弹钢琴的。
林老师对neal说的话:
你的这个程序编写得不错,应该赞扬你所取得的成功。
你听说过“山外有山、天外有天”这样的话吗?你现在可能有8岁吧,但是据林老师所知,还有一些和你相似年龄的小朋友编程能力比你还更胜一筹。
如果你觉得不如这些编程能力更强的小朋友,你不必气馁。你也不一定就需要成为像他们那样的人。但是你要继续努力。
你的博客上刊载的那张照片,一脸的童真像,这就对了。你要继续像其他的孩子那样天真、顽皮、好奇,保持一个正常的孩子所具有的全部特征。你还要花更多的时间像其他的孩子那样做游戏和玩耍。你的思维状态可以比同龄人超前,但是心理状态最好保持和同龄人相似的水平。
这里还要专门说说“一念之间”这个问题。若干个机遇际会,使得陈雨昕同学走上了学编程的道路。neal之所以取得成功,和他长期培养的阅读能力有着极大的关系:学习30课的LOGO博客不是靠老师来教,完全是靠阅读博客。他提前自学了小学、中学的数学课程,靠的是阅读课本。现在有不少人不重视培养阅读习惯,而是依赖各种“课件”、“视频”,不能耐下心来自己仔细读书。阅读能力是一个人的成长的重要能力。
LOGO编程画出来的动画: