




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Chapter 15VB程式進(jìn)階15-1 結(jié)構(gòu)化程式設(shè)計(jì)的概念15-2 VB中的選擇結(jié)構(gòu)15-3 VB中的重覆結(jié)構(gòu)15-4 認(rèn)識(shí)陣列第1頁,共69頁。對(duì)於程序式語言來說,在開發(fā)時(shí)會(huì)從上而下將程式分解成許多模組(即一個(gè)個(gè)的小程式),並使每一模組分別負(fù)責(zé)一件獨(dú)立的工作,如此即可簡(jiǎn)化大型程式的複雜性,這樣的設(shè)計(jì)觀念稱為結(jié)構(gòu)化程式設(shè)計(jì)(structured programming)。15-1結(jié)構(gòu)化程式設(shè)計(jì)的概念第2頁,共69頁。由於這些模組都只有一個(gè)入口以及一個(gè)出口,不但有助於程式偵錯(cuò),而且程式整體流程也會(huì)變得更加容易閱讀與修改。其中每一模組通常由下列三種結(jié)構(gòu)組成:循序結(jié)構(gòu)選擇結(jié)構(gòu)重複結(jié)構(gòu)15-1結(jié)構(gòu)
2、化程式設(shè)計(jì)的概念第3頁,共69頁。舉出三種基本結(jié)構(gòu)的例子想一想,日常生活中有那些事情符合以上介紹的三種結(jié)構(gòu)?和同學(xué)討論一下,並分別舉出一個(gè)例子?!緟⒖即鸢浮?. 循序結(jié)構(gòu):到醫(yī)院看病時(shí)要依序掛號(hào)候診醫(yī)生診療開處方批價(jià)領(lǐng)藥。15-1結(jié)構(gòu)化程式設(shè)計(jì)的概念第4頁,共69頁。2. 選擇結(jié)構(gòu):速食店的員工詢問顧客要點(diǎn)幾號(hào)套餐,並依顧客所點(diǎn)之餐號(hào)準(zhǔn)備相關(guān)餐點(diǎn)。3. 重複結(jié)構(gòu):電玩遊戲終結(jié)時(shí)會(huì)詢問是否再玩一次,若選擇是即可繼續(xù)遊戲關(guān)卡。仔細(xì)想想,有些事情是不是必須由數(shù)種結(jié)構(gòu)組合才能完成?的確如此,事實(shí)上寫程式也是類似的狀況。15-1結(jié)構(gòu)化程式設(shè)計(jì)的概念第5頁,共69頁。如果明天不下雨,我就要出去玩;凡消費(fèi)滿
3、1000元就可享9折優(yōu)惠,2000元以上8折,3000元以上7折。日常生活中充滿這類選擇性的問題,我們必須根據(jù)現(xiàn)實(shí)條件選擇一個(gè)最適合的途徑。15-2VB中的選擇結(jié)構(gòu)第6頁,共69頁。撰寫程式時(shí)也是一樣,如果程式只能由上而下循序執(zhí)行而不具備選擇的能力,將會(huì)使程式的功用受到限制。因此VB提供了If . . .Then. . .Else以及Select.Case二種選擇結(jié)構(gòu),藉此可以執(zhí)行各種判斷並執(zhí)行相關(guān)處理,使程式撰寫更加靈活有彈性。15-2VB中的選擇結(jié)構(gòu)第7頁,共69頁。If.Then.Else 結(jié)構(gòu)顧名思義就是如果就否則的意思。例如If 明天是個(gè)好天氣 Then 去陽明山賞楓 Else 在家
4、看電視或是If 分?jǐn)?shù) = 60 Then Print 成績(jī)及格 Else Print 成績(jī)不及格等,都是 If.Then.Else 結(jié)構(gòu)的例子。15-2.1 具判斷力的 If.Then.Else第8頁,共69頁。15-2.1 具判斷力的 If.Then.Else第9頁,共69頁。計(jì)算工讀生薪水(IF.Then.Else)請(qǐng)撰寫一個(gè)計(jì)算工讀生薪水的程式:當(dāng)工作時(shí)數(shù)小於等於40小時(shí),每小時(shí)的薪水為100元;若超過40小時(shí),則超過的部分每小時(shí)再加發(fā)20元加班費(fèi),如下圖?!竟?fàn)例檔案:工讀生薪水.frm】15-2.1 具判斷力的 If.Then.Else第10頁,共69頁。15-2.1 具判斷力的 If
5、.Then.Else第11頁,共69頁。應(yīng)用 If.Then.Else 敘述可以處理許多單純的選擇性問題,但有時(shí)候我們的設(shè)定條件可能不只一個(gè),例如如果有很多人就叫Pizza來吃,如果3到4個(gè)就點(diǎn)炸雞全家餐,如果只有一個(gè)人就叫便當(dāng),或是如果分?jǐn)?shù)在80分以上為優(yōu)秀,介於60到80分為尚可,60以下為極待加強(qiáng),這時(shí)就必須要使用巢狀 If.Then.Else 敘述才能解決。15-2.2 巢狀 If.Then.Else第12頁,共69頁。15-2.2 巢狀 If.Then.Else第13頁,共69頁。15-2.2 巢狀 If.Then.Else第14頁,共69頁。15-2.2 巢狀 If.Then.El
6、se第15頁,共69頁。成績(jī)分級(jí)(巢狀I(lǐng)F.Then.Else)請(qǐng)撰寫一個(gè)成績(jī)分級(jí)的程式:使用者透過輸入方塊輸入成績(jī),若高於80分則以訊息方塊顯示優(yōu)秀,若介於6079之間則顯示尚可,59分以下則顯示極待加強(qiáng)?!竟?fàn)例檔案:成績(jī)分級(jí).frm】15-2.2 巢狀 If.Then.Else第16頁,共69頁。15-2.2 巢狀 If.Then.Else第17頁,共69頁。15-2.2 巢狀 If.Then.Else第18頁,共69頁。求最大值(巢狀I(lǐng)F.Then.Else)請(qǐng)撰寫一個(gè)求最大值的程式:使用者透過輸入方塊輸入三個(gè)數(shù)字A、B、C,程式處理後再以訊息方塊顯示三者的最大值。【範(fàn)例檔案:求最大值.
7、frm】15-2.2 巢狀 If.Then.Else第19頁,共69頁。15-2.2 巢狀 If.Then.Else第20頁,共69頁。15-2.2 巢狀 If.Then.Else第21頁,共69頁。假設(shè)某一運(yùn)動(dòng)比賽需以年齡區(qū)分為10級(jí),雖然我們可以使用巢狀的 If. Then.Else敘述來完成,但這會(huì)使程式變得十分複雜混亂,而且執(zhí)行上也比較沒有效率。為此Visual Basic 提供了 Select.Case 敘述,可作為這類多重選擇的問題的解決方案。15-2.3 多重選擇 Select.Case第22頁,共69頁。15-2.3 多重選擇 Select.Case第23頁,共69頁。15-2
8、.3 多重選擇 Select.Case第24頁,共69頁。15-2.3 多重選擇 Select.Case第25頁,共69頁。改寫成績(jī)分級(jí)(Select.Case)請(qǐng)利用 Select . . .Case 改寫成績(jī)分級(jí)的程式,使成績(jī)區(qū)分為更多等級(jí)(100、9799、8096、6079、059、其他),並分別顯示不同的回應(yīng)訊息。【範(fàn)例檔案:改寫成績(jī)分級(jí).frm】15-2.3 多重選擇 Select.Case第26頁,共69頁。15-2.3 多重選擇 Select.Case第27頁,共69頁。15-2.3 多重選擇 Select.Case第28頁,共69頁。重複結(jié)構(gòu)又稱迴圈,不需要一直撰寫重複的程式
9、碼,就可以重複執(zhí)行某段程式,而且可以很方便地設(shè)定起始或停止的條件,並有效地控制程式執(zhí)行的流程。VB中主要提供 For.Next 以及 Do.Loop 二種重複,以下亦將簡(jiǎn)單介紹其觀念與應(yīng)用方式。15-3結(jié)VB中的重覆結(jié)構(gòu)第29頁,共69頁。當(dāng)程式中某個(gè)敘述區(qū)段要重覆執(zhí)行的次數(shù)是固定且可計(jì)數(shù)時(shí)(例如重複執(zhí)行某程式片段100次),這類已知起始值,每執(zhí)行一次增減多少,一直到超過或等於終止值才停止的問題,都可以使用 For.Next 敘述。15-3.1 計(jì)數(shù)式迴圈For.Next第30頁,共69頁。15-3.1 計(jì)數(shù)式迴圈For.Next第31頁,共69頁。計(jì)算1到100的總和(For.Next)請(qǐng)利
10、用 For.Next 敘述撰寫一個(gè)計(jì)算1到100總和的程式?!竟?fàn)例檔案:1到100總和.frm】15-3.1 計(jì)數(shù)式迴圈For.Next第32頁,共69頁。在這個(gè)程式中,我們首先宣告一個(gè)整數(shù)變數(shù) Total 用以存放加總後的結(jié)果,並藉由 Total = 0 設(shè)定其初始值為 0,然後省略 STEP 敘述表示增加值為 1,即控制變數(shù) i 每次加 1 直到 i = 100,所以這個(gè)迴圈會(huì)執(zhí)行100次。1. 程式碼15-3.1 計(jì)數(shù)式迴圈For.Next第33頁,共69頁。2. 由於變數(shù) i 每次加 1,所以 Total = Total + i 相當(dāng)於所以便能達(dá)到我們想要計(jì)算1 + 2 + 3 + .
11、 + 100之值的目的。15-3.1 計(jì)數(shù)式迴圈For.Next第34頁,共69頁。計(jì)算1到100的奇數(shù)和(For.Next增加值為2)請(qǐng)利用 For.Next 敘述撰寫一個(gè)計(jì)算1到100奇數(shù)和的程式?!竟?fàn)例檔案:1到100奇數(shù)和.frm】15-3.1 計(jì)數(shù)式迴圈For.Next第35頁,共69頁。這個(gè)程式唯一的差別在於,為了只計(jì)算奇數(shù)之和,變數(shù) i 必需每次加 2,這可以利用程式碼 For i=1 To 100 Step 2 來達(dá)成,如此 Total = Total + i 便相當(dāng)於所以便能達(dá)到我們想要計(jì)算1到100之奇數(shù)和的目的。15-3.1 計(jì)數(shù)式迴圈For.Next第36頁,共69頁。
12、For.Next 的初始值與增加值這個(gè)範(fàn)例說明 For.Next 敘述的初始值沒有正負(fù)限制,增加值也可以是非整數(shù)。【範(fàn)例檔案:初始值與增加值.frm】15-3.1 計(jì)數(shù)式迴圈For.Next第37頁,共69頁。一個(gè) For.Next 結(jié)構(gòu)之中也可以再包含一個(gè)或數(shù)個(gè) For.Next 結(jié)構(gòu),我們稱之為巢狀 For.Next。下面的例子,便是利用二層迴圈建立的九九乘法表。九九乘法表(巢狀 For.Next)請(qǐng)利用使用巢狀 For . . .Next 結(jié)構(gòu)在表單上建立九九乘法表?!竟?fàn)例檔案:九九乘法表.frm】15-3.2 巢狀 For.Next第38頁,共69頁。由程式中可以看出,當(dāng) i = 1
13、時(shí),j 依序由 1 至 9,當(dāng) i = 2 時(shí),j 一樣依序由 1 至 9,如此重複下去直到 i = 9。另外程式中二個(gè)Print指令的目的是,當(dāng) j 跑完一個(gè)輪迴時(shí)(剛好是一行),讓游標(biāo)換行並空一行。15-3.2 巢狀 For.Next第39頁,共69頁。15-3.2 巢狀 For.Next第40頁,共69頁。條件式迴圈可重覆執(zhí)行某一程式區(qū)段,至於重覆的次數(shù)則視設(shè)定條件是否符合而定。其中:前測(cè)式迴圈:先作測(cè)試再?zèng)Q定是否執(zhí)行迴圈。後測(cè)式迴圈:先執(zhí)行一次迴圈敘述後再行判斷是否重覆執(zhí)行。15-3.3 條件式迴圈 Do.Loop第41頁,共69頁。15-3.3 條件式迴圈 Do.Loop第42頁,共
14、69頁。15-3.3 條件式迴圈 Do.Loop第43頁,共69頁。計(jì)算1到100的總和(Do While.Loop)請(qǐng)利用 Do While.Loop 敘述撰寫一個(gè)計(jì)算1到100總和的程式。【範(fàn)例檔案:1到100總和DoWhileLoop.frm】15-3.3 條件式迴圈 Do.Loop第44頁,共69頁。由於前測(cè)式迴圈的條件式為 Do While i = 100,所以迴圈內(nèi)的敘述會(huì)一直執(zhí)行直到 i = 101 為止。當(dāng) i = 1 100 時(shí),會(huì)執(zhí)行迴圈內(nèi)的敘述,並逐一將 i 的值加到變數(shù) Total 中,也就是計(jì)算1到100的總和。下面範(fàn)例也是同樣的原理,只是我們將條件式改為 Do Un
15、til i = 101?!竟?fàn)例檔案:1到100總和 DoWhileLoop.frm】15-3.3 條件式迴圈 Do.Loop第45頁,共69頁。15-3.3 條件式迴圈 Do.Loop第46頁,共69頁。15-3.3 條件式迴圈 Do.Loop第47頁,共69頁。15-3.3 條件式迴圈 Do.Loop第48頁,共69頁。下面是二個(gè)後測(cè)式迴圈的簡(jiǎn)單範(fàn)例。此外,仔細(xì)觀察這四個(gè)例子會(huì)發(fā)現(xiàn),前測(cè)試迴圈與後測(cè)試迴圈最大的差異處在於:前測(cè)試迴圈:可能連一次也不執(zhí)行迴圈內(nèi)的敘述。後測(cè)試迴圈:最少會(huì)執(zhí)行迴圈內(nèi)的敘述一次。15-3.3 條件式迴圈 Do.Loop第49頁,共69頁。計(jì)算1到100的總和(Do.
16、Loop While)請(qǐng)利用 Do.Loop While 敘述撰寫一個(gè)計(jì)算1到100總和的程式,如下圖?!竟?fàn)例檔案:1到100總和DoLoopWhile.frm】15-3.3 條件式迴圈 Do.Loop第50頁,共69頁。計(jì)算1到100的總和(Do.Loop Until)利用 Do.Loop Until 敘述撰寫一個(gè)計(jì)算1到100總和的程式?!竟?fàn)例檔案:1到100總和DoLoopUntil.frm】15-3.3 條件式迴圈 Do.Loop第51頁,共69頁。當(dāng)程式中需要儲(chǔ)存一個(gè)資料時(shí),我們可以指定一個(gè)變數(shù)來儲(chǔ)存它,但若要同時(shí)儲(chǔ)存或處理20個(gè)甚至更多相同性質(zhì)的資料時(shí),便可考慮改以陣列(array
17、)的方式來儲(chǔ)存與使用資料。15-4認(rèn)識(shí)陣列第52頁,共69頁。一維陣列可看做是一系列有順序的記憶體空間,當(dāng)我們宣告一個(gè)一維陣列時(shí),程式會(huì)保留記憶體中的一塊位置並將之規(guī)畫為有順序的記憶單元,程式設(shè)計(jì)師則可透過陣列索引(index)來指定要存取的記憶空間。15-4.1 一維陣列第53頁,共69頁。例如當(dāng)我們要在VB中儲(chǔ)存10筆整數(shù)資料時(shí),只要宣告一個(gè)整數(shù)陣列即可,並不需要宣告10個(gè)名稱不同的整數(shù)變數(shù)。15-4.1 一維陣列第54頁,共69頁。15-4.1 一維陣列第55頁,共69頁。15-4.1 一維陣列第56頁,共69頁。15-4.1 一維陣列第57頁,共69頁。氣泡排序?qū)嵶鳎ㄒ痪S陣列的應(yīng)用)請(qǐng)
18、開啟未完成的範(fàn)例檔案氣泡排序.vbp,並為排序鈕撰寫事件程序,使其當(dāng)使用者輸入5個(gè)數(shù)字並按下排序鈕後,程式會(huì)顯示排序後的數(shù)字。15-4.1 一維陣列第58頁,共69頁。15-4.1 一維陣列第59頁,共69頁。15-4.1 一維陣列第60頁,共69頁。二維陣列是一種以表格形式來看待資料的資料結(jié)構(gòu),我們可以把二維陣列想像成一個(gè)由行和列所組成的表格,其中列便代表陣列中的水平分割,而行則表示陣列中的垂直的分割。15-4.2 二維陣列第61頁,共69頁。15-4.2 二維陣列第62頁,共69頁。15-4.2 二維陣列第63頁,共69頁。循序結(jié)構(gòu)是指從上而下,依序執(zhí)行的結(jié)構(gòu)。舉例來說,當(dāng)我們寫一個(gè)計(jì)算購書總價(jià)的程式時(shí),依序輸入書本定價(jià)、輸入數(shù)量,然後便得到總價(jià)為(書本定價(jià)數(shù)量)。15-1結(jié)構(gòu)化程式設(shè)計(jì)的概念第64頁,共69頁。選擇結(jié)構(gòu)測(cè)試某一條件並按其結(jié)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑項(xiàng)目合同范本:勘察與設(shè)計(jì)
- 山地旅游資源開發(fā)承包合同
- 鋼材采購合同樣本格式
- 餐飲服務(wù)與廚師雇傭合同范文
- 涂料供應(yīng)與采購合同范本
- 合同檔案寄存確認(rèn)書
- 貸款合同模板:個(gè)人貸款標(biāo)準(zhǔn)合同范本
- 銀行與公司短期貸款合同范例
- 氣動(dòng)系統(tǒng)培訓(xùn)課件
- 海豚培訓(xùn)課件下載
- 妊娠期用藥安全課件
- 月子會(huì)所護(hù)理人員禮儀
- GB/T 44958-2024化工設(shè)備安全管理規(guī)范
- 無人機(jī)行業(yè)調(diào)查研究報(bào)告
- 2025年軋鋼原料工技能考試題庫
- 大學(xué)生考研規(guī)劃
- 2022版藝術(shù)新課標(biāo)解讀心得(課件)小學(xué)美術(shù)
- 四川政采評(píng)審專家入庫考試基礎(chǔ)題復(fù)習(xí)試題
- 車輛采購論證方案
- 《ZARA服裝品牌策劃》課件
- 員工賠償金保密協(xié)議書(2篇)
評(píng)論
0/150
提交評(píng)論