




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章 分支與循環(huán),高等醫(yī)藥院校藥學(xué)類第三輪規(guī)劃教材大學(xué)計(jì)算機(jī)基礎(chǔ),第一節(jié) 分支結(jié)構(gòu),目 錄,第二節(jié) 循環(huán)結(jié)構(gòu),第三節(jié) 程序示例,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),第一節(jié) 分支結(jié)構(gòu),第一節(jié) 分支結(jié)構(gòu),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),5.1 分支結(jié)構(gòu),1. IfThen語句(單分支結(jié)構(gòu)) If Then 語句塊 End If 或 If Then ,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),經(jīng)典案例 1)判斷按鍵(回車13,空格32) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Text2 = 2 * 3.14 * Text1 End If End Sub 2)檢驗(yàn)正確性(IsNumeric()) Private Sub Text1_LostFocus() If IsNumeric(Text1) Then Text2 = 2 * 3.14 * Text1 End If End Sub,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),單分支結(jié)構(gòu)應(yīng)用舉例: 已知兩個(gè)數(shù)x和y,比較它們的大小, 使得x大于y. If xy Then t=x x=y y=t End If 或 If xy Then t=x: x=y: y=t,重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語句次序變一下,結(jié)果如何?,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),2. IfThenElse語句(雙分支結(jié)構(gòu)) If Then Else End If 也可以寫為一行,格式為: If Then Else ,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),單分支結(jié)構(gòu)實(shí)現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1),雙分支結(jié)構(gòu)實(shí)現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If,例如:計(jì)算分段函數(shù),思考:如果上面的兩個(gè)語句換一下順序 即: If x0 Then y=sin(x)+sqr (x*x+1) y=cos(x)x3+3*x 會(huì)是什么結(jié)果?,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),3If語句的嵌套 If語句的嵌套是指If或Else后面的語句塊中又包含If語句 形式如下: If Then If Then End If Else If Then End If End If,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-1 已知三角形三條邊的長(zhǎng)度,設(shè)計(jì)求此三角形面積的程序。輸出結(jié)果顯示在文本框中,并且把結(jié)果再存入D:盤文件名為“sear.dat”。 問題分析:設(shè)三角形的三條邊分別為a、b、c,從數(shù)學(xué)上已知,當(dāng)a+bc、a+cb且b+ca時(shí),三角形存在,其面積 式中: P = (a + b + c)2,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),4. IfThenElseIf語句(多分支結(jié)構(gòu)) 形式: If Then ElseIf Then Else 語句塊 n+1 End If,例如:成績(jī)小于60嗎,否的話小于70嗎,,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-3將考試成績(jī)轉(zhuǎn)換成等級(jí)。計(jì)算規(guī)則如下: 分?jǐn)?shù) 100-90 89-80 79-70 69-60 60 等級(jí) A B C D E 要求:從文本框1中輸入成績(jī)分?jǐn)?shù),當(dāng)輸完數(shù)據(jù)按回車鍵時(shí),等級(jí)結(jié)果自動(dòng)地出現(xiàn)在文本框2中。 考慮到題目的要求,有關(guān)轉(zhuǎn)換的程序代碼應(yīng)放在Text1_KeyPress( )過程中,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),五級(jí)制成績(jī)分檔.vbp 根據(jù)已知的百分制成績(jī)mark,顯示對(duì)應(yīng)的五級(jí)制成績(jī) 哪些正確,哪些錯(cuò)誤?,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),:與同類型的下面四種形式之一: 表達(dá)式 例: “A“ 一組枚舉表達(dá)式(用逗號(hào)分隔) 2,4,6,8 表達(dá)式1 To 表達(dá)式2 60 To 100 Is 關(guān)系運(yùn)算符表達(dá)式 Is 60,5. Select Case語句(情況語句) 形式: Select Case 變量或表達(dá)式 Case 表達(dá)式列表1 語句塊1 Case 表達(dá)式列表2 語句塊2 Case Else 語句塊n+1 End Select,數(shù)值型或字符串表達(dá)式,務(wù)必注意不能寫變量名,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例已知坐標(biāo)點(diǎn)(x,y),判斷其落在哪個(gè)象限。,哪個(gè)能實(shí)現(xiàn),哪個(gè)不能實(shí)現(xiàn)?,方法一 If x 0 And y 0 Then Print “在第一象限“ ElseIf x 0 Then Print “在第二象限“ ElseIf x 0 And y 0 Then Print “在第四象限“ End If,方法二 Select Case x,y Case x 0 And y 0 Print “在第一象限“ Case x 0 Print “在第二象限“ Case x 0 And y 0 Print “在第四象限“ End Select,方法二代碼錯(cuò)誤: 1. Select Case 后不能出現(xiàn)多個(gè)變量,應(yīng)寫為select case x 2. Case后不能出現(xiàn)變量及有關(guān)運(yùn)算符,應(yīng)寫為 is 0,而非x0,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-4 用Select Case結(jié)構(gòu)實(shí)現(xiàn)例5-3的功能。,例5-5 編寫一個(gè)按月收入額計(jì)算個(gè)人收入調(diào)節(jié)稅的應(yīng)用程序,并把結(jié)果存入D:盤的數(shù)據(jù)文件“pay.dat”中。 計(jì)稅公式如下: 0 pay1000或離退休 (pay1000)*0.05 1000pay1500 (pay1500)*0.1+25 1500pay2000 (Pay2000) *0.15+75 2000pay2500 tax= (pay2500) *0.2+150 2500pay3000 (pay3000) *0.25+250 3000pay3500 (Pay3500) *0.3+375 3500pay4000 (pay4000) *0.35+525 4000pay4500 (pay4500) *0.4+700 pay4500 式中,pay為納稅人的月收入。,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),6. 條件函數(shù),試問通過下面的賦值語句后a的是什么? a=iif (85,64,57),IIF結(jié)構(gòu)語法規(guī)則: iif(表達(dá)式,當(dāng)表達(dá)式為True時(shí)的值,當(dāng)表達(dá)式為False時(shí)的值) 例如,求x,y中大的數(shù),放入max變量中,語句如下: max=iif(x y,x,y),Choose結(jié)構(gòu): Choose(數(shù)字類型變量,值為1的返回值,值為2的返回值) i = Int(Rnd*4+1) fuhao = Choose(i, “”, “”, “”, “”),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),第二節(jié) 循環(huán)結(jié)構(gòu),第二節(jié) 循環(huán)結(jié)構(gòu),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),5.2 循環(huán)結(jié)構(gòu),所謂循環(huán)結(jié)構(gòu)就是重復(fù)地執(zhí)行某些操作,在程序中體現(xiàn)的就是部分代碼被重復(fù)執(zhí)行。 VB中循環(huán)結(jié)構(gòu)分為兩大類: 條件循環(huán)(Do-Loop),用于循環(huán)次數(shù)未知的情況 當(dāng)型循環(huán)結(jié)構(gòu)(While) 直到型循環(huán)結(jié)構(gòu) (Until) 計(jì)數(shù)循環(huán)(For-Next),用于循環(huán)次數(shù)已知的情況,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),形式1: Do While 語句塊 Exit Do 語句塊 Loop,形式2: Do 語句塊 Exit Do 語句塊 Loop While ,先判斷后執(zhí)行,語句塊可能一次也不執(zhí)行,先執(zhí)行后判 斷,語句塊至少執(zhí)行一次,1. DoWhile循環(huán)語句(當(dāng)型循環(huán)結(jié)構(gòu),條件為真時(shí)執(zhí)行),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),形式1: Do Until 語句塊 Exit Do 語句塊 Loop,形式2: Do 語句塊 Exit Do 語句塊 Loop Until ,先判斷后執(zhí)行,語句塊可能一次也不執(zhí)行,先執(zhí)行后判 斷,語句塊至少執(zhí)行一次,2. DoUntil循環(huán)語句(直到型循環(huán)結(jié)構(gòu),條件為假時(shí)執(zhí)行),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),除以5、6、7均余1的最小的正整數(shù).vbp Private Sub Command1_Click() n = 8 Do While n Mod 5 1 Or n Mod 6 1 Or n Mod 7 1 n = n + 1 Loop Print “除以5、6、7均余1的最小的正整數(shù)是“ & n End Sub Private Sub Command2_Click() n = 8 Do Until n Mod 5 = 1 And n Mod 6 =1 And n Mod 7 = 1 n = n + 1 Loop Print “除以5、6、7均余1的最小的正整數(shù)是“ & n End Sub,DoLoop循環(huán)應(yīng)用舉例1,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),人口增長(zhǎng)計(jì)算.vbp 我國(guó)現(xiàn)有13億人口,按人口年增長(zhǎng)0.8%計(jì)算,多少年后我國(guó)人口超過26億? 分析:解此問題兩種方法,可根據(jù)公式:26=13*(1+0.008)n 直接利用標(biāo)準(zhǔn)對(duì)數(shù)函數(shù)求得;也可利用循環(huán)求得,程序如下: Private Sub Command1_Click() x = 13 n = 0 Do While x 26 n = n + 1 x = x * 1.008 Loop Print n, x End Sub,DoLoop循環(huán)應(yīng)用舉例2,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-6求自然對(duì)數(shù)e的近似值,要求其誤差小于0.00001,近似公式為: e=1+1/1!+1/2!+1/3!+1/n!+ 把計(jì)算結(jié)果存入D:盤的“result.dat”文件中。 算法分析:該題涉及兩個(gè)問題 (1)用循環(huán)結(jié)構(gòu)求級(jí)數(shù)和的問題。求級(jí)數(shù)和的項(xiàng)數(shù)和精度都是有限的,否則有可能會(huì)造成溢出或死循環(huán),本例根據(jù)某項(xiàng)數(shù)的精度來控制循環(huán)的結(jié)束與否。 (2)累加與連乘在程序設(shè)計(jì)中非常重要。累加是在原有和的基礎(chǔ)上一次次的加一個(gè)數(shù),如e=e+t。連乘則是在原有積的基礎(chǔ)上一次次的乘以一個(gè)數(shù),如n=n*i。為了保證程序的可靠,一般在循環(huán)體外對(duì)存放累加和的變量清零、存放連乘積的變量則置1,DoLoop循環(huán)應(yīng)用舉例3,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-7 設(shè)計(jì)求兩個(gè)自然數(shù)的最大公約數(shù)程序。 (1)對(duì)于已知兩數(shù)m,n,使得mn; (2) m除以n得余數(shù)r; (3)若r=0,則n為最大公約數(shù)結(jié)束;否則執(zhí)行(4); (4)m n,n r,再重復(fù)執(zhí)行(2)。 If m 0) m=n n=r r= m mod n Loop Print “最大公約數(shù)=“, n,輾轉(zhuǎn)相減法 m=m-n mn n=n-m nm m、n為公約數(shù) m=n Do While m n m n If m n Then 14 6 m = m n 8 6 Else 2 6 n = n m 2 4 End If 2 2 Loop,DoLoop循環(huán)應(yīng)用舉例4,圖5-14流程圖,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),形式 For 循環(huán)變量初值 to 終值 Step 步長(zhǎng) 語句塊 Exit For 語句塊 Next 循環(huán)變量,循環(huán)體,5.2.3 For-Next循環(huán)結(jié)構(gòu),大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),For循環(huán)應(yīng)用舉例: 計(jì)算1100的奇數(shù)和,程序段如下: Dim i %, s% 等價(jià)于: Dim i %, s% s=0 s=0 : i = 1 For i = 1 To 100 step 2 Do Until i100 s = s + i s = s + i Next i i = i +2 Loop,下面程序的結(jié)果是什么? Dim a% Dim a% a=10 a=10 for i=6 to 3 for i=3 to 6 a=a+2 a=a+2 next i next i Print a, i Print a, i,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-8 編寫一個(gè)程序求110這十個(gè)數(shù)的和與乘積。 算法分析:求若干個(gè)數(shù)之和或若干個(gè)數(shù)的乘積,可采用“累加”與“累乘”法。累加法是設(shè)置一個(gè)存放和數(shù)的變量,稱為“累加器”,它的初始值設(shè)為0,累加過程通過循環(huán)實(shí)現(xiàn),在循環(huán)體中,和數(shù)與累加器相加后再賦值給累加器;累乘的算法與累加類似,不過設(shè)置的是“累乘器”,它的初始值應(yīng)設(shè)為1,在循環(huán)體內(nèi),乘數(shù)應(yīng)與累乘器相乘。在求乘積時(shí),應(yīng)注意乘積的大小,設(shè)置適當(dāng)?shù)臄?shù)據(jù)類型。,For-Next循環(huán)應(yīng)用舉例1,圖5-18 程序設(shè)計(jì)界面及運(yùn)行圖,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-9 下面是一個(gè)從由字母數(shù)字組成的字符串中找出所有大寫字母并逆序輸出的程序。最后再把結(jié)果存入D:盤的數(shù)據(jù)文件“l(fā)etter.dat”中。 從一個(gè)字符串中找出符合要求的字符是采取對(duì)字符串的每一個(gè)字符逐個(gè)篩選的方法實(shí)現(xiàn)的。本例利用Mid函數(shù)可以從字符串中提取出單個(gè)字符,利用循環(huán)控制處理過程,循環(huán)的終值使用Len函數(shù);對(duì)于符合要求的字符采用連接運(yùn)算 組成新字符串;逆序輸出則是通過從后往前逐個(gè)提取字符再連接的。,For-Next循環(huán)應(yīng)用舉例2,圖5-19 程序設(shè)計(jì)界面及運(yùn)行圖,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),無論是Do-Loop循環(huán),還是For-Next循環(huán),都可以在大循環(huán)中套小循環(huán)。兩種不同類型的循環(huán)語句也可以嵌套在一起使用。必須注意:小循環(huán)一定要完整地被包含在大循環(huán)之內(nèi),不得相互交叉。,5.2.4 循環(huán)的嵌套,下面的程序運(yùn)行結(jié)果是什么? a=10 for i=1 to 5 for j=4 to 6 a=a+2 next j next I Print a, i, j,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-10 下面是一個(gè)模擬搖獎(jiǎng)的程序。設(shè)有100個(gè)人中簽,要從中找出兩個(gè)中獎(jiǎng)人。由機(jī)器自動(dòng)隨機(jī)產(chǎn)生第一組1000個(gè)1100間的數(shù)據(jù),第1000個(gè)隨機(jī)數(shù)據(jù)即為第一個(gè)中獎(jiǎng)人的號(hào)碼;然后再次隨機(jī)產(chǎn)生第二組1000個(gè)1100間的數(shù)據(jù),第1000個(gè)隨機(jī)數(shù)據(jù)即為第二個(gè)中獎(jiǎng)人的號(hào)碼。 算法分析:本程序算法比較簡(jiǎn)單,首先外循環(huán)用來控制產(chǎn)生兩個(gè)隨機(jī)數(shù),里面使用For-Next循環(huán)產(chǎn)生1000個(gè)1-100間的隨機(jī)整數(shù)即可。但為了獲得搖獎(jiǎng)的效果,每產(chǎn)生一個(gè)隨機(jī)數(shù),再利用一個(gè)For-Next循環(huán)起到延時(shí)作用,降低數(shù)據(jù)顯示的速度,以便可以較容易地看清數(shù)據(jù)變化的狀況,使用Refresh方法,使文本框中的文本不斷改變。,循環(huán)嵌套應(yīng)用舉例1,圖5-20 界面及運(yùn)行結(jié)果,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),第三節(jié) 程序示例,第三節(jié) 程序示例,大學(xué)計(jì)算機(jī)基礎(chǔ)沈陽藥科大學(xué),例5-11 產(chǎn)生
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西藥批發(fā)中的電子商務(wù)平臺(tái)建設(shè)考核試卷
- 草原馬術(shù)運(yùn)動(dòng)考核試卷
- 聚噻吩纖維在智能紡織品的應(yīng)用考核試卷
- 融資租賃行業(yè)服務(wù)創(chuàng)新與客戶體驗(yàn)考核試卷
- 谷物儲(chǔ)存的溫濕度調(diào)控考核試卷
- 拼多多平臺(tái)店鋪內(nèi)容營(yíng)銷流量引入與品牌曝光合同
- 數(shù)字音樂平臺(tái)影視插曲版權(quán)合作分成合同
- 獨(dú)家授權(quán)網(wǎng)紅奶茶區(qū)域代理銷售服務(wù)合同
- 農(nóng)業(yè)園區(qū)氣象傳感器租賃及數(shù)據(jù)分析服務(wù)合同
- 工業(yè)廢水回用與清潔生產(chǎn)合作協(xié)議
- 地第十一章《極地地區(qū)》教學(xué)設(shè)計(jì)-2024-2025學(xué)年七年級(jí)地理下冊(cè)(人教版2024)
- 2025年BIM技術(shù)在工程項(xiàng)目風(fēng)險(xiǎn)管理中的應(yīng)用研究報(bào)告
- 2025全國(guó)助殘日弘揚(yáng)自強(qiáng)與助殘精神凝聚團(tuán)結(jié)奮進(jìn)力量宣傳課件
- 2024年陜西延安通和電業(yè)有限責(zé)任公司招聘考試真題
- 自助販賣機(jī)進(jìn)駐合同協(xié)議
- 江蘇綠色東海投資發(fā)展集團(tuán)有限公司及下屬子公司招聘筆試題庫2025
- 公共組織績(jī)效評(píng)估-形考任務(wù)三(占10%)-國(guó)開(ZJ)-參考資料
- 《非處方藥品市場(chǎng)推廣策略》課件
- 2025年廣東省深圳市羅湖區(qū)中考英語二模試卷
- 輸血法律法規(guī)知識(shí)培訓(xùn)課件
- 環(huán)衛(wèi)工人安全知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論