你知道怎么编程比大小吗?

有编程爱好者求问:“编写过程,比较a、b、c的大小,并输出最大的那一个。”这里林老师发现,其实这些问题在林老师的教程中都有呀!至少是有类似的例程。但是求问者表示“书太多了,看不过来。”如果接手到布置的作业(这些作业并非林老师布置),拿到什么题就做什么题,不会做大体是注定之中的事了。这里面有一个学习方法的问题:学习编程必须循序渐进、由浅入深、逐步积累。初学编程的人刚开始觉得到处都是障碍是普遍的正常现象,没有人可以幸免。你看从小学一年级开始学数学,到六年级了还在学习“算术”。一门LOGO编程里面所包含的知识量远比整个小学数学还多,如果要求上有限的几次课,就能编写出随意给你的题目,这显然是不现实的。比较合理的过程是:从林老师编写的《MSWLogo讲义Plus》(或是其它任意的系统教程)第一章看起,看明白了一节一节课往后看,书中提到什么操作都按要求做一遍(实际上就是上机操作)。书中的例举程序一律上机录入一遍、调试成功,把程序保存到U盘中。最好每道题自己独立编写一遍。如果能这样做,看到第九章,有了一定量的基础知识的积累,那么LOGO编程大体上是学会了。人学任何操作都要实践积累,你看小孩子学拿筷子花了多少时间才会自己吃饭。让孩子马上会编程是不现实的事。假如认定系统的教程课本没时间看,到最终都不能学会编程的可能性很大。类似“比大小”的编程搞不定,知识积累不够是根本原因。林老师发现,凡是学习编程成了器的孩子,都是下了无数苦功夫的。捷径是没有的。凡奋起努力的,将来必能成才;打退堂鼓知难而退的,将来与编程无干系是大概率事件。林老师的观点如有不妥,欢迎指教。
在ABC三个数中找出“最大的那个数”有多种编程方式。下面举两个例子。
方法一:
to
zuida :a :b :c ;找出 abc
中最大的数
if and :a>:b
:a>:c[pr :a]
if and :b>:a
:b>:c[pr :b]
if and :c>:a
:c>:b[pr :c]
end
zuida 12 7
23
23
zuida
0.65 0.065 0.0625
0.65
方法二:
这个编程方式的功能更强大,数据输入使用“表”,不论数据多少个,都能找出其中最大的那个数。
TO ZD3 :A
;用重新组装表数据:A的方式找最大
IF EMPTY? BF :A[OP
:A]
IF (FIRST :A)<(LAST :A)[MAKE "A SE BF :A
FIRST :A]
;若发现字的末元素大于首元素,则用SE命令将较小的元素重新组装到表的后面
OP ZD3 BL
:A ;递归时实际上BL命令已将较小的尾元素剪切掉
END
PR ZD3 [654 762 13 890 56
11]
890
SHOW ZD3 [654 762 13 890 56
11]
;SHOW输出命令保留了输出项的表结构
[890]
编程的举例仅供参考。
下面是一个二年级的小学生学习LOGO编程的事,现在他都已经上大学了。他的成长经历,也许对许多孩子和家长有借鉴的价值。
优秀才俊的崛起 或在一念之间
https://blog.sina.com.cn/s/blog_5fd454d00102z35r.html
成才成器 谁人不想
谁人不愿
https://blog.sina.com.cn/s/blog_5fd454d00102z35j.html
知识储备量是逐渐积累起来的
最好是经过系统的循序渐进的编程学习
加载中,请稍候......