版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本科畢業(yè)設(shè)計(論文)</p><p><b> ?。ǘ?屆)</b></p><p> 梵塔動畫演示的設(shè)計與實現(xiàn)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 計算機科學(xué)與技術(shù) </p>
2、<p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 目錄</b></p><p><b&g
3、t; 1 引言5</b></p><p> 1開發(fā)環(huán)境的選擇5</p><p> 1.1操作系統(tǒng)的選擇5</p><p> 1.2開發(fā)工具的選擇6</p><p> 2 問題的提出10</p><p> 3 他人的研究成果11</p><p> 3.1教學(xué)
4、目標11</p><p> 3.1.1知識與技能12</p><p> 3.1.2過程與方法14</p><p> 3.3教學(xué)內(nèi)容分析15</p><p> 3.4教學(xué)方法15</p><p> 3.5教學(xué)過程設(shè)計15</p><p> 3.6教學(xué)總結(jié)16</p&
5、gt;<p> 4本課件詳細設(shè)計16</p><p> 4.1 本課件模塊功能與實現(xiàn)16</p><p> 4.2 本課件模塊功能與實現(xiàn)17</p><p> 4.3本課件知識點部分23</p><p> 5.本課件解決問題的可能性23</p><p><b> 6.結(jié)束語
6、23</b></p><p> 謝辭錯誤!未定義書簽。</p><p><b> 參考文獻24</b></p><p> 摘要 本課件采用了理論知識與實際動畫相結(jié)合的方式,具體的講解了“算法的程序?qū)崿F(xiàn)”這一節(jié)的內(nèi)容,并用遞歸算法實現(xiàn)了漢諾塔問題程序設(shè)計。其中漢諾塔問題的程序采用動畫的方式,幫助學(xué)生接受知識,培養(yǎng)學(xué)生的分析
7、問題的能力,提高學(xué)習(xí)算法的興趣。使用了Visual Basic 6.0軟件開發(fā)了此課件。</p><p> 本文主要闡述的內(nèi)容是“漢諾塔問題算法”教學(xué)課件的教學(xué)設(shè)計和開發(fā)過程,設(shè)計軟件為Visual Basic 6.0。在文章當(dāng)中包括問題的提出、他人的成果研究、教學(xué)設(shè)計、課件設(shè)計、問題解決等六部分。</p><p> 關(guān)鍵詞 Visual Basic、漢諾塔、教學(xué)設(shè)計、課件、信息技術(shù)&
8、lt;/p><p> Design and Implementation of Tower of Hanoi Animation</p><p> Abstract: This courseware uses theoretical knowledge and practical way of combining animation, concrete explanation of the
9、 "algorithm program to achieve " the contents of this section, and the Tower of Hanoi recursive algorithm program design issues. Tower of Hanoi problem in which the program uses animation methods to help studen
10、ts acquire knowledge, to develop students ability to analyze problems and improve the learning algorithm of interest. Use the Visual Basic 6.0 software developed this c</p><p> This article focuses is on &q
11、uot;Tower of Hanoi Problem to" instructional design and courseware development process, design software for the Visual Basic 6.0. In the article, including issues raised, the results of others research, instructiona
12、l design, courseware design, problem solving and other six parts.</p><p> Key words: Visual Basic; Tower of Hanoi; instructional design; courseware; information technology</p><p><b> 引言&
13、lt;/b></p><p> 在計算機算法設(shè)計中,使用遞歸技術(shù)往往使函數(shù)的定義和算法的描述簡捷且易于理解。有些數(shù)據(jù)結(jié)構(gòu)如二叉樹等由于其本身固有的遞歸特性,特別適合用遞歸的形式來描述。還有一些問題,雖然其本身并沒有明顯的遞歸結(jié)構(gòu),但用遞歸技術(shù)來求解使設(shè)計出的算法簡潔、易懂。因此深入掌握遞歸技術(shù)在算法設(shè)計過程中可以設(shè)計出更加有效的算法[2]。</p><p> 簡單地說,遞歸就是用
14、自己定義自己。使用遞歸方法構(gòu)造算法的基本思路是:當(dāng)求解規(guī)模為n的問題時,先將其分解成若干個規(guī)模較小的與原問題具有相同特征的子問題,并找出子問題與原問題之間的組合關(guān)系,最后根據(jù)具體問題構(gòu)造出遞歸算法。</p><p> 遞歸算法的執(zhí)行過程分“遞推”和“回歸”兩個階段。在遞推階段,把較復(fù)雜問題(如:規(guī)模為n)的求解推理至較原問題簡單一些的問題(如規(guī)模為n-1)的求解;在回歸階段,把遞推結(jié)束時所得到的解,逐級返回,依
15、次得到稍復(fù)雜問題的解,最終得到原問題的解[3]。</p><p> Hanoi塔問題是一個典型的適合于利用遞歸技術(shù)得到簡潔算法的例子。Hanoi塔問題源自約19世紀末在歐洲出現(xiàn)的一種游戲,游戲中首先在一塊銅板上放置三根柱子,在第一根柱子上自上而下、由小到大順序串著64個盤子。游戲的目標是最后將所有盤子從第一根柱子上移到第三根柱子上,移動過程中可以用第二根柱子過渡。游戲規(guī)定一次只能移動一個盤子,并且任何時刻不允許
16、大盤放在小盤的上面。</p><p> 現(xiàn)在就給出關(guān)于漢諾塔問題的程序,讓其將漢諾塔問題的執(zhí)行過程動態(tài)演示出來,以幫助讀者加深理解遞歸技術(shù)。</p><p> 1 開發(fā)環(huán)境的選擇</p><p> 1.1操作系統(tǒng)的選擇</p><p> 現(xiàn)在主流的操作系統(tǒng)有Windows和Linux,最近Linux的發(fā)展很快,在界面上的友好度上面已
17、經(jīng)做的越來越好了,據(jù)說在穩(wěn)定性上面已經(jīng)超過了Windows操作系統(tǒng)。但是Linux操作系統(tǒng)用的比較多的還是服務(wù)器的版本,在桌面上的普及始終還是不如Windows,而且Windows的操作更加的傻瓜化,可以這么Windows操作系統(tǒng)更加的適合于入門的用戶,而且我們也知道現(xiàn)在學(xué)校里幾乎上使用的都是Windows 操作系統(tǒng),所以使用Windows操作系統(tǒng)變成了我們的首選。</p><p> 1.2開發(fā)工具的選擇<
18、;/p><p> 制作課件,選擇一個好的編程工具往往能起到事半功倍的效果。目前用于多媒體開發(fā)的主要有Visual Basic、AUTHORWARE和Flash等,Visual Basic 6.0作為一門可視化的高級編程語言在交互性處理和對系統(tǒng)的訪問能力上有其自身獨特的優(yōu)勢。</p><p> 現(xiàn)在,市場上可以選購的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行、使用最多、最為
19、先進的可用作企業(yè)級開發(fā)工具的產(chǎn)品有:</p><p> Microsoft公司的Visual Basic</p><p> Microsoft公司的Visual C</p><p> Borland公司的Delphi </p><p> Powersoft公司的PowerBulider</p><p><
20、b> Java等</b></p><p> 在目前市場上這些眾多的程序開發(fā)工具中,有些強調(diào)編程語言的彈性與執(zhí)行效率;有些則偏重于可視化程序開發(fā)工具所帶來的便利性與效率的得高,各有各的優(yōu)點和特色,也滿足了不同用戶的需求。然而,語言的彈性和工具的便利性是密不可分的,只有便利的工具,卻沒有彈性的語言作支持,許多特殊化的處理動作必需要耗費數(shù)倍的工夫來處理,使得原來所標榜的效率提高的優(yōu)點失去了作用;相
21、反,如果只強調(diào)程語言的彈性,卻沒有便利的工具作配合,會使一些即使非常簡單的界面處理動作,也會嚴重地浪費程序設(shè)計師的寶貴時間。</p><p> 作為數(shù)據(jù)庫系統(tǒng)的開發(fā),Visual Basic是一個非常理想選擇。數(shù)據(jù)庫是MIS中的重要支持技術(shù),在MIS開發(fā)過程中,如何選擇數(shù)據(jù)庫管理是一個重要的問題,目前,數(shù)據(jù)庫產(chǎn)品較多,每種產(chǎn)品都具有各自的特點和適用范圍,因此,在選擇數(shù)據(jù)庫時,應(yīng)考慮數(shù)據(jù)庫應(yīng)用的特點及適用范圍,本
22、系統(tǒng)選用的數(shù)據(jù)庫語言Visual Basic語言,該開發(fā)工具具有很多長處:</p><p> Visual Basic是一種可視化的、面對對象和條用事件驅(qū)動方式的結(jié)構(gòu)化高級程序設(shè)計,可用于開發(fā)Windows環(huán)境下的種類應(yīng)用程序。它簡單易學(xué)、效率高,且功能強大,可以與Windows的專業(yè)開發(fā)工具SDK相媲美,而且程序開發(fā)人員不必具有C/C++編程基礎(chǔ)[1]。在Visual Basic環(huán)境下,利用事件驅(qū)動的編程機制
23、、新穎易用的可視化設(shè)計工具,使用Windows內(nèi)部的應(yīng)用程序接口(API)函數(shù),以及動態(tài)鏈接庫(DLL)、動態(tài)數(shù)據(jù)交換(DDE)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)訪問(ODBC)等技術(shù),可以高效、快速地開發(fā)出Windows環(huán)境下功能強大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。</p><p> 1.2.1 Visual Basic的特點</p><p> 總的來說,Visual Basic
24、具有以下特點:</p><p><b> 1、可視化編程:</b></p><p> 用傳統(tǒng)程序設(shè)計語言設(shè)計程序時,都是通過編寫程序代碼來設(shè)計用戶界面,在設(shè)計過程中看不到界面的實際顯示效果,必須編譯后運行程序才能觀察。如果對界面的效果不滿意,還要回到程序中修改。有時候,這種編程-編譯-修改的操作可能要反復(fù)多次,大大影響了軟件開發(fā)效率。Visual Basic提供了
25、可視化設(shè)計工具,把Windows界面設(shè)計的復(fù)雜性“封裝”起來,開發(fā)人員不必為界面設(shè)計而編寫大量程序代碼。只需要按設(shè)計要求的屏幕布局,用系統(tǒng)提供的工具,在屏幕上畫出各種“部件”,即圖形對象,并設(shè)置這些圖形對象的屬性。Visual Basic自動產(chǎn)生界面設(shè)計代碼,程序設(shè)計人員只需要編寫實現(xiàn)程序功能的那部分代碼,從而可以大大提高程序設(shè)計的效率。</p><p> 1.2.2 面向?qū)ο蟮某绦蛟O(shè)計</p>
26、<p> 4.0版以后的Visual Basic支持面向?qū)ο蟮某绦蛟O(shè)計,但它與一般的面向?qū)ο蟮某绦蛟O(shè)計語言(C++)不完全相同。在一般的面向?qū)ο蟪绦蛟O(shè)計語言中,對象由程序代碼和數(shù)據(jù)組成,是抽象的概念;而Visual Basic則是應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法(OOP),把程序和數(shù)據(jù)封裝起來作為一個對象,并為每個對象賦予應(yīng)有的屬性,使對象成為實在的東西。在設(shè)計對象時,不必編寫建立和描述每個對象的程序代碼,而是用工具畫在界面上,V
27、isual Basic自動生成對象的程序代碼并封裝起來。每個對象以圖形方式顯示在界面上,都是可視的[4]。</p><p> 1.2.3結(jié)構(gòu)化程序設(shè)計語言</p><p> Visual Basic是在BASIC語言的基礎(chǔ)上發(fā)展起來的,具有高級程序設(shè)計語言的語句結(jié)構(gòu),接近于自然語言和人類的邏輯思維方式。Visual Basic語句簡單易懂,其編輯器支持彩色代碼,可自動進行語法錯誤檢查,
28、同時具有功能強大且使用靈活的調(diào)試器和編譯器[5]。</p><p> Visual Basic是解釋型語言,在輸入代碼的同時,解釋系統(tǒng)將高級語言分解翻譯成計算機可以識別的機器指令,并判斷每個語句的語法錯誤。在設(shè)計Visual Basic程序的過程中,隨時可以運行程序,而在整個程序設(shè)計好之后,可以編譯生成可執(zhí)行文件(.EXE),脫離Visual Basic環(huán)境,直接在Windows環(huán)境下運行[6][7]。<
29、/p><p> 1、事件驅(qū)動編程機制</p><p> Visual Basic通過事件來執(zhí)行對象的操作。一個對象可能會產(chǎn)生多個事件,每個事件都可以通過一段程序來響應(yīng)。例如,命令按鈕是一個對象,當(dāng)用戶單擊該按鈕時,將產(chǎn)生一個“單擊“(CLICK)事件,而在產(chǎn)生該事件時將執(zhí)行一段程序,用來實現(xiàn)指定的操作。[8]</p><p> 在用Visual Basic設(shè)計大型
30、應(yīng)用軟件時,不必建立具有明顯開始和結(jié)束的程序,而是編寫若干個微小的子程序,即過程。這些過程分別面向不同的對象,由用戶操作引發(fā)某個事件來驅(qū)動完成某種特定的功能,或者由事件驅(qū)動程序調(diào)用通用過程來執(zhí)行指定的操作,這樣可以方便編程人員,提高效率。[9]</p><p><b> 2、訪問數(shù)據(jù)庫</b></p><p> Visual Basic具有強大的數(shù)據(jù)庫管理功能,利
31、用數(shù)據(jù)控件和數(shù)據(jù)庫管理窗口,可以直接建立或處理Microsoft Access格式的數(shù)據(jù)庫,并提供了強大的數(shù)據(jù)存儲和檢索功能。同時,Visual Basic還能直接編輯和訪問其他外部數(shù)據(jù)庫,如dBASE,F(xiàn)oxPro,Paradox等,這些數(shù)據(jù)庫格式都可以用Visual Basic編輯和處理。[10]</p><p> Visual Basic提供開放式數(shù)據(jù)連接,即ODBC功能,可通過直接訪問或建立連接的方式使
32、用并操作后臺大型網(wǎng)絡(luò)數(shù)據(jù)庫,如SQL Server,Oracle等。在應(yīng)用程序中,可以使用結(jié)構(gòu)化查詢語言SQL數(shù)據(jù)標準,直接訪問服務(wù)器上的數(shù)據(jù)庫,并提供了簡單的面向?qū)ο蟮膸觳僮髦噶詈投嘤脩魯?shù)據(jù)庫訪問的加鎖機制和網(wǎng)絡(luò)數(shù)據(jù)庫的SQL的編程技術(shù),為單機上運行的數(shù)據(jù)庫提供了SQL網(wǎng)絡(luò)接口,以便在分布式環(huán)境中快速而有效地實現(xiàn)客戶/服務(wù)器(client/server)方案。[11]</p><p> 3、動態(tài)數(shù)據(jù)交換(DD
33、E)</p><p> 利用動態(tài)數(shù)據(jù)交換(Dynamic Data Exchange)技術(shù),可以把一種應(yīng)用程序中的數(shù)據(jù)動態(tài)地鏈接到另一種應(yīng)用程序中,使兩種完全不同的應(yīng)用程序建立起一條動態(tài)數(shù)據(jù)鏈路。當(dāng)原始數(shù)據(jù)變化時,可以自動更新鏈接的數(shù)據(jù)。Visual Basic提供了動態(tài)數(shù)據(jù)交換的編程技術(shù),可以在應(yīng)用程序中與其他Windows應(yīng)用程序建立動態(tài)數(shù)據(jù)交換,在不同的應(yīng)用程序之間進行通信。[13]</p>
34、<p> 4、對象的鏈接與嵌入(OLE)</p><p> 對象的鏈接與嵌入(OLE)將每個應(yīng)用程序都看做是一個對象(object),將不同的對象鏈接(link)起來,再嵌入(embed)某個應(yīng)用程序中,從而可以得到具有聲音、影像、圖像、動畫、文字等各種信息的集合式的文件。OLE技術(shù)是Microsoft公司對象技術(shù)的戰(zhàn)略,它把多個應(yīng)用程序合為一體,將每個應(yīng)用程序看做是一個對象進行鏈接和嵌入,是一種
35、應(yīng)用程序一體化的技術(shù)。利用OLE技術(shù),可以方便地建立復(fù)合式文檔(compound document),這種文檔由來自多個不同應(yīng)用程序的對象組成,文檔中的每個對象都與原來的應(yīng)用程序相聯(lián)系,并可執(zhí)行與原來應(yīng)用程序完全相同的操作。</p><p> 5、動態(tài)鏈接庫(DLL)</p><p> Visual Basic是一種高級程序設(shè)計語言,不具備低級語言的功能,對訪問機器硬件的操作不太容易實
36、現(xiàn)。但它可以通過動態(tài)鏈接庫技術(shù)將C/C++或匯編語言編寫的程序加入到Visual Basic應(yīng)用程序中,可以像調(diào)用內(nèi)部函數(shù)一樣調(diào)用其他語言編寫的函數(shù)[14]。此外,通過動態(tài)鏈接庫,還可以調(diào)用Windows應(yīng)用程序接口(API)函數(shù),實現(xiàn)SDK所具有的功能。</p><p> 1.2.4面向?qū)ο筌浖_發(fā)</p><p> 面向?qū)ο蟮某绦蛟O(shè)計(Object-Oriented Program
37、ming,簡記為OOP)是VB誕生的基礎(chǔ)。OOP立意于創(chuàng)建軟件重用代碼,具備更好地模擬現(xiàn)實世界環(huán)境的能力,這使它被公認為是自上而下編程的優(yōu)勝者。它通過給程序中加入擴展語句,把函數(shù)“封裝”進Windows編程所必需的“對象”中。面向?qū)ο蟮木幊陶Z言使得復(fù)雜的工作條理清晰、編寫容易。說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象并不與傳統(tǒng)程序設(shè)計和編程方法兼容,只是部分面向?qū)ο蠓炊鴷骨樾胃?。除非整個開發(fā)環(huán)境都是面向
38、對象的,否則對象產(chǎn)生的好處還沒有帶來的麻煩多。而Delphi是完全面向?qū)ο蟮?,這就使得VB成為一種觸手可及的促進軟件重用的開發(fā)工具,從而具有強大的吸引力</p><p> 1.2.5 VB中的錯誤處理</p><p> 系統(tǒng)運行難免有錯誤,比如說系統(tǒng)的可使用內(nèi)容不夠了,即使我們的代碼沒有錯誤,也將不能運行,但是如果不能運行就非法退出的話,我想對于客戶是不能接受的,至少也該來個系統(tǒng)內(nèi)存不
39、足的提示,給客戶一些好的建議,我想客戶肯定會非常滿意的。不知不覺就會提高你產(chǎn)品的形象,必定顧客是上帝,我們不可能一點都不顧客戶的感受。所以我們有必要在可能發(fā)生錯誤的地方加上我們錯誤處理代碼,來捕獲這種錯誤了。</p><p> VB的錯誤代碼處理非常的簡單,簡單的來說,就是遇見錯誤,忽略。另外一種是遇到錯誤跳出執(zhí)行。[12]我們來看看典型的兩種方式呀</p><p><b>
40、 比如有如下的代碼:</b></p><p> dim I as Integer</p><p> on error goto Proc_Exit</p><p> 在這里發(fā)生了錯誤,則會直接跳到Proc_Exit后面的代碼執(zhí)行,那么I=I+1就不執(zhí)行了</p><p><b> I=I+1</b>
41、</p><p> Proc_Exit:</p><p><b> 另外一段代碼:</b></p><p> dim I as Integer</p><p> on error Resume next</p><p> 在這里發(fā)生了錯誤,繼續(xù)執(zhí)行I=I+1的代碼</p>
42、<p><b> I=I+1</b></p><p> 兩種錯誤處理方法都是有不同的使用的地方的,就看我們?nèi)绾戊`活的掌握了。我在這個系統(tǒng)里主要采用的還是第一種的錯誤處理。</p><p><b> 5、系統(tǒng)配置</b></p><p> 為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運行,系統(tǒng)將在一部專
43、用管理機上做單機運行,應(yīng)該滿足以下的性能需求:</p><p><b> 硬件環(huán)境:</b></p><p> 處理器:Inter Pentium Ⅱ或更高。</p><p><b> 內(nèi)存:128MB。</b></p><p> 硬盤空間:40GB。</p><p>
44、; 光驅(qū):CD-ROM 52X。</p><p> 顯卡:VGA顯示適配器。</p><p><b> 軟件環(huán)境:</b></p><p> 操作系統(tǒng):Windows 98/ME/2000/XP/2003。</p><p><b> 2 問題的提出</b></p><p
45、> Visual Basic(VB)是計算機應(yīng)用基礎(chǔ)課程教學(xué)內(nèi)容的重要組成部分,屬于計算機編程方面的入門課程。VB語言程序算法可以大大提升程序編寫能力,是學(xué)習(xí)者繼續(xù)深入研究VB語言的基礎(chǔ)。但是VB程序算法概念復(fù)雜、規(guī)則繁多、內(nèi)容抽象。</p><p> 教師目前上課采用單一的案例教學(xué)法而且實質(zhì)仍是傳統(tǒng)的“灌注式”教學(xué)方法,學(xué)生的思想和思維被束縛在教師規(guī)定的思路和范圍中,學(xué)生在整個學(xué)習(xí)過程中,缺乏主動意識
46、,因而缺乏學(xué)習(xí)興趣。</p><p> 一個值得大家關(guān)注的問題是:教育研究表明,教育和訓(xùn)練方式得當(dāng)?shù)幕?,思維水平就會發(fā)展的特別快。反之,如果教育內(nèi)容乏味,措施無力或不當(dāng),就會貽誤發(fā)展。因此信息技術(shù)教師應(yīng)根據(jù)學(xué)生的思維特征,提出合適的教學(xué)要求。來給學(xué)生以挑戰(zhàn),采用不同的教學(xué)方法,將教育內(nèi)容變得有趣。教師應(yīng)幫助學(xué)生盡力消除主觀性缺陷,養(yǎng)成全面的,理性的思考問題的習(xí)慣。</p><p> 在
47、本教學(xué)動畫中,根據(jù)VB程序算法的難易程度以及使用頻率,動畫選取了漢諾塔類型算法。</p><p><b> 3 他人的研究成果</b></p><p> 網(wǎng)絡(luò)上有很多種類的算法課件,內(nèi)容較全面的只是用幻燈片做的課件,可幻燈片內(nèi)容太單一,沒有算法實現(xiàn)的過程。而用其他軟件做的實際上課中用不了,大部分是內(nèi)容缺乏,不能做到實現(xiàn)算法的全過程,只是能體現(xiàn)很好動畫的效果[15]
48、。筆者在網(wǎng)上搜索了關(guān)于漢諾塔算法設(shè)計的課件,其中較好的有金陵科技學(xué)院計算機科學(xué)與技術(shù)系( 本科),2004年4月做的一個課件。課件是用Flash做的,課件結(jié)構(gòu)清晰,整體動態(tài)效果,并對文字部分配音,并可以對1到5盤數(shù)的漢諾塔進行演示,另外還有1到5盤數(shù)的漢諾塔進行親自移動體驗,并有背景音樂和按鍵聲,是個很不錯的課件。但還有幾個缺點: 內(nèi)容太簡單,沒有和Visual Basic程序相結(jié)合,重點是在FLASH軟件。而這個課題的重點通過漢諾塔算
49、法的演示學(xué)習(xí)Visual Basic語言。在上述課件的基礎(chǔ)上,將漢諾塔求解過程細分化,內(nèi)容較全面,用動態(tài)的效果使學(xué)生激起學(xué)習(xí)興趣,而且介紹了漢諾塔算法的實現(xiàn)過程。</p><p><b> 3.1教學(xué)目標</b></p><p> 隨著多媒體技術(shù)的發(fā)展,在教育領(lǐng)域中越來越提倡采用生動、直觀的教學(xué)手段,尤其是計算機輔助教學(xué)軟件CAI(Computer Assiste
50、d Instruction)的出現(xiàn),大大提高了人們學(xué)習(xí)計算機知識的興趣。但是在學(xué)習(xí)程序設(shè)計中遇到的某些問題的數(shù)學(xué)模型,既抽象又復(fù)雜,初學(xué)者很難接受,往往對程序設(shè)計失去興趣。如查有相應(yīng)的模型能把整個問題以非常生動的形式演示出來,一定能收到較好的教學(xué)效果。</p><p> 信息技術(shù)學(xué)科的重點是讓學(xué)生初步了解信息技術(shù)的用途。對剛剛接觸Visual Basic可視化編程語言的學(xué)生來說,必要打好基礎(chǔ),掌握重點內(nèi)容。因此
51、新課標從重點掌握的內(nèi)容、教學(xué)過程和學(xué)生的學(xué)習(xí)欲望制定三維目標:“知識與能力”“、過程與方法”、“情感、態(tài)度與價值觀”[16]。 3.1.1 知識與技能</p><p> 3.1.1.1理解算法的概念</p><p> 計算機算法是指解決某一問題的運算序列?;蛘哒f計算機算法是問題求解過程的運算描述,一個計算機算法由有限條可完全機械地執(zhí)行的、有確定結(jié)果的指令組成。計算機算法可
52、分為兩大類,非數(shù)值運算法,非數(shù)值運算法。數(shù)值運算法的目的是求數(shù)值解,如:求方程的根、矩陣計算機、函數(shù)的定積分等。非數(shù)值運算算法應(yīng)用十分廣泛:圖書檢索、人事管理、文字處理等。常用的算法設(shè)計方法有迭代法、遞推法、遞歸法等;非數(shù)值算法有窮舉法、回溯法、遞歸法等。非數(shù)值算法有窮舉法、回溯法、貪心法、分治法等。</p><p> 一個算法必須具備以下性質(zhì): </p><p> ?。ǎ保┧惴ㄊ紫缺仨?/p>
53、是正確的,即對于任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預(yù)期的輸出。如果一個算法只是對合理的輸入才能得到預(yù)期的輸出,而在異常情況下卻無法預(yù)料輸出的結(jié)果,那么它就不是正確的。 </p><p> (2)算法必須是由一系列具體步驟組成的,并且每一步都能夠被計算機所理解和執(zhí)行,而不是抽象和模糊的概念。 </p><p> (3)每個步驟都有確定的執(zhí)行順序,即上一步在哪里,下一步
54、是什么,都必須明確,無二義性。 </p><p> ?。ǎ矗o論算法有多么復(fù)雜,都必須在有限步之后結(jié)束并終止運行,即算法的步驟必須是有限的。在任何情況下,算法都不能陷入無限循環(huán)中。 </p><p> 一個問題的解決方案可以有多種表達方式,但只有滿足以上4個條件的解才能稱之為算法。</p><p><b> 算法與程序的關(guān)系:</b><
55、;/p><p> 雖然算法與計算機程序密切相關(guān),但二者也存在區(qū)別:計算機程序是算法的一個實例,是將算法通過某種計算機語言表達出來的具體形式;同一個算法可以用任何一種計算機語言來表達。</p><p> 3.1.1.2理解遞歸算法的概念</p><p> 遞歸作為一種算法在程序設(shè)計語言中廣泛應(yīng)用.是指函數(shù)/過程/子程序在運行過程序中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)像
56、.</p><p> 程序調(diào)用自身的編程技巧稱為遞歸( recursion)。 </p><p> 一個過程或函數(shù)在其定義或說明中又直接或間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。用遞歸思想寫出
57、的程序往往十分簡潔易懂。 </p><p> 一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當(dāng)邊界條件不滿足時,遞歸前進;當(dāng)邊界條件滿足時,遞歸返回。 </p><p><b> 注意: </b></p><p> (1) 遞歸就是在過程或函數(shù)里調(diào)用自身; </p><p> (2) 在使用遞增歸策略時,
58、必須有一個明確的遞歸結(jié)束條件,稱為遞歸出口,否則將無限進行下去(死鎖)。</p><p> 遞歸算法一般用于解決三類問題:</p><p> (1)數(shù)據(jù)的定義是按遞歸定義的。(Fibonacci函數(shù))</p><p> (2)問題解法按遞歸算法實現(xiàn)。(回溯)</p><p> (3)數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。(樹的遍歷,圖的搜索)
59、</p><p><b> 遞歸的缺點:</b></p><p> 遞歸算法解題的運行效率較低。在遞歸調(diào)用的過程當(dāng)中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等。[17]</p><p> 3.1.1.3了解漢諾塔問題算法的實現(xiàn)</p><p> 我們把3根寶石柱分別命名為A、B、C
60、。最初有N個金盤放在A,需要把它們?nèi)堪匆?guī)則移動到B。</p><p> 當(dāng)N=1時,直接把金盤從A搬到B就可以了,1次成功。</p><p> 當(dāng)N≥2,那么需要利用C柱來過渡。我們假設(shè)已經(jīng)找到一種把N-1個金盤從一根柱搬到另外一根柱的方法,那么,我們只要把N-1個金盤從A搬到C,然后把最大的金盤從A搬到B,最后把C上的N一1個金盤搬到B就可以了??窟f歸的思想,我們輕而易舉地完成了整
61、個搬動。</p><p> 我們定義一個過程Hanoi(N,A,B,C),表示有N個金盤需要從A柱搬到B柱(以C柱為過渡)。那么完成它只需3步:</p><p> ?、?#160; Hanoi(N一1,A,C,B)它的意思是把A柱上的N一1個金盤搬到C柱;</p><p> ?、?#160;A→B 它的意思是把一個(最大的)金盤從A柱搬到B柱;
62、</p><p> ?、跦anoi(N-1,C,B,A)它的意思是把c柱上的N一1個金盤搬到B柱。</p><p><b> 知識補充說明:</b></p><p><b> 過程定義的格式:</b></p><p> Private Sub procedurename(arguments)&
63、lt;/p><p> statements</p><p><b> End Sub</b></p><p> 其中的procedurename是函數(shù)名,arguments是函數(shù)中的參數(shù)表,statements是過程中的代碼</p><p><b> 調(diào)用過程的格式:</b></p>
64、<p> Call procedurename(arguments)</p><p> Function函數(shù)與Sub過程的幾點區(qū)別:</p><p> Function函數(shù)可以返回一個值到調(diào)用程序。</p><p> ?、?#160;一般來說,讓較大的語句或表達式的右邊包含函數(shù)過程名和參數(shù)(returnvalue=function),這就調(diào)用了函
65、數(shù)。</p><p> ?、?與變量完全一樣,函數(shù)過程有數(shù)據(jù)類型,這就決定了返回值的類型。(如果沒有AS子句,缺省的數(shù)據(jù)類型為Variant。)。</p><p> ?、芙oprocedurename自身賦一個值,就可返回這個值。Function函數(shù)返回一個值可成為較大表達式的一部分。</p><p> 3.1.2過程與方法</p><p>
66、 能自己動手調(diào)試漢諾塔程序,掌握。</p><p> 通過實例展示使學(xué)生產(chǎn)生好奇心并對漢諾塔程序感興趣。</p><p> 考慮到教學(xué)對象對VB的認識還不夠深,前面學(xué)習(xí)了程序設(shè)計的各種結(jié)構(gòu),在學(xué)習(xí)程序設(shè)計各種結(jié)構(gòu)的應(yīng)用過程中,培養(yǎng)了用計算機編程解決現(xiàn)實中的問題,特別的學(xué)習(xí)循環(huán)語句的過程中,應(yīng)用了大量的循環(huán)結(jié)構(gòu)進行“遞推”算法。前一節(jié)課學(xué)習(xí)了如何自定義函數(shù),在此基礎(chǔ)上學(xué)習(xí)深入學(xué)習(xí)和體會
67、自定義函數(shù)的應(yīng)用。以遞推算法的逆向思維進行求解問題,在學(xué)習(xí)過程中體會遞歸算法的思想過程。</p><p><b> 3.3教學(xué)內(nèi)容分析</b></p><p> 此設(shè)計的主題是“遞歸算法的程序?qū)崿F(xiàn)”,前面學(xué)習(xí)了用解析法解決問題、窮舉法解決問題、在數(shù)組中查找數(shù)據(jù)、對數(shù)進行排序以及本節(jié)的前一小節(jié)知識點“什么是自定義函數(shù)”的學(xué)習(xí),在學(xué)習(xí)自定義函數(shù)的基礎(chǔ)上,這節(jié)課學(xué)習(xí)遞歸
68、算法的常見問題,漢諾塔問題的求解過程。</p><p><b> 3.4教學(xué)方法</b></p><p> 遞歸算法的實現(xiàn)思想是比較抽象,比較理論化的教學(xué)內(nèi)容。從Visual Basic培養(yǎng)學(xué)生的發(fā)現(xiàn)問題、分析問題、解決問題的意識與能力入手。知識主要是靠學(xué)生學(xué)會的,學(xué)習(xí)就是發(fā)生在學(xué)生頭腦的建構(gòu)。因此,教師必須明確學(xué)生是學(xué)習(xí)的主體,研究學(xué)生學(xué)習(xí)的真實心理活動,分析其
69、認識過程、機制及心智變化。確定教學(xué)方法。</p><p><b> 3.5教學(xué)過程設(shè)計</b></p><p><b> 3.6教學(xué)總結(jié)</b></p><p> 通過動態(tài)演示漢諾塔過程,使復(fù)雜的遞歸算法形象化,很容易掌握算法的執(zhí)行過程并吸引學(xué)生的注意力,再創(chuàng)設(shè)情境讓學(xué)生深刻感受到算法的思想其實就在他們身邊事物中體現(xiàn)
70、出來,通過這樣的設(shè)計,學(xué)生在學(xué)習(xí)掌握知識的時候往往不會感到枯燥乏味,可以調(diào)動他們的積極性,很輕松的接受新知識。</p><p><b> 4本課件詳細設(shè)計</b></p><p> 4.1 本課件模塊功能與實現(xiàn)</p><p> 使用遞歸調(diào)用函數(shù)的方法計算漢諾塔移動的過程可以在很多的程序教材上找到,這是一個很經(jīng)典的程序演示,但是用動畫的方
71、式演示出來需要考慮很多問題。在實現(xiàn)思路上有兩種方法,第一種方法是邊計算移動過程連描繪移動過程,但是由于在遞歸調(diào)用過程中進行演示需要中斷遞歸程序方法,控制會非常復(fù)雜,不利于實現(xiàn),因此采用另一種方法:先計算出整個移動過程并記錄下來,再通過演示記錄下來的過程描述漢諾塔的移動次序。程序通過遞歸調(diào)用函數(shù)計算機整個移動過程,并記錄在數(shù)組中,然后通過計時器的觸發(fā),按照一定時間間隔繪制整個移動過程。為了增加生動性,需要詳細的描述每一個盤片的移動過程,包
72、括盤片的向上移動、左右移動或向下移動。</p><p> 4.2 本課件模塊功能與實現(xiàn)</p><p> 在課件中窗體之間的調(diào)用是用click()、load()、timer()方法來完成的。 </p><p> 首頁包括了本節(jié)課所有的內(nèi)容, 包含漢諾塔問題演示區(qū)和下拉選項(用于選擇盤數(shù),分別為1、2、3、4、5),一個開始按鈕和信息提示區(qū)。</p>
73、<p><b> 圖4 課件</b></p><p> Option Explicit</p><p> Dim map(2, 5) As Integer</p><p> Const def = 32767</p><p> Private Sub Combo1_Click()</p&g
74、t;<p> Init Val(Combo1.Text) - 1</p><p><b> End Sub</b></p><p> Private Sub Command1_Click()</p><p> MoveHs (0)</p><p> Label2.Caption = "完
75、成!!"</p><p><b> End Sub</b></p><p> Private Sub Form_Load()</p><p> Dim m As Integer</p><p> For m = 1 To 5</p><p> Combo1.AddItem m&
76、lt;/p><p><b> Next</b></p><p> For m = 1 To 4</p><p> Load Shape1(m)</p><p><b> Next</b></p><p> Combo1.Text = "5"</
77、p><p> Combo1_Click</p><p><b> End Sub</b></p><p> Private Sub MoveHs(ByVal n As Integer)</p><p> Dim m As Integer</p><p> If n = Val(Combo1.
78、Text) - 1 Then</p><p> If Shape1(n).Left < Line1(1).X1 Then</p><p> MoveAction n, 1, 2</p><p> Delays (1)</p><p> MoveAction n, 2, 3</p><p> Delays
79、 (1)</p><p> ElseIf Shape1(n).Left > Line1(2).X1 Then</p><p> MoveAction n, 3, 2</p><p> Delays (1)</p><p> MoveAction n, 2, 1</p><p> Delays (1)&l
80、t;/p><p><b> End If</b></p><p><b> Exit Sub</b></p><p><b> End If</b></p><p> If Shape1(n).Left < Line1(1).X1 Then</p>&l
81、t;p> MoveHs (n + 1)</p><p> MoveAction n, 1, 2</p><p> Delays (1)</p><p> MoveHs (n + 1)</p><p> MoveAction n, 2, 3</p><p> Delays (1)</p>
82、<p> MoveHs (n + 1)</p><p> ElseIf Shape1(n).Left > Line1(2).X1 Then</p><p> MoveHs (n + 1)</p><p> MoveAction n, 3, 2</p><p> Delays (1)</p><p&
83、gt; MoveHs (n + 1)</p><p> MoveAction n, 2, 1</p><p> Delays (1)</p><p> MoveHs (n + 1)</p><p><b> End If</b></p><p><b> End Sub<
84、;/b></p><p> Private Sub Delays(ByVal n As Integer)</p><p> Dim Tstart As Long</p><p> Dim Tend As Long</p><p> Tstart = Timer</p><p> Do While Tim
85、er - Tstart < n</p><p><b> DoEvents</b></p><p><b> Loop</b></p><p><b> End Sub</b></p><p> Private Sub MoveAction(ByVal n As
86、Integer, ByVal s As Integer, ByVal e As Integer)</p><p> Dim locx As Single, locy As Single</p><p> Dim m As Integer</p><p> For m = 0 To 5</p><p> If map(e - 1, m)
87、 = def Then</p><p> Clearmap (n)</p><p> map(e - 1, m) = n</p><p><b> Exit For</b></p><p><b> End If</b></p><p><b> Next
88、</b></p><p> locx = Line1(e).X1 - Shape1(n).Width / 2</p><p> locy = Line1(0).Y1 + Shape1(n).Height * (m + 1)</p><p> Shape1(n).Move locx, locy</p><p> Label2
89、.Caption = "第" & CStr(Val(Mid(Label2.Caption, 2, 1)) + 1) & "步"</p><p><b> DoEvents</b></p><p><b> End Sub</b></p><p> Private
90、 Sub Clearmap(ByVal x As Integer)</p><p> Dim m As Integer, n As Integer</p><p> For m = 0 To 2</p><p> For n = 0 To 5</p><p> If map(m, n) = x Then</p><
91、p> map(m, n) = def</p><p><b> Exit Sub</b></p><p><b> End If</b></p><p><b> Next</b></p><p><b> Next</b></p&g
92、t;<p><b> End Sub</b></p><p> Private Sub Init(ByVal num As Integer)</p><p> Dim m As Integer, n As Integer</p><p> Me.Width = 10000</p><p> Me.
93、Height = 6000</p><p> For m = 1 To 4</p><p> Shape1(m).Visible = False</p><p><b> Next</b></p><p> Picture1.Width = 8000</p><p> Picture1.
94、Height = 5000</p><p> Picture1.Scale (0, Picture1.Height)-(Picture1.Width, 0)</p><p> With Line1(0)</p><p><b> .X1 = 0</b></p><p> .Y1 = Picture1.Height
95、 * 0.05</p><p> .X2 = Picture1.Width</p><p><b> .Y2 = .Y1</b></p><p><b> End With</b></p><p> With Line1(1)</p><p> .X1 = Pict
96、ure1.Width * 0.2</p><p> .Y1 = Picture1.Height * 0.05</p><p><b> .X2 = .X1</b></p><p> .Y2 = Picture1.Height * 0.9</p><p><b> End With</b>&l
97、t;/p><p> With Line1(2)</p><p> .X1 = Picture1.Width * 0.5</p><p> .Y1 = Picture1.Height * 0.05</p><p><b> .X2 = .X1</b></p><p> .Y2 = Pictur
98、e1.Height * 0.9</p><p><b> End With</b></p><p> With Line1(3)</p><p> .X1 = Picture1.Width * 0.8</p><p> .Y1 = Picture1.Height * 0.05</p><p&g
99、t;<b> .X2 = .X1</b></p><p> .Y2 = Picture1.Height * 0.9</p><p><b> End With</b></p><p> With Shape1(0)</p><p> .Width = 1600</p><
100、;p> .Height = 400</p><p> .Left = Line1(1).X1 - .Width / 2</p><p> .Top = Line1(0).Y1 + .Height</p><p><b> End With</b></p><p> For m = 1 To num<
101、/p><p> With Shape1(m)</p><p> .Width = Shape1(m - 1).Width - 300</p><p> .Height = 400</p><p> .Left = Line1(1).X1 - .Width / 2</p><p> .Top = Shape1(m
102、- 1).Top + .Height</p><p> .Visible = True</p><p><b> End With</b></p><p><b> Next</b></p><p> For m = 0 To 2</p><p> For n =
103、0 To 5</p><p> map(m, n) = def</p><p><b> Next</b></p><p><b> Next</b></p><p> For m = 0 To num</p><p> map(0, m) = m</p>
104、;<p><b> Next</b></p><p><b> End Sub</b></p><p> 4.3本課件知識點部分</p><p> 在漢諾塔問題中,每次只能搬動一個盤,同時被搬動的盤只能放在另外兩個柱子中的一個柱子上,并且所有柱子上的盤子只能是從小到大。按照遞歸展開的思想,先考慮把規(guī)模
105、為n的問題化解為規(guī)模為(n-1)的問題。</p><p> 5.本課件解決問題的可能性</p><p> ?。?)本課件是自學(xué)課件,本課件為引起學(xué)生的興趣,主要按鈕都是動態(tài)顯示的,因此減少缺乏學(xué)習(xí)興趣的現(xiàn)狀。</p><p> ?。?)在本課件講解漢諾塔程序時運用了動態(tài)的演示,使學(xué)生不但理解漢諾塔的過程,也能顯示Visual Basic的強大功能,因而使學(xué)生對程序
106、感興趣。</p><p> ?。?)本課件把漢諾塔內(nèi)容細分成1至5個盤數(shù),學(xué)生一目了然,很容易理解各個重點內(nèi)容,程序部分都標注了,所以很容易理解漢諾塔問題。</p><p><b> 6.結(jié)束語</b></p><p> 由于Visual Basic是學(xué)生第一次接觸的程序設(shè)計語言,他們對“計算機語言”的思維方式還不太習(xí)慣,對他們而言Visu
107、al Basic編程環(huán)境和編程過程本身就具有復(fù)雜性,所以只要是學(xué)生首次接觸的控件,語句,語法就是一個復(fù)雜的問題。關(guān)于有意義的問題情境,在這里筆者認為有三層含義:一是符合學(xué)生當(dāng)前認知特點,學(xué)生感興趣的問題,二是能培養(yǎng)學(xué)生分析問題、解決問題能力的問題,有益于培養(yǎng)學(xué)生交流、協(xié)作能力的問題,三是有利于不同學(xué)習(xí)風(fēng)格學(xué)習(xí)能力的學(xué)生進行不同程度挖掘進行不同層次學(xué)習(xí)的問題。</p><p><b> 參考文獻<
108、/b></p><p> 1.牛又奇.孫建國.VisualBASIC程序設(shè)計教程[M].蘇州:蘇州大學(xué)出版社.2007. </p><p> 2.霍紅衛(wèi).算法設(shè)計與分析[M].西安:西安電子科技大學(xué)出版社.2005. </p><p> 3.苗英愷.遞歸程序的教學(xué)探討[J].電腦知識與技術(shù),2008.2. </p><p> 4
109、.符策銳.基于Visual Basic的遞歸模擬演示程序的實現(xiàn)[J].電腦開發(fā)與應(yīng)用,2008.5</p><p> 5.田俊華、李藝. “程序設(shè)計”課程目標的認知結(jié)構(gòu)解析. “課程教材教法”2005年12期</p><p> 6.劉新民.Visual Basic 6.0程序設(shè)計.清華大學(xué)出版社.2004</p><p> 7.羅朝盛.Visual Basic
110、 程序設(shè)計教程.人民郵電出版社.2005</p><p> 8.張書云、姜淑菊.程序設(shè)計教學(xué)方法探悉[J]計算機教育.2005.5</p><p> 9 劉萌,周學(xué)明,郭安源.《Visual Basic企業(yè)辦公系統(tǒng)開發(fā)實例導(dǎo)航》.人民郵電出版社.2003</p><p> 10 求是科技.《Visual Basic 6.0 數(shù)據(jù)庫開發(fā)技術(shù)與工程實踐》.人民郵電
111、出版社.2004</p><p> 11張瀚文.齊錦剛,《Visual Basic數(shù)據(jù)庫系統(tǒng)開發(fā)實例與解析》.高等教育出版社.2003</p><p> 12 劉瑞新,汪遠征.《Visual Basic程序設(shè)計教程》.機械工業(yè)出版社.2001</p><p> 13 孟小峰,王珊.《數(shù)據(jù)庫系統(tǒng)導(dǎo)論》.機械工業(yè)出版社.2000</p><p&
112、gt; 14 Hector Garcia-Molina/Jeffrey.D.ullman,.《Database system inplementation》 .機械工業(yè)出版社</p><p> 15 C.J.Date.《An introduction to Database System(Seventh Edition)》.機械工業(yè)出版社</p><p> 16 姚巍.《Visual
113、 Basic數(shù)據(jù)庫開發(fā)及工程實例》.人民郵電出版社</p><p> 17伍俊良.《VB課程設(shè)計與系統(tǒng)開發(fā)安例》.清華大學(xué)出版社</p><p><b> 文獻綜述</b></p><p> 梵塔動畫演示的設(shè)計與實現(xiàn)</p><p><b> 前言部分</b></p><
114、p><b> 寫作目的: </b></p><p> 介紹了應(yīng)用VB語言實現(xiàn)動畫演示將各個梵塔中各個盤子之間的移動,能夠演示梵塔實現(xiàn)的每個步驟。讓人從視覺上和思維上建立起梵塔的實現(xiàn)形式。方便大家理解其遞歸思想,能夠加深對遞歸算法的理解和記憶。讓大家能夠?qū)τ嬎銠C在動畫的實現(xiàn)上更深刻的了解和實用。</p><p> 有關(guān)概念、綜述范圍:</p>
115、<p> 什么是動畫:所謂動畫,是指利用人的視覺殘留特性使連續(xù)播放的靜態(tài)畫面相互銜接而形成的動態(tài)效果。計算機動畫是由傳統(tǒng)的卡通動畫發(fā)展起來的。在傳統(tǒng)卡通動畫的制作過程中,導(dǎo)演首先要將劇本分成一個個分鏡頭,然后由高級動畫師確定各分鏡頭的角色造型,并繪制出一些關(guān)鍵時刻各角色的造型。最后,由助理動畫師根據(jù)這些關(guān)鍵形狀繪制出從一個關(guān)鍵形狀到下一個關(guān)鍵形狀的自然過渡,并完成填色及合成工作。最后,依次拍攝這一幀幀連續(xù)畫面,就得到了一段動
116、畫片段。 </p><p> 什么是梵塔:梵塔也叫漢諾塔,梵塔問題起源于中東地區(qū)的一個古老的傳說:在梵城(Hana)地下有一個僧侶的秘密組織,他們有3個大型的塔柱,左邊的塔柱上由方到小套著64個金盤。僧侶們的工作是要把這64個金盤從左邊塔柱轉(zhuǎn)移到右邊塔柱上去。但轉(zhuǎn)移過程有規(guī)定的:每次只能搬動一只盤子,盤子只能在3個塔柱上安放,不允許放在地上;2、在每個塔柱上,只允許把小盤子疊在大盤上,反之不允許。</p&
117、gt;<p> 什么是遞歸算法:一個過程或函數(shù)在其定義或說明中又直接或間接調(diào)用自身的一種方法,它通常把一個大型復(fù)雜的問題層層轉(zhuǎn)化為一個與原問題相似的規(guī)模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復(fù)計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當(dāng)邊界條件不滿足時,遞歸前進;當(dāng)邊界條件滿足時,遞歸返回。<
118、;/p><p> 什么是VB:VB是Visual Basic的簡稱,是由美國微軟公司于1991年開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言,可用于開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。它簡單易學(xué)、效率高,且功能強大可以與 Windows 專業(yè)開發(fā)工具SDK相媲美。在Visual Basic環(huán)境下,利用事件驅(qū)動的編程機制、新穎易用的可視化設(shè)計工具,使用Windows內(nèi)部的廣泛應(yīng)用程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 梵塔動畫演示的設(shè)計與實現(xiàn)【文獻綜述】
- 梵塔動畫演示的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計】
- 梵塔動畫演示的設(shè)計與實現(xiàn)【開題報告】
- gps儀的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- linux shell的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 泛洪攻擊設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 基于matlab webserver的數(shù)值計算算法演示與實現(xiàn)【開題報告+文獻綜述+畢業(yè)設(shè)計】
- 網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計與實現(xiàn)【開題報告+文獻綜述+畢業(yè)設(shè)計】
- 圖片文字提取系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 網(wǎng)上虛擬試衣系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 高校智能門禁系統(tǒng)的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 畢業(yè)設(shè)計開題報告+文獻綜述.doc
- 在線判題系統(tǒng)設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 大學(xué)選課系統(tǒng)的分析、設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 校園軟件屋的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 空調(diào)的設(shè)計與開發(fā)【開題報告+文獻綜述+畢業(yè)設(shè)計】
- 文本表示模型的研究與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 畢業(yè)設(shè)計開題報告+文獻綜述.doc
- 基于.net短信發(fā)送平臺的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
- 網(wǎng)絡(luò)微博系統(tǒng)的設(shè)計與模擬實現(xiàn)【畢業(yè)設(shè)計+開題報告+文獻綜述】
評論
0/150
提交評論