教學(xué)材料《VB導(dǎo)論》-第4章_第1頁
教學(xué)材料《VB導(dǎo)論》-第4章_第2頁
教學(xué)材料《VB導(dǎo)論》-第4章_第3頁
教學(xué)材料《VB導(dǎo)論》-第4章_第4頁
教學(xué)材料《VB導(dǎo)論》-第4章_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

4.1順序結(jié)構(gòu)程序的編寫離不開算法的支持,下面介紹算法的基本概念。算法是解決一個問題采取的方法和步驟的描述。算法具有有窮性、確定性、有0個或多個輸入、有一個或多個輸出、有效性5個特點。算法可以用自然語言、流程圖、偽代碼、程序語言等方法表示。其中最常見的是使用流程圖來描述算法。流程圖的符號如圖4-1所示。圖4-2描述了一個價格打折的算法。VisualBasic程序有3種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。它們的流程圖如圖4-3~圖4-6所示。順序結(jié)構(gòu)即按語句的先后順序執(zhí)行代碼。返回4.2選擇結(jié)構(gòu)VisualBasic中的選擇結(jié)構(gòu)包括If語句和Select語句。4.2.1If語句1.If…Then語句(單分支結(jié)構(gòu))其語法格式為:If<表達(dá)式>Then語句塊EndIf或If<表達(dá)式>Then<語句>下一頁返回4.2選擇結(jié)構(gòu)2.If…Then…Else語句(雙分支結(jié)構(gòu))其語法格式為:If<表達(dá)式>Then<語句塊1>Else<語句塊2>EndIf或If<表達(dá)式>Then<語句1>Else<語句2>上一頁下一頁返回4.2選擇結(jié)構(gòu)3.If…Then…ElseIf語句(多分支結(jié)構(gòu))其語法格式為:If<表達(dá)式1>Then<語句塊1>ElseIf<表達(dá)式2>Then<語句塊2>…[Else語句塊n+1]EndIf上一頁下一頁返回4.2選擇結(jié)構(gòu)說明:(1)不管有幾個分支,依次判斷,當(dāng)某條件滿足時,執(zhí)行相應(yīng)的語句塊,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。(2)ElseIf不能寫成ElseIf。4.If語句的嵌套If語句的嵌套是指If或Else后面的語句塊中又包含If語句。上一頁下一頁返回4.2選擇結(jié)構(gòu)其語法格式如下:If<表達(dá)式1>ThenIf<表達(dá)式11>Then…EndIf…EndIf上一頁下一頁返回4.2選擇結(jié)構(gòu)4.2.2SelectCase語句(情況語句)當(dāng)選擇的情況較多時,雖然可以使用If語句,但不夠直觀。這時可以使用SelectCase語句。其語法格式為:SelectCase變量或表達(dá)式Case表達(dá)式列表1語句塊1上一頁下一頁返回4.2選擇結(jié)構(gòu)Case表達(dá)式列表2語句塊2…[CaseElse語句塊n+1]EndSelect說明:(1)該結(jié)構(gòu)的功能是根據(jù)SelectCase語句中“變量或表達(dá)式”的值,依次與后面Case子句中的表達(dá)式列表比較,若匹配,則執(zhí)行它下面的語句塊,然后從SelectCase語句結(jié)構(gòu)中跳出;若所有Case子句無一匹配,則執(zhí)行CaseElse后面的語句,結(jié)束SelectCase語句。上一頁下一頁返回4.2選擇結(jié)構(gòu)(2)變量或表達(dá)式:可以是數(shù)值型或字符串表達(dá)式。<表達(dá)式列表>與<變量或表達(dá)式>的類型必須相同,表達(dá)式列表可以是下面4種形式之一:①表達(dá)式,如"a";②一組用逗號分隔的枚舉值,如2,4,6,8;③表達(dá)式1To表達(dá)式2,如60To100;④Is關(guān)系運算符表達(dá)式,如2,4,6,8,Is<60(混合型)。上一頁下一頁返回4.2選擇結(jié)構(gòu)4.2.3條件函數(shù)(1)IIf函數(shù)形式是:IIf(表達(dá)式,當(dāng)表達(dá)式為True時的值,當(dāng)表達(dá)式為False時的值)例如:IIf(x>y,x-y,(x?y+7)/9)設(shè)x=7,y=9,則結(jié)果是7.777778。(2)Choose函數(shù)形式是:Choose(數(shù)值類型變量,值為1的返回值,值為2的返回值,……)上一頁下一頁返回4.2選擇結(jié)構(gòu)例如:Nop是1~4的值,轉(zhuǎn)換成“+”“-”“×”“÷”運算符的語句如下:Op=Choose(Nop,"+","-","×","÷")當(dāng)值為1時,返回字符串"+",然后放入Op變量中。值為2時,返回字符串"-",依此類推。當(dāng)Nop是1~4的非整數(shù)時,系統(tǒng)自動取Nop的整數(shù)部分來判斷;若Nop不在1和4之間,函數(shù)返回Null值。注意:常見錯誤有如下幾點:①在選擇結(jié)構(gòu)中缺少配對的結(jié)束語句,在多行式的If塊語句中,應(yīng)有配對的EndIf語句結(jié)束。上一頁下一頁返回4.2選擇結(jié)構(gòu)②多邊選擇ElseIf,不要寫成ElseIf。③SelectCase語句的使用。SelectCase后不能出現(xiàn)多個變量;Case子句后不能出現(xiàn)變量。總結(jié):分支結(jié)構(gòu)特點是,對條件進(jìn)行判斷,選擇不同的分支,在任何情況下總有“無論有多少分支,必?fù)衿湟?,即使分支再多,僅選其一”的特性。上一頁返回4.3循環(huán)結(jié)構(gòu)4.3.1For循環(huán)語句(用于循環(huán)次數(shù)已知的情況)1.語法結(jié)構(gòu)For循環(huán)變量=初值to終值[Step步長]語句塊[ExitFor]語句塊Next循環(huán)變量其中,循環(huán)變量必須為數(shù)值型。步長一般為正值,初值小于等于終值。若步長為負(fù)值,則初值大于等于終值。若省略步長,則步長為1。下一頁返回4.3循環(huán)結(jié)構(gòu)Exitfor語句和IF語句搭配,用在循環(huán)體中,用來提前結(jié)束For循環(huán)。For…Next循環(huán)結(jié)構(gòu)語句的執(zhí)行方式如下:執(zhí)行For語句,系統(tǒng)將做以下工作:步驟一:計算e1,e2,e3的值。步驟二:給V賦初值。步驟三:判斷V的值是否超過e2,步長為正時,如果V>e2;步長為負(fù)時,如果V<e2,則退出循環(huán)。否則,去做循環(huán)體。執(zhí)行Next語句,系統(tǒng)執(zhí)行下述操作:步驟一:V增加一個步長,即V=V+e3。步驟二:轉(zhuǎn)而執(zhí)行判斷操作.上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)For循環(huán)的流程如圖4-13所示。For循環(huán)舉例PrivateSubForm_Click()Fori=1to10Step2printi;NextiPrint“i=”;iEndSub分析:循環(huán)變量為i,初值為1,終值為10,步長為2(也就是說每循環(huán)一次i的值自動加2)。上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)執(zhí)行結(jié)果為:13579i=11循環(huán)了5次,i的值最后為11(大于10了),故跳出循環(huán)。關(guān)于For循環(huán)的幾點說明:(1)如果步長為正數(shù),且終值≥初值,循環(huán)可以執(zhí)行;如果步長為負(fù)數(shù),且終值≤初值,循環(huán)可以執(zhí)行。(2)如果步長為0,在循環(huán)體內(nèi)又沒有改變循環(huán)變量的語句和ExitFor語句,則成為死循環(huán)。(3)如果初值=終值,在循環(huán)體內(nèi)又沒有改變循環(huán)變量的語句和ExitFor語句,不管步長為多少,循環(huán)僅執(zhí)行1次。(4)正常循環(huán)次數(shù)=Int((終值-初值)/步長)+1,它適用于3個參數(shù)均為整型值的情況。上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)(5)e1,e2,e3中包含的變量在循環(huán)體內(nèi)被改變,不會影響循環(huán)的執(zhí)行次數(shù),但循環(huán)變量V若在循環(huán)體內(nèi)被改變,則循環(huán)次數(shù)有可能發(fā)生變化。2.For循環(huán)的應(yīng)用1)計算累加、累乘2)求素數(shù)之類的題目4.3.2Do…Loop循環(huán)語句(用于循環(huán)次數(shù)未知的情況)Do循環(huán)是最常用、最靈活的一種循環(huán)結(jié)構(gòu),通常用在無法預(yù)測循環(huán)次數(shù)的程序中。上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)1.Do循環(huán)的語法結(jié)構(gòu)Do循環(huán)有4種格式:(1)格式1:DoWhile<條件>循環(huán)體Loop(2)格式2:Do循環(huán)體LoopWhile<條件>上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)(3)格式3:DoUntil<條件>循環(huán)體Loop(4)格式4:Do循環(huán)體LoopUntil<條件>在這4種格式中,條件在Do語句的稱為“前測型循環(huán)”;條件在Loop語句的稱為“后測型循環(huán)”。上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)后測型循環(huán)與前測型循環(huán)的區(qū)別是:先執(zhí)行1次循環(huán)體,再去判斷條件e是否成立。循環(huán)次數(shù)最少為1。而前測型循環(huán)的循環(huán)次數(shù)最少為0。While循環(huán)稱為當(dāng)型循環(huán);Until循環(huán)稱為直到型循環(huán)。其區(qū)別在于,當(dāng)型循環(huán),條件為真時,執(zhí)行循環(huán)體;直到型循環(huán),條件為假時,執(zhí)行循環(huán)體。2.Do循環(huán)的應(yīng)用Do循環(huán)可用來計算無窮級數(shù)。用公式π/4≈1-1/3+1/5-1/7+1/9+……計算π的近似值,直到最后一項的絕對值小于1?10-5為止,將結(jié)果輸出在圖片框里。上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)分析:參與運算的數(shù)有規(guī)律可循,但循環(huán)次數(shù)未知,所以用Do循環(huán),解題關(guān)鍵是把通項表達(dá)出來。此題的算法是累加。參考代碼如下:DimsAsSingle,tAsSingle,piAsSingle,nAsSinglet=0//代表通項pi=0//代表和n=1//代表分母s=-1//處理正負(fù)號上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)Dopi=pi+tn=n+2s=-st=s/nIfAbs(t)<0.00001ThenExitDoLooppi=pi?4Picture1.Printpi上一頁下一頁返回4.3循環(huán)結(jié)構(gòu)4.3.3循環(huán)的嵌套一個循環(huán)體內(nèi)又包含了一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套。對于循環(huán)的嵌套,要注意以下事項:(1)內(nèi)循環(huán)變量與外循環(huán)變量不能同名;(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;(3)不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán),反之則可以。上一頁返回4.4常用算法For循環(huán)可以用于解決累加、連乘、求素數(shù)、求無窮級數(shù)等。對這些常用的算法總結(jié)如下。4.4.1累加、連乘思考:若把循環(huán)體前面置各變量初值的語句放在循環(huán)體內(nèi),程序運行時會產(chǎn)生什么情況?4.4.2無窮級數(shù)求和該例題涉及三個問題:(1)用循環(huán)結(jié)構(gòu)求級數(shù)和的問題。本例根據(jù)某項值的精度來控制循環(huán)結(jié)束與否。下一頁返回4.4常用算法(2)累加:e=e+t,循環(huán)體外對累加和的變量清零,e=0。(3)連乘:n=n?i,循環(huán)體外對連乘積變量置1,n=1。4.4.3求素數(shù)判別某數(shù)m是否為素數(shù)的最簡單的方法是:對于m,從i=2,3,…,m-1判別m能否被i整除,只要有一個能整除,則m不是素數(shù),否則m是素數(shù)。4.4.4窮舉法“窮舉法”也稱為“枚舉法”或“試湊法”,即對可能出現(xiàn)的各種情況一一測試,判斷其是否滿足條件,一般采用循環(huán)來實現(xiàn)。上一頁下一頁返回4.4常用算法4.4.5遞推法“遞推法”又稱為“迭代法”,其基本思想是把一個復(fù)雜的計算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次重復(fù)都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。4.4.6特殊數(shù)類4.4.7最小、最大值在若干個數(shù)中求最大值,一般先假設(shè)一個較小的數(shù)為最大值的初值,若無法估計較小的值,則取第一個數(shù)為最大值的初值,然后將每一個數(shù)與最大值比較,若該數(shù)大于最大值,將該數(shù)替換為最大值。依次逐一比較。上一頁返回4.5常見錯誤小結(jié)(順序、條件、循環(huán))

VisualBasic循環(huán)中的常見錯誤總結(jié)如下:(1)不循環(huán)或死循環(huán)的問題。其主要是由于循環(huán)條件、循環(huán)初值、循環(huán)終值、循環(huán)步長的設(shè)置有問題,例如:DimiAsInteger,factAsLongi=1:fact=1Do

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論