資訊內容
第11課 二百club——計時器和散點圖
第11課 二百club——計時器和散點圖
任務導航
在數字科學家的小圈子里面,有一個叫200俱樂部(200club)的精英團體,加入的標準是30秒內可以按200次空格。之所以成立這個俱樂部,是因為許多電腦游戲中涉及到每分鐘電子次數這個概念,一分鐘內按鍵的次數越多,說明按鍵速度越快,對攻時就越占優勢。
本課,我們首先設計一個程序來測定一分鐘內按空格的次數,并使用Excel對數據進行分析,觀察按鍵時間隨次數變化的規律,如圖11.1所示,然后再編寫一個程序看看誰可以加入200俱樂部。

圖11.1 測定按鍵速度
Follow Me
1. 制作簡單的測定按鍵速度的程序
(1)確定按鍵速度軟件的目標
想一想
請同學們思考并填寫測定按鍵速度軟件的初級目標、中級目標和高級目標(見表11.1)。同時想一想,完成每個目標需要建立那些變量,核心算法又是怎樣的?
表11.1 測定按鍵速度軟件的目標
中級目標 |
|
初級目標 |
|
高級目標 |
|
(2)設計界面及編寫代碼
第1步:建立“按鍵次數”變量。
第2步:在偵測菜單中勾選計時器

,可以在舞臺上顯示一個秒表,使用腳本塊

,可以使秒表歸零。
第3步:編寫代碼。完成這個研究,最簡單的代碼如圖11.2所示。

圖11.2按鍵速度的研究
第4步:測試一分鐘內的按鍵次數。單擊綠旗,計時器歸零的同時,變量“按鍵次數”也歸零,此時開始按空格鍵。當舞臺上的

到達60的時候停止按鍵,此時變量“按鍵次數”的數值,就是測試者60秒內按下空格鍵的次數,用60秒除以按鍵次數就是按鍵速度。
想一想
- 這個程序可以做那些改進?你打算優先做那個改進,為什么?
- 與你的同學交流一下改進的意見,分析一下大家的改進意見,思考一下一般都從幾個角度思考如何改進。
- 多次實驗,看看你的按鍵速度是否是一個基本不變的數。
- 按鍵速度可能受那些因素的影響呢?
DIY
按鍵速度指的是1分鐘內能夠完成的“按下-彈起”這個動作的次數。而圖11.1所示的程序如果一直按著空格鍵不放,按鍵次數會一直不斷增加。如果不解決這個問題,就難以保證測量的準確性,你能想個辦法,攻克這個難關么?
2. 改進程序
(1)增加鏈表以提高程序的精確度
上述程序中,僅靠眼睛來判斷計時器達到60秒時停止按鍵是不夠準確的。我們可以通過新建一個鏈表“時間”,記錄每次按下空格鍵的時間,這樣可以更加精確地統計1分鐘按鍵的次數。如圖11.3中,鏈表的最后兩次按下空格鍵的時間已經超過了60秒,就應該刪掉。測試者1分鐘按鍵的次數應為335次。

圖11.3 用鏈表提高按鍵計數計量的精確度
參照圖11.4中所示的代碼,編寫腳本。

圖11.4 用鏈表來記錄實驗過程
(2)使用Excel分析數據
在鏈表上右擊,選擇“輸出”,將擴展名由txt修改為xls,打開導出的Excel文件,將鏈表中的數據導入到Excel中。在Excel中,選中“時間/秒”這一列的所有數據,插入散點圖,可以看到時間隨次數的變化可以近似地看作是一條過原點的直線,如圖11.5所示。如何理解這條直線呢?通過這條直線你能夠近似地估計出這位同學要按100次空格需要多長時間?200次空格需要多長時間,根據實驗數據請你先判斷一下,你能夠加入200次俱樂部么?
![]() ![]() |
圖11.5 用Excel繪制時間隨次數變化的散點圖 |
DIY
設計一個判斷人是否加入了200次俱樂部的程序,將圖11.4所示的代碼做如圖11.6所示的改進,就可以制作一個簡單的研究工具判斷誰能夠加入200俱樂部,一般五年級的學生中100個當中只有三五個學生可以加入,快快挑戰一下吧。

圖11.6 200club檢測程序
想一想
- 有些同學分析了1分鐘的數據發現,前30秒完成了178次按鍵,后30秒只完成了157次按鍵,他們猜測這樣的數據是由于實驗者疲勞造成的,請你設計一個實驗計劃,找幾位合作研究者,驗證一下他的猜想。
- 根據按鍵速度的研究數據,你還有那些猜想?
- 按鍵速度的研究軟件還有那些地方需要改進?
知識著陸
- 腳本:
- 編程習慣:在軟件編寫的過程中,如何進行技術攻關
- 數字科學素養:如何根據數據提出問題,進行猜想,實驗驗證。
創作天地
- 一位同學將圖11.4所示的代碼作了如下簡化,如圖11.7所示,你覺得這樣做好么?
![]() |
圖11.7 用鏈表的長度來記錄次數 |
2.一位同學錯誤地把圖11.4的程序中,計時器歸零的代碼放錯了位置,得到了圖11.8右側的鏈表,老師看了后卻夸獎他,說從鏈表的第二項開始,數據都非常有意義。思考一下這是為什么?
![]() ![]() |
圖11.8 計時器歸零代碼的特殊用法 |
- 一位同學發現將第二項減第一項作為第二次按空格的反應時間,以此類推,第二次以后的反應時間都明顯小于第一次的反應時間,如圖11.9所示,請你幫他分析一下可能的原因。
![]() ![]() |
圖11.9 數據的初始誤差 |
3.請試圖用圖11.10提示的兩個代碼改進程序,使計數在60秒后自動停止。
![]() |
圖11.10 使按鍵計數在60秒后自動停止 |
4.一位同學在采集數據的過程中偷懶休息了一小會兒,然后累了,請別的同學替他按空格,但是這些細節顯示在了圖11.11所示的圖象中,說說這是為什么?
|
圖11.11 使用散點圖發現數據細節 |
- 有的同學認為,上午反應時間應該比剛吃過午飯的時候反應速度快,你能夠幫他設計一個實驗計劃么?
- 一位同學研究了食指和小指同樣按鍵次數所消耗的時間,得到圖11.12,你能根據圖11.12幫他得出結論么?
|
圖11.11 食指和小指同樣按鍵次數所消耗的時間 |
6.對同一組數據,一位同學除了畫出了時間隨次數的變化圖,還畫出了次數歲時間的變化圖,如圖11.13所示,你能說出這兩幅圖的聯系么?
|
圖11.13 次數與時間的關系圖 |
- 將本課的數據寫成一個實驗報告。
- 探究一個因素對按鍵速度的影響。
視野拓展
在Scratch的例子的Sensors and Motors當中介紹了Scratch的傳感器板的使用方法,如圖11.14所示

圖11.14 Scratch傳感器板介紹
請你察看一下偵測菜單中的傳感器模塊的功能如圖11.15所示,你會發現傳感器板的功能還比較強大,可以偵測距離、按鍵、音量、光照等等信息。

圖11.15 Scratch傳感器板的功能介紹
如果你想了解更多關于傳感器板的知識,你可以登錄http://scratch.mit.edu/users/towujunjie,進入傳感器板專區,相信你會很有收獲。

- 和

- ,如果…否則…結構
