很多编程语言都有对应的函数库,里面存储着很多开发人员已经编写好的函数,只要根据需要调用一下就可以了。比如Python的优势之一就是丰富的函数库,想要求最大值直接就调用Max,求最小值直接调用Min,用Sum来求和。但是Scratch这些功能强大的函数库,想要在Scratch中计算最大值、最小值和平均值怎么办呢?
这次我们所需的变量比较多,用到了六个变量。平均值、求和、项、项值、最大值、最小值。其中项和项值,用于循环判断。为了代码清晰,设置了两个积木模块,分别为“求最值”,“求和与平均值”(如图1)。
一般遇到需要处理数据较多时,会使用列表来保存数据。可以手动输入数据,也可以将随机数写入列表。这里直接在score列表中输入十个数字,用来运算(如图2)。
如何求列表数据的最大值和最小值呢?我们将最大值和最小值都设为列表中的第一项,然后将列表中的每一项依次和最大值、最小值比较,如果比最大值大或比最小值小,就进行位置的交换,一直比到列表的最后一位,就能得出最大值和最小值,这部分在以前的排序中已经用过类似算法。
在比较的过程中,关键的两个变量是“项”和“项值”。
项:相当于列表前面的序号;
项值:则是我们列表中项对应的值。比如列表中“项”2对应的“项值”就是75,“项”3对应的“项值”就是88。
“项”在每次循环的过程中都要加一,一直重复执行到列表的总项目次数。“项值”设置成每次从列表中提取出的对应值(如图3)。
求和以及平均值的方法比求最值更简单,将列表中的每一项依次累加起来就可以求和,把求和的结果除以列表的项目数就可以求平均值了。“求和”和“平均值”的变量就用于存放相应结果(如图4)。
总结,求最值和平均值并不简单,通过本例可以增加对变量的理解,以及对循环过程的掌握。请思考一下代码的运算过程,如果数据量很大时如何提高效率?
你看其他語言简单的一句代码可以解决的事情在Scratch中却如此复杂,函数库的好处你能有所体会吗?不过由于Scratch面向中小学生,主要需求是通俗易懂便于学习基本编程,因此没有丰富的函数库并不是什么弱点。