• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      冒泡法排序的動(dòng)態(tài)演示

      2014-07-02 17:14:29郭亞慶趙源
      關(guān)鍵詞:教學(xué)效果

      郭亞慶 趙源

      摘 要: 文章就冒泡法排序的動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵技術(shù)做了詳細(xì)的闡述,明確地提出了算法的動(dòng)態(tài)演示在計(jì)算機(jī)語(yǔ)言課教學(xué)中的重要作用。

      關(guān)鍵詞: 冒泡法排序;數(shù)字移動(dòng);教學(xué)效果

      中圖分類號(hào): TP311.1 [HT5H]文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 10084738(2014)01010802

      各種排序法是計(jì)算機(jī)語(yǔ)言課教學(xué)的難點(diǎn)與重點(diǎn)。按照傳統(tǒng)的教學(xué)模式,單純靠老師在黑板書寫與畫圖,既費(fèi)時(shí)又費(fèi)力,而且學(xué)生聽起來(lái)感到抽象,枯燥又難懂。以人機(jī)交互方式,進(jìn)行動(dòng)態(tài)演示,使抽象、枯燥的學(xué)習(xí)內(nèi)容轉(zhuǎn)化成形象、有趣、可視、可聽的動(dòng)感內(nèi)容,就能夠有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,變苦學(xué)為樂學(xué),達(dá)到事半功倍的效果。下面我們以冒泡法排序?yàn)槔U述動(dòng)態(tài)演示程序的設(shè)計(jì)過程。

      1 冒泡法排序的基本思想

      冒泡法排序是最為常用的一種排序方法 ,它是一類具有“交換”性質(zhì)的排序方法,具體描述如下:

      將序列中的第一個(gè)元素與第二個(gè)元素比較,若前者大于后者,則第一個(gè)元素與第二個(gè)元素進(jìn)行位置交換,否則不交換。

      再將第二個(gè)元素與第三個(gè)元素比較,同樣若前者大于后者,則將第二元素與第三個(gè)元素進(jìn)行位置交換,否則不交換。

      依次類推直到將第n-1個(gè)元素與第n個(gè)元素進(jìn)行比較為止,這個(gè)過程稱為第1趟冒泡法排序,經(jīng)過第1 趟冒泡法排序,將長(zhǎng)度為N的序列中最大的元素置于序列的尾部即第N個(gè)位置上,然后再對(duì)剩下的N-1個(gè)元素作同樣的操作,這叫作第2趟排序,將剩下的N-1個(gè)元素中最大的元素置于序列的N-1的位置上。

      如此進(jìn)行下去,當(dāng)執(zhí)行完第N-1趟冒泡法排序后就可以將序列中剩下2個(gè)元素中的最大元素置于序列的第2個(gè)位置上,第1個(gè)位置上的元素就是該序列中的最小元素[1]。

      2 動(dòng)態(tài)演示程序的設(shè)計(jì)

      2.1 界面設(shè)計(jì)

      界面最初狀態(tài)左半部分別為:初始化按鈕、排序按鈕、結(jié)束按鈕。右半部分為動(dòng)態(tài)演示區(qū),其中上部為六個(gè)標(biāo)簽框,第一個(gè)標(biāo)簽框LABEL3標(biāo)識(shí)為“排序前的數(shù)據(jù)”,其余的五個(gè)標(biāo)簽框是以LABEL2命名的標(biāo)簽框數(shù)組,用以動(dòng)態(tài)顯示第i趟排序中哪個(gè)元素與哪個(gè)元素比較,當(dāng)?shù)趇趟排序結(jié)束后,則顯示本趟排序的總共比較次數(shù)。中間部分初始為空,經(jīng)過初始化后,動(dòng)態(tài)產(chǎn)生了兩個(gè)文本框控件數(shù)組,并隨機(jī)產(chǎn)生待排序的數(shù)據(jù)。

      第一個(gè)文本框控件數(shù)組為 TXT1(1To6) 用于存放排序前的數(shù)據(jù),為了模擬逼真,待排序的數(shù)據(jù)豎著存放,以便小的數(shù)據(jù)像氣泡一樣上浮,大的數(shù)據(jù)下沉。第二個(gè)文本框控件數(shù)組為txtNew(1To6, 1To6),存放時(shí)豎為行,橫為列,初始僅第一行可見,并存放待排序數(shù)據(jù)??丶?shù)組txtNew其余各行分別在第i趟排序中依次動(dòng)態(tài)顯示。界面右半部分的下部為五個(gè)標(biāo)簽框,用于動(dòng)態(tài)顯示第幾趟排序。初始化后的界面見圖1。

      2.2 數(shù)字的移動(dòng)

      數(shù)字的移動(dòng)與交換,是動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵,單純的數(shù)字是不能移動(dòng)的,為了能使數(shù)字移動(dòng),必須借助于一個(gè)載體, 在排序比較的過程中, 若發(fā)現(xiàn)前者大于后者,如何使小的數(shù)字上浮,大的數(shù)字下沉呢?這是動(dòng)態(tài)演示的關(guān)鍵。解決的辦法通常是交換數(shù)組元素中的數(shù)字,這在算法上是正確的,能得到正確的結(jié)果。但是數(shù)組元素中的數(shù)字交換是在內(nèi)存進(jìn)行的,是不可見的,達(dá)不到動(dòng)態(tài)演示的目的。如果將數(shù)組的元素(數(shù)組的元素為文本框)整體移動(dòng)互換位置,這時(shí)可以看到數(shù)字跟隨載體移動(dòng)的過程,雖然兩個(gè)元素交換了位置,但是數(shù)組元素的下標(biāo)并沒有改變,因而導(dǎo)致排序不能得到正確結(jié)果。如何既能保證排序結(jié)果的正確,又能看見小的數(shù)字上浮,大的數(shù)字下沉,在這里采取的辦法是:每當(dāng)發(fā)現(xiàn)兩個(gè)元素前者大于后者時(shí),立即調(diào)用兩個(gè)文本框即Text1和Text2作為載體,分別停靠在這兩個(gè)元素的旁邊,然后把需要交換的兩個(gè)數(shù)字分別賦給Text1和Text2(見圖2)。

      下一步讓小的數(shù)字隨同文本框Text2上浮,大的數(shù)字隨同另一文本框Text1下沉,當(dāng)兩者達(dá)到要交換的位置時(shí),再把兩個(gè)數(shù)字傳送到相應(yīng)的位置,并使Text1和Text2變?yōu)椴豢梢?。這樣既保證了待排序數(shù)組下標(biāo)及位置不變,又能看見小的數(shù)字上浮,大的數(shù)字下沉及交換的全過程。

      2.3 移動(dòng)速度及終點(diǎn)的控制

      為了提高演示的效果,必須對(duì)數(shù)字移動(dòng)的速度進(jìn)行控制,并計(jì)算好到達(dá)的終點(diǎn)。由于待排數(shù)據(jù)是按一定規(guī)律分布的,相鄰兩個(gè)元素間的距離是一定的。每當(dāng)發(fā)現(xiàn)txtNew(I, J)和txtNew(I, J+1)兩個(gè)元素要交換時(shí),記錄下這兩個(gè)元素的頂部的坐標(biāo)值,(這個(gè)值亦是Text1和Text2要移動(dòng)的終點(diǎn)),然后利用循環(huán)逐步改變Text1和Text2的頂點(diǎn)坐標(biāo)值,每移動(dòng)一次調(diào)用API函數(shù)中的延時(shí)函數(shù)Sleep 50(延時(shí)50毫秒),直至終點(diǎn)。這樣我們就能清晰地看到小的數(shù)字上浮,大的數(shù)字下沉的過程[2]。

      代碼執(zhí)行完后界面如圖3所示,這時(shí)動(dòng)態(tài)顯示區(qū)的下部五個(gè)標(biāo)簽框分別顯示是“第幾趟”排序,上部五個(gè)標(biāo)簽框分別顯示是本趟循環(huán)內(nèi)的比較次數(shù),中間部分是顯示執(zhí)行本趟循環(huán)的結(jié)果。

      3 結(jié)語(yǔ)

      利用多媒體技術(shù)對(duì)常用算法進(jìn)行動(dòng)態(tài)演示,可以營(yíng)造一個(gè)生動(dòng)有趣的教學(xué)情境,化無(wú)聲為有聲,化靜為動(dòng),使學(xué)生進(jìn)入一種喜聞樂見的,生動(dòng)活潑的學(xué)習(xí)氛圍,引起學(xué)生的注意力,提高學(xué)生的學(xué)習(xí)興趣。它能變靜為動(dòng),克服了傳統(tǒng)教學(xué)中學(xué)生面向靜態(tài)呆板的課文和板書的缺陷。一個(gè)成熟的算法動(dòng)態(tài)演示程序開發(fā)時(shí)雖然要費(fèi)時(shí),費(fèi)力,但由于算法的不變性,一旦開發(fā)成功,可以長(zhǎng)期使用。并且可以應(yīng)用到所有的計(jì)機(jī)語(yǔ)言課教學(xué)中,從而取得良好的教學(xué)效果。

      [參考文獻(xiàn)]

      [1] 柴 欣,李惠然.VISUAL BASIC 程序設(shè)計(jì)基礎(chǔ)[M].北京:中國(guó)鐵道出版社,2003:02.

      [2] 劉炳文.精通VISUAL BASIC6.0中文版[M].北京:電子工業(yè)出版社,1999:113136.endprint

      摘 要: 文章就冒泡法排序的動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵技術(shù)做了詳細(xì)的闡述,明確地提出了算法的動(dòng)態(tài)演示在計(jì)算機(jī)語(yǔ)言課教學(xué)中的重要作用。

      關(guān)鍵詞: 冒泡法排序;數(shù)字移動(dòng);教學(xué)效果

      中圖分類號(hào): TP311.1 [HT5H]文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 10084738(2014)01010802

      各種排序法是計(jì)算機(jī)語(yǔ)言課教學(xué)的難點(diǎn)與重點(diǎn)。按照傳統(tǒng)的教學(xué)模式,單純靠老師在黑板書寫與畫圖,既費(fèi)時(shí)又費(fèi)力,而且學(xué)生聽起來(lái)感到抽象,枯燥又難懂。以人機(jī)交互方式,進(jìn)行動(dòng)態(tài)演示,使抽象、枯燥的學(xué)習(xí)內(nèi)容轉(zhuǎn)化成形象、有趣、可視、可聽的動(dòng)感內(nèi)容,就能夠有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,變苦學(xué)為樂學(xué),達(dá)到事半功倍的效果。下面我們以冒泡法排序?yàn)槔U述動(dòng)態(tài)演示程序的設(shè)計(jì)過程。

      1 冒泡法排序的基本思想

      冒泡法排序是最為常用的一種排序方法 ,它是一類具有“交換”性質(zhì)的排序方法,具體描述如下:

      將序列中的第一個(gè)元素與第二個(gè)元素比較,若前者大于后者,則第一個(gè)元素與第二個(gè)元素進(jìn)行位置交換,否則不交換。

      再將第二個(gè)元素與第三個(gè)元素比較,同樣若前者大于后者,則將第二元素與第三個(gè)元素進(jìn)行位置交換,否則不交換。

      依次類推直到將第n-1個(gè)元素與第n個(gè)元素進(jìn)行比較為止,這個(gè)過程稱為第1趟冒泡法排序,經(jīng)過第1 趟冒泡法排序,將長(zhǎng)度為N的序列中最大的元素置于序列的尾部即第N個(gè)位置上,然后再對(duì)剩下的N-1個(gè)元素作同樣的操作,這叫作第2趟排序,將剩下的N-1個(gè)元素中最大的元素置于序列的N-1的位置上。

      如此進(jìn)行下去,當(dāng)執(zhí)行完第N-1趟冒泡法排序后就可以將序列中剩下2個(gè)元素中的最大元素置于序列的第2個(gè)位置上,第1個(gè)位置上的元素就是該序列中的最小元素[1]。

      2 動(dòng)態(tài)演示程序的設(shè)計(jì)

      2.1 界面設(shè)計(jì)

      界面最初狀態(tài)左半部分別為:初始化按鈕、排序按鈕、結(jié)束按鈕。右半部分為動(dòng)態(tài)演示區(qū),其中上部為六個(gè)標(biāo)簽框,第一個(gè)標(biāo)簽框LABEL3標(biāo)識(shí)為“排序前的數(shù)據(jù)”,其余的五個(gè)標(biāo)簽框是以LABEL2命名的標(biāo)簽框數(shù)組,用以動(dòng)態(tài)顯示第i趟排序中哪個(gè)元素與哪個(gè)元素比較,當(dāng)?shù)趇趟排序結(jié)束后,則顯示本趟排序的總共比較次數(shù)。中間部分初始為空,經(jīng)過初始化后,動(dòng)態(tài)產(chǎn)生了兩個(gè)文本框控件數(shù)組,并隨機(jī)產(chǎn)生待排序的數(shù)據(jù)。

      第一個(gè)文本框控件數(shù)組為 TXT1(1To6) 用于存放排序前的數(shù)據(jù),為了模擬逼真,待排序的數(shù)據(jù)豎著存放,以便小的數(shù)據(jù)像氣泡一樣上浮,大的數(shù)據(jù)下沉。第二個(gè)文本框控件數(shù)組為txtNew(1To6, 1To6),存放時(shí)豎為行,橫為列,初始僅第一行可見,并存放待排序數(shù)據(jù)??丶?shù)組txtNew其余各行分別在第i趟排序中依次動(dòng)態(tài)顯示。界面右半部分的下部為五個(gè)標(biāo)簽框,用于動(dòng)態(tài)顯示第幾趟排序。初始化后的界面見圖1。

      2.2 數(shù)字的移動(dòng)

      數(shù)字的移動(dòng)與交換,是動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵,單純的數(shù)字是不能移動(dòng)的,為了能使數(shù)字移動(dòng),必須借助于一個(gè)載體, 在排序比較的過程中, 若發(fā)現(xiàn)前者大于后者,如何使小的數(shù)字上浮,大的數(shù)字下沉呢?這是動(dòng)態(tài)演示的關(guān)鍵。解決的辦法通常是交換數(shù)組元素中的數(shù)字,這在算法上是正確的,能得到正確的結(jié)果。但是數(shù)組元素中的數(shù)字交換是在內(nèi)存進(jìn)行的,是不可見的,達(dá)不到動(dòng)態(tài)演示的目的。如果將數(shù)組的元素(數(shù)組的元素為文本框)整體移動(dòng)互換位置,這時(shí)可以看到數(shù)字跟隨載體移動(dòng)的過程,雖然兩個(gè)元素交換了位置,但是數(shù)組元素的下標(biāo)并沒有改變,因而導(dǎo)致排序不能得到正確結(jié)果。如何既能保證排序結(jié)果的正確,又能看見小的數(shù)字上浮,大的數(shù)字下沉,在這里采取的辦法是:每當(dāng)發(fā)現(xiàn)兩個(gè)元素前者大于后者時(shí),立即調(diào)用兩個(gè)文本框即Text1和Text2作為載體,分別停靠在這兩個(gè)元素的旁邊,然后把需要交換的兩個(gè)數(shù)字分別賦給Text1和Text2(見圖2)。

      下一步讓小的數(shù)字隨同文本框Text2上浮,大的數(shù)字隨同另一文本框Text1下沉,當(dāng)兩者達(dá)到要交換的位置時(shí),再把兩個(gè)數(shù)字傳送到相應(yīng)的位置,并使Text1和Text2變?yōu)椴豢梢姟_@樣既保證了待排序數(shù)組下標(biāo)及位置不變,又能看見小的數(shù)字上浮,大的數(shù)字下沉及交換的全過程。

      2.3 移動(dòng)速度及終點(diǎn)的控制

      為了提高演示的效果,必須對(duì)數(shù)字移動(dòng)的速度進(jìn)行控制,并計(jì)算好到達(dá)的終點(diǎn)。由于待排數(shù)據(jù)是按一定規(guī)律分布的,相鄰兩個(gè)元素間的距離是一定的。每當(dāng)發(fā)現(xiàn)txtNew(I, J)和txtNew(I, J+1)兩個(gè)元素要交換時(shí),記錄下這兩個(gè)元素的頂部的坐標(biāo)值,(這個(gè)值亦是Text1和Text2要移動(dòng)的終點(diǎn)),然后利用循環(huán)逐步改變Text1和Text2的頂點(diǎn)坐標(biāo)值,每移動(dòng)一次調(diào)用API函數(shù)中的延時(shí)函數(shù)Sleep 50(延時(shí)50毫秒),直至終點(diǎn)。這樣我們就能清晰地看到小的數(shù)字上浮,大的數(shù)字下沉的過程[2]。

      代碼執(zhí)行完后界面如圖3所示,這時(shí)動(dòng)態(tài)顯示區(qū)的下部五個(gè)標(biāo)簽框分別顯示是“第幾趟”排序,上部五個(gè)標(biāo)簽框分別顯示是本趟循環(huán)內(nèi)的比較次數(shù),中間部分是顯示執(zhí)行本趟循環(huán)的結(jié)果。

      3 結(jié)語(yǔ)

      利用多媒體技術(shù)對(duì)常用算法進(jìn)行動(dòng)態(tài)演示,可以營(yíng)造一個(gè)生動(dòng)有趣的教學(xué)情境,化無(wú)聲為有聲,化靜為動(dòng),使學(xué)生進(jìn)入一種喜聞樂見的,生動(dòng)活潑的學(xué)習(xí)氛圍,引起學(xué)生的注意力,提高學(xué)生的學(xué)習(xí)興趣。它能變靜為動(dòng),克服了傳統(tǒng)教學(xué)中學(xué)生面向靜態(tài)呆板的課文和板書的缺陷。一個(gè)成熟的算法動(dòng)態(tài)演示程序開發(fā)時(shí)雖然要費(fèi)時(shí),費(fèi)力,但由于算法的不變性,一旦開發(fā)成功,可以長(zhǎng)期使用。并且可以應(yīng)用到所有的計(jì)機(jī)語(yǔ)言課教學(xué)中,從而取得良好的教學(xué)效果。

      [參考文獻(xiàn)]

      [1] 柴 欣,李惠然.VISUAL BASIC 程序設(shè)計(jì)基礎(chǔ)[M].北京:中國(guó)鐵道出版社,2003:02.

      [2] 劉炳文.精通VISUAL BASIC6.0中文版[M].北京:電子工業(yè)出版社,1999:113136.endprint

      摘 要: 文章就冒泡法排序的動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵技術(shù)做了詳細(xì)的闡述,明確地提出了算法的動(dòng)態(tài)演示在計(jì)算機(jī)語(yǔ)言課教學(xué)中的重要作用。

      關(guān)鍵詞: 冒泡法排序;數(shù)字移動(dòng);教學(xué)效果

      中圖分類號(hào): TP311.1 [HT5H]文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 10084738(2014)01010802

      各種排序法是計(jì)算機(jī)語(yǔ)言課教學(xué)的難點(diǎn)與重點(diǎn)。按照傳統(tǒng)的教學(xué)模式,單純靠老師在黑板書寫與畫圖,既費(fèi)時(shí)又費(fèi)力,而且學(xué)生聽起來(lái)感到抽象,枯燥又難懂。以人機(jī)交互方式,進(jìn)行動(dòng)態(tài)演示,使抽象、枯燥的學(xué)習(xí)內(nèi)容轉(zhuǎn)化成形象、有趣、可視、可聽的動(dòng)感內(nèi)容,就能夠有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,變苦學(xué)為樂學(xué),達(dá)到事半功倍的效果。下面我們以冒泡法排序?yàn)槔U述動(dòng)態(tài)演示程序的設(shè)計(jì)過程。

      1 冒泡法排序的基本思想

      冒泡法排序是最為常用的一種排序方法 ,它是一類具有“交換”性質(zhì)的排序方法,具體描述如下:

      將序列中的第一個(gè)元素與第二個(gè)元素比較,若前者大于后者,則第一個(gè)元素與第二個(gè)元素進(jìn)行位置交換,否則不交換。

      再將第二個(gè)元素與第三個(gè)元素比較,同樣若前者大于后者,則將第二元素與第三個(gè)元素進(jìn)行位置交換,否則不交換。

      依次類推直到將第n-1個(gè)元素與第n個(gè)元素進(jìn)行比較為止,這個(gè)過程稱為第1趟冒泡法排序,經(jīng)過第1 趟冒泡法排序,將長(zhǎng)度為N的序列中最大的元素置于序列的尾部即第N個(gè)位置上,然后再對(duì)剩下的N-1個(gè)元素作同樣的操作,這叫作第2趟排序,將剩下的N-1個(gè)元素中最大的元素置于序列的N-1的位置上。

      如此進(jìn)行下去,當(dāng)執(zhí)行完第N-1趟冒泡法排序后就可以將序列中剩下2個(gè)元素中的最大元素置于序列的第2個(gè)位置上,第1個(gè)位置上的元素就是該序列中的最小元素[1]。

      2 動(dòng)態(tài)演示程序的設(shè)計(jì)

      2.1 界面設(shè)計(jì)

      界面最初狀態(tài)左半部分別為:初始化按鈕、排序按鈕、結(jié)束按鈕。右半部分為動(dòng)態(tài)演示區(qū),其中上部為六個(gè)標(biāo)簽框,第一個(gè)標(biāo)簽框LABEL3標(biāo)識(shí)為“排序前的數(shù)據(jù)”,其余的五個(gè)標(biāo)簽框是以LABEL2命名的標(biāo)簽框數(shù)組,用以動(dòng)態(tài)顯示第i趟排序中哪個(gè)元素與哪個(gè)元素比較,當(dāng)?shù)趇趟排序結(jié)束后,則顯示本趟排序的總共比較次數(shù)。中間部分初始為空,經(jīng)過初始化后,動(dòng)態(tài)產(chǎn)生了兩個(gè)文本框控件數(shù)組,并隨機(jī)產(chǎn)生待排序的數(shù)據(jù)。

      第一個(gè)文本框控件數(shù)組為 TXT1(1To6) 用于存放排序前的數(shù)據(jù),為了模擬逼真,待排序的數(shù)據(jù)豎著存放,以便小的數(shù)據(jù)像氣泡一樣上浮,大的數(shù)據(jù)下沉。第二個(gè)文本框控件數(shù)組為txtNew(1To6, 1To6),存放時(shí)豎為行,橫為列,初始僅第一行可見,并存放待排序數(shù)據(jù)??丶?shù)組txtNew其余各行分別在第i趟排序中依次動(dòng)態(tài)顯示。界面右半部分的下部為五個(gè)標(biāo)簽框,用于動(dòng)態(tài)顯示第幾趟排序。初始化后的界面見圖1。

      2.2 數(shù)字的移動(dòng)

      數(shù)字的移動(dòng)與交換,是動(dòng)態(tài)演示程序?qū)崿F(xiàn)的關(guān)鍵,單純的數(shù)字是不能移動(dòng)的,為了能使數(shù)字移動(dòng),必須借助于一個(gè)載體, 在排序比較的過程中, 若發(fā)現(xiàn)前者大于后者,如何使小的數(shù)字上浮,大的數(shù)字下沉呢?這是動(dòng)態(tài)演示的關(guān)鍵。解決的辦法通常是交換數(shù)組元素中的數(shù)字,這在算法上是正確的,能得到正確的結(jié)果。但是數(shù)組元素中的數(shù)字交換是在內(nèi)存進(jìn)行的,是不可見的,達(dá)不到動(dòng)態(tài)演示的目的。如果將數(shù)組的元素(數(shù)組的元素為文本框)整體移動(dòng)互換位置,這時(shí)可以看到數(shù)字跟隨載體移動(dòng)的過程,雖然兩個(gè)元素交換了位置,但是數(shù)組元素的下標(biāo)并沒有改變,因而導(dǎo)致排序不能得到正確結(jié)果。如何既能保證排序結(jié)果的正確,又能看見小的數(shù)字上浮,大的數(shù)字下沉,在這里采取的辦法是:每當(dāng)發(fā)現(xiàn)兩個(gè)元素前者大于后者時(shí),立即調(diào)用兩個(gè)文本框即Text1和Text2作為載體,分別停靠在這兩個(gè)元素的旁邊,然后把需要交換的兩個(gè)數(shù)字分別賦給Text1和Text2(見圖2)。

      下一步讓小的數(shù)字隨同文本框Text2上浮,大的數(shù)字隨同另一文本框Text1下沉,當(dāng)兩者達(dá)到要交換的位置時(shí),再把兩個(gè)數(shù)字傳送到相應(yīng)的位置,并使Text1和Text2變?yōu)椴豢梢?。這樣既保證了待排序數(shù)組下標(biāo)及位置不變,又能看見小的數(shù)字上浮,大的數(shù)字下沉及交換的全過程。

      2.3 移動(dòng)速度及終點(diǎn)的控制

      為了提高演示的效果,必須對(duì)數(shù)字移動(dòng)的速度進(jìn)行控制,并計(jì)算好到達(dá)的終點(diǎn)。由于待排數(shù)據(jù)是按一定規(guī)律分布的,相鄰兩個(gè)元素間的距離是一定的。每當(dāng)發(fā)現(xiàn)txtNew(I, J)和txtNew(I, J+1)兩個(gè)元素要交換時(shí),記錄下這兩個(gè)元素的頂部的坐標(biāo)值,(這個(gè)值亦是Text1和Text2要移動(dòng)的終點(diǎn)),然后利用循環(huán)逐步改變Text1和Text2的頂點(diǎn)坐標(biāo)值,每移動(dòng)一次調(diào)用API函數(shù)中的延時(shí)函數(shù)Sleep 50(延時(shí)50毫秒),直至終點(diǎn)。這樣我們就能清晰地看到小的數(shù)字上浮,大的數(shù)字下沉的過程[2]。

      代碼執(zhí)行完后界面如圖3所示,這時(shí)動(dòng)態(tài)顯示區(qū)的下部五個(gè)標(biāo)簽框分別顯示是“第幾趟”排序,上部五個(gè)標(biāo)簽框分別顯示是本趟循環(huán)內(nèi)的比較次數(shù),中間部分是顯示執(zhí)行本趟循環(huán)的結(jié)果。

      3 結(jié)語(yǔ)

      利用多媒體技術(shù)對(duì)常用算法進(jìn)行動(dòng)態(tài)演示,可以營(yíng)造一個(gè)生動(dòng)有趣的教學(xué)情境,化無(wú)聲為有聲,化靜為動(dòng),使學(xué)生進(jìn)入一種喜聞樂見的,生動(dòng)活潑的學(xué)習(xí)氛圍,引起學(xué)生的注意力,提高學(xué)生的學(xué)習(xí)興趣。它能變靜為動(dòng),克服了傳統(tǒng)教學(xué)中學(xué)生面向靜態(tài)呆板的課文和板書的缺陷。一個(gè)成熟的算法動(dòng)態(tài)演示程序開發(fā)時(shí)雖然要費(fèi)時(shí),費(fèi)力,但由于算法的不變性,一旦開發(fā)成功,可以長(zhǎng)期使用。并且可以應(yīng)用到所有的計(jì)機(jī)語(yǔ)言課教學(xué)中,從而取得良好的教學(xué)效果。

      [參考文獻(xiàn)]

      [1] 柴 欣,李惠然.VISUAL BASIC 程序設(shè)計(jì)基礎(chǔ)[M].北京:中國(guó)鐵道出版社,2003:02.

      [2] 劉炳文.精通VISUAL BASIC6.0中文版[M].北京:電子工業(yè)出版社,1999:113136.endprint

      猜你喜歡
      教學(xué)效果
      生物化學(xué)線上線下混合式教學(xué)效果分析
      云南化工(2020年11期)2021-01-14 00:51:16
      小學(xué)語(yǔ)文教學(xué)效果的提高策略
      甘肅教育(2020年2期)2020-09-11 08:00:28
      掌握“函數(shù)的表示”提高高中數(shù)學(xué)教學(xué)效果
      用信息技術(shù)增強(qiáng)初中籃球教學(xué)效果
      關(guān)于提高開放電大“統(tǒng)計(jì)學(xué)原理”教學(xué)效果的探討
      新課程研究(2016年1期)2016-12-01 05:52:08
      巧用電教優(yōu)勢(shì),促進(jìn)語(yǔ)文教學(xué)效果
      如何提高高中聲樂教學(xué)效果
      散文百家(2014年11期)2014-08-21 07:16:52
      提高病理學(xué)教學(xué)效果的幾點(diǎn)體會(huì)
      加強(qiáng)焊接教學(xué)質(zhì)量提高焊接教學(xué)效果的探討
      河南科技(2014年24期)2014-02-27 14:20:03
      如何提高中職Flash動(dòng)畫教學(xué)效果
      河南科技(2014年23期)2014-02-27 14:19:18
      宁河县| 高安市| 龙川县| 安岳县| 台江县| 于田县| 绥江县| 东光县| 土默特右旗| 镇康县| 改则县| 靖远县| 台东市| 和静县| 敦煌市| 东乡族自治县| 二手房| 宽甸| 武威市| 五莲县| 德惠市| 饶阳县| 旬邑县| 西平县| 乌兰察布市| 忻州市| 湟源县| 灌云县| 连山| 桃江县| 凌源市| 抚远县| 西安市| 新昌县| 尼木县| 逊克县| 河北区| 广宁县| 深水埗区| 汶上县| 纳雍县|