国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

第10課 統(tǒng)計集成——自動生成柱狀圖

極客小將2019-08-29-
第10課 統(tǒng)計集成——自動生成柱狀圖             任務(wù)導(dǎo)航在上一課中,我們研究了“從1到6間隨機選一個數(shù)”這個代碼,數(shù)據(jù)分析的環(huán)節(jié)是用Excel完成的,我們是否需要在Scratch中編寫一個軟件來完成數(shù)據(jù)的分析呢?這相當于編寫一個科學(xué)研究

第10課 統(tǒng)計集成——自動生成柱狀圖

             

任務(wù)導(dǎo)航

在上一課中,我們研究了“從1到6間隨機選一個數(shù)”這個代碼,數(shù)據(jù)分析的環(huán)節(jié)是用Excel完成的,我們是否需要在Scratch中編寫一個軟件來完成數(shù)據(jù)的分析呢?這相當于編寫一個科學(xué)研究軟件,需要考慮軟件編寫的必要性。自編軟件的優(yōu)點是省去了數(shù)據(jù)導(dǎo)出→Excel分析的過程,自編軟件可能會節(jié)省時間,但缺點是需要開發(fā)的時間。但如圖10.1所示如果自編的軟件能夠比原來的Excel分析結(jié)論更加直觀形象,就很有必要自編軟件。同學(xué)們,你肯接受挑戰(zhàn)么?

圖10.1 隨機選數(shù)結(jié)果的柱狀圖

 

任務(wù)分析

 

 

Follow Me

    1. 分析軟件需求及目標

 

編寫一款軟件,首先需要明確想要編一款什么樣的軟件,初級目標、中級目標、高級目標分別是什么。中級目標是軟件要核心完成的任務(wù),完成了中級目標,軟件的編寫就算成功。初級目標是基礎(chǔ)研究,是基于現(xiàn)有的水平和時間,將中級目標進行的簡化,有時是完成核心代碼,有時是積累一些基礎(chǔ)的數(shù)據(jù)。高級目標時在中級目標基礎(chǔ)上的提升,有時是軟件原理上的創(chuàng)新,有的是小改進,可以算作是對軟件的進一步地追求。初級目標、中級目標和高級目標,都要圍繞著同一個“核”,這樣軟件的編寫才科學(xué)、高效。

 

想一想:

分析300個隨機數(shù)中1到6的數(shù)目,這個軟件的三級目標是怎樣的?

 

       我們可以這樣整理三級目標,如表10.1所示。

表10.1 三級目標

中級目標鏈表中有300個數(shù)由從1到6的300個數(shù)據(jù)組成,編寫出一個軟件,統(tǒng)計出每個數(shù)字出現(xiàn)的次數(shù)
初級目標只統(tǒng)計出1出現(xiàn)的次數(shù)
如圖10.1所示如圖10.1所示
高級目標用柱狀圖反映出每個數(shù)字出現(xiàn)的次數(shù),甚至表現(xiàn)出每個數(shù)字出現(xiàn)的次數(shù)相對于總次數(shù)的百分比

 

2. 算法及程序設(shè)計

從表10.1中可以看出,初級目標是為了解決這個程序的核心算法。算法是指程序中解決問題的核心方式,大部分的算法都可以從生活中得到啟示,比如“在1和6間隨機選一個數(shù)”這種隨機算法,就與生活中的擲色子問題對應(yīng)。這種聯(lián)系生活研究編程算法的思考方式,稱為生活算法。那么找到300個隨機數(shù)中1的個數(shù)與生活中的那個過程類似呢?

比如,有一個袋子里面裝著300個標有1到6六個數(shù)字的乒乓球,每次只能從瓶口拿出一個乒乓球,如果是1就放在另外一個袋子,不是1就扔掉。這個過程用代碼表示時,如圖10.1所示。

圖10.2 統(tǒng)計鏈表中數(shù)字1出現(xiàn)的數(shù)目代碼

想一想

  1. 編寫圖10.1所示的代碼的過程中,需要新建那些變量?
  2. 如果鏈表中超過了300組數(shù)據(jù),圖10.1中的代碼還能不能解決?
  3. 圖10.1的代碼可以完成初級目標,那如何修改一下它,讓其完成中級目標呢?

 

DIY

編寫一個可以統(tǒng)計1到6六個數(shù)字的代碼,從變量的角度要從圖10.1的代碼中新建那些變量,從代碼的角度,統(tǒng)計數(shù)字2出現(xiàn)次數(shù)的代碼應(yīng)該放在那個位置,與統(tǒng)計數(shù)字1出現(xiàn)次數(shù)的代碼相比有什么區(qū)別。核心代碼如圖10.3所示。

圖10.3 統(tǒng)計每個數(shù)字出現(xiàn)的次數(shù)

 

想一想

1.如果讓鏈表中存儲6000個隨機數(shù),然后讓程序自動分析結(jié)果怎么做?完成這個實驗,程序運行需要多長時間,是不是比Excel的方法快?

2.如何讓結(jié)果可視化呢?

3.如果你使用圖10.2所示的超速模式運行程序,你會發(fā)現(xiàn)程序運行的速度會提高10倍。

圖10.2 超速模式下程序執(zhí)行的速度會大大加快

 

3. 生成柱狀圖

柱狀圖的每個柱可以使用繪圖編輯器完成,柱的高度要大于150個像素,注意需要選擇“設(shè)定旋轉(zhuǎn)中心”工具,將旋轉(zhuǎn)中心設(shè)定為紅色柱的頂端,如圖10.3所示。

圖10.3 繪制每個數(shù)字次數(shù)代表的圓柱

想一想

    如果能夠在計數(shù)完成之后自動生成柱狀圖,程序的效果就大大提升了,請你思考一下,需要增添那些新角色?

 

圖10.4所示的代碼,可以將柱狀圖紅色部分的上沿和數(shù)字1的數(shù)目保持一致。制作6個這樣的角色,就可以實現(xiàn)柱狀圖效果了,最后用一個灰色的色塊將所有彩條的下緣擋住,只保留縱坐標大于0的那部分,這樣,柱狀圖就完成了,如圖10.5所示。

圖10.4 生成柱狀圖

 

圖10.5 自動生成柱狀圖

DIY

如果將圖10.4改進為圖10.6所示的代碼,可以顯示出每個數(shù)字出現(xiàn)數(shù)目占總數(shù)的百分比。

圖10.6 超速模式下程序執(zhí)行的速度會大大加快

如果我們換一個思路,不從分析已有鏈表的數(shù)據(jù)出發(fā),將實驗的過程理解為:擲一次色子,得到那個點數(shù),就在該點數(shù)所在的一欄加1,最后統(tǒng)計每個點數(shù)出現(xiàn)的次數(shù)和百分比,程序會有什么樣的變化?圖10.7給出了一個參考的思路

圖10.7 將隨機數(shù)的產(chǎn)生、識別計數(shù)、分析一體化的代碼

圖10.8是12萬組數(shù)據(jù)匯總后的結(jié)果,看看是不是每個數(shù)字的出現(xiàn)的可能性是六分之一。

圖10.8 12萬組數(shù)據(jù)的分析結(jié)果

 

 

知識著陸

  1. 腳本:刪除鏈表中的第1項,鏈表的長度
  2. 設(shè)計:如何生成一個柱狀圖
  3. 編程習(xí)慣:在程序編寫時,設(shè)計初級目標、中級目標和高級目標

 

創(chuàng)作天地

  1. 分析圖10.9所示的代碼,那些代碼是相似的結(jié)構(gòu)?

 

 

圖10.9 分析代碼的相似性

  1. 如果使用圖10.1所示的代碼,鏈表最后就被清空了,這樣原始數(shù)據(jù)就難以保存下來。一位同學(xué)做了圖10.10所示的改進,請分析一下代碼執(zhí)行的過程。

圖10.10 使用變量i來掃描鏈表中的所有數(shù)字

視野拓展

有一位同學(xué)制作了一只“機器老鼠”每碰它一下,就前進一1秒,如圖10.11所示

10.11 機器老鼠

但是它發(fā)現(xiàn)老鼠1秒鐘移動的距離穩(wěn)定地在40左右的幾個數(shù)之間變化,你能幫助他研究一下都可能出現(xiàn)那幾個數(shù),在多次實驗的過程中每個數(shù)出現(xiàn)的百分比是多少,此外這支機器老鼠能不能有避障之類的其他功能呢?在http://scratch.mit.edu/users/towujunjie介紹了用Scratch制作一個虛擬機器人的方法,同學(xué)們可以試一試。

 

 

 


預(yù)約試聽課

已有385人預(yù)約都是免費的,你也試試吧...

主站蜘蛛池模板: 襄城县| 叙永县| 巢湖市| 石景山区| 安溪县| 镶黄旗| 天峨县| 历史| 上栗县| 永川市| 大荔县| 海晏县| 甘孜| 乌鲁木齐县| 开平市| 察隅县| 手游| 攀枝花市| 邢台市| 定日县| 常德市| 鹤壁市| 石台县| 锦屏县| 芜湖县| 库车县| 齐河县| 景谷| 桐乡市| 蒲城县| 清徐县| 阳东县| 滦平县| 土默特左旗| 安乡县| 巴中市| 绥滨县| 铁力市| 梨树县| 图木舒克市| 柘荣县|