藍橋杯青少年創(chuàng)意編程大賽Scratch編程題解析(五)_第1頁
藍橋杯青少年創(chuàng)意編程大賽Scratch編程題解析(五)_第2頁
藍橋杯青少年創(chuàng)意編程大賽Scratch編程題解析(五)_第3頁
藍橋杯青少年創(chuàng)意編程大賽Scratch編程題解析(五)_第4頁
藍橋杯青少年創(chuàng)意編程大賽Scratch編程題解析(五)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、    藍橋杯青少年創(chuàng)意編程大賽scratch編程題解析(五)    列表排序1.問題描述老師給小貓出了一道題:在列表1中生成5個在199范圍內(nèi)的隨機整數(shù),然后按照從大到小的順序?qū)⑺鼈円来我频搅斜?中。例如:在列表1中隨機生成的整數(shù)依次是“12,3,1,13,17”,在處理之后列表2中的整數(shù)依次是“17,13,12,3,1”。如圖1、2。具體要求:(1)每次點擊綠旗后,在屏幕中都顯示如圖1所示的列表1和列表2,且在列表1中隨機生成5個在199范圍內(nèi)的隨機整數(shù),而列表2中內(nèi)容為空。然后小貓說“5秒鐘后開始處理”,并等待5秒鐘。(2)處理數(shù)據(jù)時,每間隔1秒鐘

2、,都將列表1中當前最大的一個數(shù)字移動到列表2中,注意:是移動,不是復制。(3)當處理到列表1為空后,列表2中的數(shù)據(jù)應從大到小排列,如圖2所示,然后小貓說“處理完啦”2秒鐘,然后程序結(jié)束。評判標準:10分,點擊綠旗后,在列表1中正確生成了5個隨機的整數(shù)(裁判可多次點擊綠旗來驗證是否隨機),且小貓說“5秒鐘后開始處理”,并等待5秒鐘。30分,在10分標準的基礎上,開始處理后,每1秒鐘都將列表1中當前最大的數(shù)字移動到列表2中,但不是每次都移動最大數(shù)字或者移動到列表2中后順序不是從大到小,或者處理完成后小貓沒有說“處理完啦”,2秒鐘。50分:完全符合題意。2.編程思路(1)隨機生成5個數(shù)字并存入列表1

3、。(2)找到當前列表1中的最大的數(shù)并存儲到列表2中,然后刪掉這個數(shù),完成移動。(3)重復執(zhí)行第2步,直到列表1為空,結(jié)束循環(huán)。(4)本題的難點是找到列表中最大的數(shù)。對列表排序的算法有很多種,本題數(shù)據(jù)量非常少,任何一種排序算法都是可以的。學習編程的小朋友可能都接觸過相對簡單的“冒泡排序算法”。標準的冒泡法是針對一個列表內(nèi)排序,本題是兩個列表,需要做針對性的修改。3.冒泡排序算法我們來看看原版的算法步驟,這個步驟由于和題目要求有差異,只能借用,不能直接套用。(1)需要降序排列,讓第一個數(shù)最大,最后一個數(shù)最小。(2)比較相鄰的元素。如果第一個比第二個小,就交換它們兩個,保證大的數(shù)更靠前。(3)對每一

4、對相鄰元素做同樣的工作,從開始第一對到結(jié)尾的最后一對。這樣最后的元素應該會是最小的數(shù)。(4)針對所有的元素重復以上的步驟,除了最后一個。持續(xù)每次對越來越少的元素重復上面的步驟,直到?jīng)]有任何一對數(shù)字需要比較。4.本題算法冒泡法的核心是依次比較相鄰兩個數(shù),并根據(jù)情況決定是否交換位置。例如本題的列表“12,3,1,13,17”,建立一個“臨時”變量記錄列表的第一個數(shù)12,建立一個“臨時序號”記錄數(shù)據(jù)的序號1。依次與后面的數(shù)據(jù)比較,遇到3、1就不變,遇到13時“臨時”就替換為13,“臨時序號”變?yōu)?。一直對比到列表的末尾,這時“臨時”變量中記錄為17是列表1中最大的數(shù)值,“臨時序號”為5。這時將數(shù)據(jù)1

5、7放入列表2的第一個位置,并刪除列表中序號5的對應數(shù)值17。依次循環(huán)直到列表1中沒有數(shù)據(jù)為止。算法流程圖如圖3。5.編程實現(xiàn)(1)對小貓編程,建立列表1、列表2。建立變量臨時、序號、臨時序號。清空列表。(2)重復5次,將隨機數(shù)加入表1。如圖4。(3)重復執(zhí)行直到表1項目數(shù)為o。將序號、臨時序號設為1,將臨時設定為表1第1項。(4)重復執(zhí)行表1項目數(shù)-1次。如果表1(序號+1)項>臨時,將臨時替換為(序號+1)項,記錄臨時序號為(序號+1),將序號增加1。否則將序號增加1。此步驟完成時,臨時保存表1最大數(shù),臨時序號記錄著它在表1的位置。(5)將臨時加入表2,刪除表1的臨時序號項。根據(jù)題目要求等待1秒。(6)說“處理完啦”2秒。程序如圖5。6.解題思路b本例中排序使用了臨時變量來存儲當前最大的數(shù)。下面提供另外一種解題思路,只使用2個變量,序號和最大項序號。比較第1項和第2項,如果第2項大于第1項,則將第2項作為最大項序號。接下來比較第

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論