很多編程語言都有對應的函數(shù)庫,里面存儲著很多開發(fā)人員已經編寫好的函數(shù),只要根據需要調用一下就可以了。比如Python的優(yōu)勢之一就是豐富的函數(shù)庫,想要求最大值直接就調用Max,求最小值直接調用Min,用Sum來求和。但是Scratch這些功能強大的函數(shù)庫,想要在Scratch中計算最大值、最小值和平均值怎么辦呢?
這次我們所需的變量比較多,用到了六個變量。平均值、求和、項、項值、最大值、最小值。其中項和項值,用于循環(huán)判斷。為了代碼清晰,設置了兩個積木模塊,分別為“求最值”,“求和與平均值”(如圖1)。
一般遇到需要處理數(shù)據較多時,會使用列表來保存數(shù)據??梢允謩虞斎霐?shù)據,也可以將隨機數(shù)寫入列表。這里直接在score列表中輸入十個數(shù)字,用來運算(如圖2)。
如何求列表數(shù)據的最大值和最小值呢?我們將最大值和最小值都設為列表中的第一項,然后將列表中的每一項依次和最大值、最小值比較,如果比最大值大或比最小值小,就進行位置的交換,一直比到列表的最后一位,就能得出最大值和最小值,這部分在以前的排序中已經用過類似算法。
在比較的過程中,關鍵的兩個變量是“項”和“項值”。
項:相當于列表前面的序號;
項值:則是我們列表中項對應的值。比如列表中“項”2對應的“項值”就是75,“項”3對應的“項值”就是88。
“項”在每次循環(huán)的過程中都要加一,一直重復執(zhí)行到列表的總項目次數(shù)?!绊椫怠痹O置成每次從列表中提取出的對應值(如圖3)。
求和以及平均值的方法比求最值更簡單,將列表中的每一項依次累加起來就可以求和,把求和的結果除以列表的項目數(shù)就可以求平均值了?!扒蠛汀焙汀捌骄怠钡淖兞烤陀糜诖娣畔鄳Y果(如圖4)。
總結,求最值和平均值并不簡單,通過本例可以增加對變量的理解,以及對循環(huán)過程的掌握。請思考一下代碼的運算過程,如果數(shù)據量很大時如何提高效率?
你看其他語言簡單的一句代碼可以解決的事情在Scratch中卻如此復雜,函數(shù)庫的好處你能有所體會嗎?不過由于Scratch面向中小學生,主要需求是通俗易懂便于學習基本編程,因此沒有豐富的函數(shù)庫并不是什么弱點。