




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第五章 分支與循環(huán),高等醫(yī)藥院校藥學類第三輪規(guī)劃教材大學計算機基礎,第一節(jié) 分支結構,目 錄,第二節(jié) 循環(huán)結構,第三節(jié) 程序示例,大學計算機基礎沈陽藥科大學,第一節(jié) 分支結構,第一節(jié) 分支結構,大學計算機基礎沈陽藥科大學,5.1 分支結構,1. IfThen語句(單分支結構) If Then 語句塊 End If 或 If Then ,大學計算機基礎沈陽藥科大學,經(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)檢驗正確性(IsNumeric()) Private Sub Text1_LostFocus() If IsNumeric(Text1) Then Text2 = 2 * 3.14 * Text1 End If End Sub,大學計算機基礎沈陽藥科大學,單分支結構應用舉例: 已知兩個數(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,重要的是學會兩個數(shù)的交換,若上述語句次序變一下,結果如何?,大學計算機基礎沈陽藥科大學,2. IfThenElse語句(雙分支結構) If Then Else End If 也可以寫為一行,格式為: If Then Else ,大學計算機基礎沈陽藥科大學,單分支結構實現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1),雙分支結構實現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If,例如:計算分段函數(shù),思考:如果上面的兩個語句換一下順序 即: If x0 Then y=sin(x)+sqr (x*x+1) y=cos(x)x3+3*x 會是什么結果?,大學計算機基礎沈陽藥科大學,3If語句的嵌套 If語句的嵌套是指If或Else后面的語句塊中又包含If語句 形式如下: If Then If Then End If Else If Then End If End If,大學計算機基礎沈陽藥科大學,例5-1 已知三角形三條邊的長度,設計求此三角形面積的程序。輸出結果顯示在文本框中,并且把結果再存入D:盤文件名為“sear.dat”。 問題分析:設三角形的三條邊分別為a、b、c,從數(shù)學上已知,當a+bc、a+cb且b+ca時,三角形存在,其面積 式中: P = (a + b + c)2,大學計算機基礎沈陽藥科大學,4. IfThenElseIf語句(多分支結構) 形式: If Then ElseIf Then Else 語句塊 n+1 End If,例如:成績小于60嗎,否的話小于70嗎,,大學計算機基礎沈陽藥科大學,例5-3將考試成績轉(zhuǎn)換成等級。計算規(guī)則如下: 分數(shù) 100-90 89-80 79-70 69-60 60 等級 A B C D E 要求:從文本框1中輸入成績分數(shù),當輸完數(shù)據(jù)按回車鍵時,等級結果自動地出現(xiàn)在文本框2中。 考慮到題目的要求,有關轉(zhuǎn)換的程序代碼應放在Text1_KeyPress( )過程中,大學計算機基礎沈陽藥科大學,五級制成績分檔.vbp 根據(jù)已知的百分制成績mark,顯示對應的五級制成績 哪些正確,哪些錯誤?,大學計算機基礎沈陽藥科大學,:與同類型的下面四種形式之一: 表達式 例: “A“ 一組枚舉表達式(用逗號分隔) 2,4,6,8 表達式1 To 表達式2 60 To 100 Is 關系運算符表達式 Is 60,5. Select Case語句(情況語句) 形式: Select Case 變量或表達式 Case 表達式列表1 語句塊1 Case 表達式列表2 語句塊2 Case Else 語句塊n+1 End Select,數(shù)值型或字符串表達式,務必注意不能寫變量名,大學計算機基礎沈陽藥科大學,例已知坐標點(x,y),判斷其落在哪個象限。,哪個能實現(xiàn),哪個不能實現(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,方法二代碼錯誤: 1. Select Case 后不能出現(xiàn)多個變量,應寫為select case x 2. Case后不能出現(xiàn)變量及有關運算符,應寫為 is 0,而非x0,大學計算機基礎沈陽藥科大學,例5-4 用Select Case結構實現(xiàn)例5-3的功能。,例5-5 編寫一個按月收入額計算個人收入調(diào)節(jié)稅的應用程序,并把結果存入D:盤的數(shù)據(jù)文件“pay.dat”中。 計稅公式如下: 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為納稅人的月收入。,大學計算機基礎沈陽藥科大學,6. 條件函數(shù),試問通過下面的賦值語句后a的是什么? a=iif (85,64,57),IIF結構語法規(guī)則: iif(表達式,當表達式為True時的值,當表達式為False時的值) 例如,求x,y中大的數(shù),放入max變量中,語句如下: max=iif(x y,x,y),Choose結構: Choose(數(shù)字類型變量,值為1的返回值,值為2的返回值) i = Int(Rnd*4+1) fuhao = Choose(i, “”, “”, “”, “”),大學計算機基礎沈陽藥科大學,第二節(jié) 循環(huán)結構,第二節(jié) 循環(huán)結構,大學計算機基礎沈陽藥科大學,5.2 循環(huán)結構,所謂循環(huán)結構就是重復地執(zhí)行某些操作,在程序中體現(xiàn)的就是部分代碼被重復執(zhí)行。 VB中循環(huán)結構分為兩大類: 條件循環(huán)(Do-Loop),用于循環(huán)次數(shù)未知的情況 當型循環(huán)結構(While) 直到型循環(huán)結構 (Until) 計數(shù)循環(huán)(For-Next),用于循環(huán)次數(shù)已知的情況,大學計算機基礎沈陽藥科大學,形式1: Do While 語句塊 Exit Do 語句塊 Loop,形式2: Do 語句塊 Exit Do 語句塊 Loop While ,先判斷后執(zhí)行,語句塊可能一次也不執(zhí)行,先執(zhí)行后判 斷,語句塊至少執(zhí)行一次,1. DoWhile循環(huán)語句(當型循環(huán)結構,條件為真時執(zhí)行),大學計算機基礎沈陽藥科大學,形式1: Do Until 語句塊 Exit Do 語句塊 Loop,形式2: Do 語句塊 Exit Do 語句塊 Loop Until ,先判斷后執(zhí)行,語句塊可能一次也不執(zhí)行,先執(zhí)行后判 斷,語句塊至少執(zhí)行一次,2. DoUntil循環(huán)語句(直到型循環(huán)結構,條件為假時執(zhí)行),大學計算機基礎沈陽藥科大學,除以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)應用舉例1,大學計算機基礎沈陽藥科大學,人口增長計算.vbp 我國現(xiàn)有13億人口,按人口年增長0.8%計算,多少年后我國人口超過26億? 分析:解此問題兩種方法,可根據(jù)公式:26=13*(1+0.008)n 直接利用標準對數(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)應用舉例2,大學計算機基礎沈陽藥科大學,例5-6求自然對數(shù)e的近似值,要求其誤差小于0.00001,近似公式為: e=1+1/1!+1/2!+1/3!+1/n!+ 把計算結果存入D:盤的“result.dat”文件中。 算法分析:該題涉及兩個問題 (1)用循環(huán)結構求級數(shù)和的問題。求級數(shù)和的項數(shù)和精度都是有限的,否則有可能會造成溢出或死循環(huán),本例根據(jù)某項數(shù)的精度來控制循環(huán)的結束與否。 (2)累加與連乘在程序設計中非常重要。累加是在原有和的基礎上一次次的加一個數(shù),如e=e+t。連乘則是在原有積的基礎上一次次的乘以一個數(shù),如n=n*i。為了保證程序的可靠,一般在循環(huán)體外對存放累加和的變量清零、存放連乘積的變量則置1,DoLoop循環(huán)應用舉例3,大學計算機基礎沈陽藥科大學,例5-7 設計求兩個自然數(shù)的最大公約數(shù)程序。 (1)對于已知兩數(shù)m,n,使得mn; (2) m除以n得余數(shù)r; (3)若r=0,則n為最大公約數(shù)結束;否則執(zhí)行(4); (4)m n,n r,再重復執(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)應用舉例4,圖5-14流程圖,大學計算機基礎沈陽藥科大學,形式 For 循環(huán)變量初值 to 終值 Step 步長 語句塊 Exit For 語句塊 Next 循環(huán)變量,循環(huán)體,5.2.3 For-Next循環(huán)結構,大學計算機基礎沈陽藥科大學,For循環(huán)應用舉例: 計算1100的奇數(shù)和,程序段如下: Dim i %, s% 等價于: 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,下面程序的結果是什么? 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,大學計算機基礎沈陽藥科大學,例5-8 編寫一個程序求110這十個數(shù)的和與乘積。 算法分析:求若干個數(shù)之和或若干個數(shù)的乘積,可采用“累加”與“累乘”法。累加法是設置一個存放和數(shù)的變量,稱為“累加器”,它的初始值設為0,累加過程通過循環(huán)實現(xiàn),在循環(huán)體中,和數(shù)與累加器相加后再賦值給累加器;累乘的算法與累加類似,不過設置的是“累乘器”,它的初始值應設為1,在循環(huán)體內(nèi),乘數(shù)應與累乘器相乘。在求乘積時,應注意乘積的大小,設置適當?shù)臄?shù)據(jù)類型。,For-Next循環(huán)應用舉例1,圖5-18 程序設計界面及運行圖,大學計算機基礎沈陽藥科大學,例5-9 下面是一個從由字母數(shù)字組成的字符串中找出所有大寫字母并逆序輸出的程序。最后再把結果存入D:盤的數(shù)據(jù)文件“l(fā)etter.dat”中。 從一個字符串中找出符合要求的字符是采取對字符串的每一個字符逐個篩選的方法實現(xiàn)的。本例利用Mid函數(shù)可以從字符串中提取出單個字符,利用循環(huán)控制處理過程,循環(huán)的終值使用Len函數(shù);對于符合要求的字符采用連接運算 組成新字符串;逆序輸出則是通過從后往前逐個提取字符再連接的。,For-Next循環(huán)應用舉例2,圖5-19 程序設計界面及運行圖,大學計算機基礎沈陽藥科大學,無論是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)的嵌套,下面的程序運行結果是什么? a=10 for i=1 to 5 for j=4 to 6 a=a+2 next j next I Print a, i, j,大學計算機基礎沈陽藥科大學,例5-10 下面是一個模擬搖獎的程序。設有100個人中簽,要從中找出兩個中獎人。由機器自動隨機產(chǎn)生第一組1000個1100間的數(shù)據(jù),第1000個隨機數(shù)據(jù)即為第一個中獎人的號碼;然后再次隨機產(chǎn)生第二組1000個1100間的數(shù)據(jù),第1000個隨機數(shù)據(jù)即為第二個中獎人的號碼。 算法分析:本程序算法比較簡單,首先外循環(huán)用來控制產(chǎn)生兩個隨機數(shù),里面使用For-Next循環(huán)產(chǎn)生1000個1-100間的隨機整數(shù)即可。但為了獲得搖獎的效果,每產(chǎn)生一個隨機數(shù),再利用一個For-Next循環(huán)起到延時作用,降低數(shù)據(jù)顯示的速度,以便可以較容易地看清數(shù)據(jù)變化的狀況,使用Refresh方法,使文本框中的文本不斷改變。,循環(huán)嵌套應用舉例1,圖5-20 界面及運行結果,大學計算機基礎沈陽藥科大學,第三節(jié) 程序示例,第三節(jié) 程序示例,大學計算機基礎沈陽藥科大學,例5-11 產(chǎn)生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護士層級考試題及答案
- 湖南速寫考試題及答案
- 妊娠診斷試題及答案
- 自考市場營銷試題及答案
- 心肺復蘇試題及答案
- 物流管理試題及答案
- 寒假思考試題及答案
- 國慶假期幼兒活動方案
- 員工季度活動游戲活動方案
- 品牌集市活動方案
- 2025年陜西省中考數(shù)學真題試卷及答案解析
- 呼吸機的維護與保養(yǎng)標準流程
- 2025年北方華創(chuàng)招聘筆試參考題庫含答案解析
- 期末綜合試題 2024-2025學年下期初中英語人教版七年級下冊(新教材)
- 2025年全國新高考I卷高考全國一卷真題英語試卷(真題+答案)
- 高中生物學業(yè)水平合格性考試:人教版必修1+必修2必背考點
- 安全生產(chǎn)應急演練方案(合集)
- 2025江蘇揚州寶應縣“鄉(xiāng)村振興青年人才”招聘67人筆試模擬試題含答案詳解
- 2025年甘肅高考真題化學試題(解析版)
- 中國政法大學《中國政治制度史》2023-2024學年第二學期期末試卷
- 超高玻璃吊裝方案(3篇)
評論
0/150
提交評論