




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、4.1結構化程序設計4.2 順序結構4.3 選擇結構4.4 循環結構4.5 綜合應用程序舉例第2章 VB程序設計概述4.1 結構化程序設計 隨著計算機技術的發展,程序設計方法經歷了手工編程、結構化程序設計方法和面向對象的程序設計方法幾個階段。VB作為一種面向對象的程序設計語言,既繼承了結構化程序設計的優點,又采用了面向對象、事件驅動的編程機制。就整個工程來說,它是由許多面向對象的事件過程組成的,程序運行過程中通過觸發事件,驅動執行相應的事件過程來實現程序員的意圖。4.1.1 算法及其表示 算法是解決問題的方法和步驟。要完成某項任務,首先要根據任務的性質決定采取什么方法,然后根據所采用的方法設計
2、完成工作的具體步驟,最后,再按照所設計的步驟一步一步去完成。要用計算機來解決一個實際問題,編程時,首先要設計解決這個問題的算法(方法和步驟)。例 將兩個變量x和y的值進行交換,設x = 10,y = 20。 分析:變量是存儲單元的代名詞,存儲器存儲信息的特點是:可以反復地“讀”,“寫”操作能將新的值寫入到存儲單元。如果直接交換,即x = y : y = x,則將y的值賦給x時,x原來的值被覆蓋(丟失),其結果是交換后x和y的值都是20。由此可見,要交換兩變量的值,應借助一個中間變量t作為一個臨時的“容器”。算法為: 步驟1:將x的值暫存在t中; 步驟2:將y的值存入x中; 步驟3:將t的值存入
3、y中。4.1.1 算法及其表示 例 求N!=?,其算法可描述如下: 步驟1:給出N的值 步驟2:設兩個變量R、I,I為大于等于零的整數,R=I!。令I=0,R=1。 步驟3:I=I+1,R=RI 步驟4:判斷I60 Then Text2 =及格 Else Text2 =不及格End sub4.3.2 多行結構選擇語句 在解決實際問題時,常常遇到在多種情況中選擇其一的情況。因為多分支的If語句寫在多行,所以也稱為多行形式的If語句。 格式:If條件1 Then語句塊1ElseIf 條件2 Then語句塊2ElseIf 條件3 Then語句塊3Else語句塊nEnd If執行流程4.3.2 多行結
4、構選擇語句 多行結構的If語句執行過程:依次測試各條件,找出第一個為真者,執行其后面的語句塊,然后從End If跳出;若所有條件均不成立,則執行Else后的語句塊(此時,若缺省Else,則什么都不做)。 這里依次判斷測試條件的含意為:若條件1為真(或條件表達式的值為非0),則執行語句塊1,然后退出分支結構,執行End If的后繼語句;若條件1為假(或條件表達式的值為0) ,則測試條件2,。當前面的條件都不成立時,后面的條件才得以測試。4.3.2 多行結構選擇語句 例 編程求符號函數sgn(x)的值。 程序代碼如下: 用戶界面設計及運行結果如下圖所示:Private Sub Command1_C
5、lick() x = Val(Text1.Text) If x 0 Then Text2.Text = 1 ElseIf x = 0 Then Text2.Text = 0 Else Text2.Text = -1 End IfEnd Sub4.3.2 多行結構選擇語句注意注意:單行形式If語句與多行形式的If語句的區別。前者適用于簡單的二叉分支的情況,后者適用于多分支的情況。前者可以改寫為后者的形式。前者必須寫在一行中;后者必須寫成多行,并且在關鍵字“Then”后面必須回車。后者必須是If開頭,End If結束,兩者必須成對出現。但是,前者沒有End If。后者中“ElseIf”是一個關鍵字
6、,不能寫成“Else If”。 在多行形式的If語句中,代碼的排版推薦使用縮進方式,這樣不僅有利于閱讀程序,也有利于發現錯、排除錯誤。4.3.3 Select Case語句 雖然多路分支程序設計可用多行形式的If語句實現,但有時,使用Select Case語句實現更為簡單和結構清晰。 格式:Select Case測試表達式 Case表達式表列1語句塊1 Case表達式表列2 語句塊2 Case Else 語句塊nEnd Select Select Case語句以Select Case開頭,必須以End Select結束。其功能是根據“測試表達式”的值,從多個語句塊中選擇符合條件的一個語句塊執行
7、。4.3.3 Select Case語句注意事項:(1) 執行過程:先對“測試表達式”求值,然后從上到下順序地測試該值與哪一個Case子句中的“表達式表列”相匹配;一旦找到,則執行該Case分支的語句塊,然后把控制轉移到End Select后面的語句塊;如果沒找到,則執行Case Else分支的語句塊,然后把控制轉移到End Select后面的語句塊。(2) “測試表達式”可以是數值表達式或字符串表達式,通常為變量或常量。(3) 每個Case子句中的語句塊可以是一行或多行VB語句。(4) “表達式表列”中的表達式必須與測試表達式的類型相同。4.3.3 Select Case語句注意事項:(5)
8、 “表達式表列”稱為域值,可以是下列形式之一:表達式1,表達式2 當“測試表達式”的值與其中之一相同時,就執行該Case子句中的語句塊。 例 Case 2,4,6,8,10表達式1 To 表達式2 當“測試表達式”的值落在表達式1和表達式2之間時(含表達式1和表達式2的值),則執行該Case子句中的語句塊。書寫時,必須把較小值寫在前面。 例 Case 2 To 10 Is關系表達式 當“測試表達式”的值滿足“關系表達式”指定條件時,執行該Case子句中的語句塊。4.3.3 Select Case語句 例 判斷學生成績的等級,用Select Case結構書寫,代碼如下:Private Sub C
9、ommand1_Click()Select Case Val(Text1.Text) 根據Text1中用戶輸入的值來判斷 Case Is 0 Text2.text = 不合理的成績 Case Is 60 Text2.text = 不及格 Case 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 Text2.text = 及格 Case 70 To 89 Text2.text = 良好 Case Is = 100 Text2.text = 優秀Case else Text2.text = 不合理的成績End SelectEnd Sub4.3.4 選擇結構的嵌套 在選
10、擇結構的每個分支中,可以是任何語句,也可以再是一個分支結構。這種分支結構中包含另一個分支結構的情況稱為分支嵌套。在分支嵌套中應注意的問題: 每個結構必須完整。 外層結構必須完全包住內層結構,不能交叉。 內層結構應采用縮進格式,以使層次清楚。4.4 循環結構 當我們編程求解實際問題時,經常會遇到這樣的一種情況:有些操作形式上具有相似性,并且反復多次被執行,這就是程序基本結構中的循環結構。所謂循環是指對同一個程序段重復執行若干次,被重復執行的部分稱為循環體,由若干語句構成。 循環必須是有窮的,其循環控制有兩種情況:當已知循環次數時,可用循環次數控制。有些問題,編程時并不知道循環體的執行次數,此時,
11、必須根據某個條件來判斷何時結束循環。 在VB中有多種語句可實現循環結構,包括For循環、Do循環、While循環和GoTo循環。4.4.1 For循環 For循環適用于循環的次數已知的場合。For循環也稱For-Next循環或計數循環,其語法格式如下: For 循環變量初值 To 終值 Step步長 循環體 Exit For Next循環變量功能:For循環按確定的次數執行循環體,該次數是由循環變量的初值、終值、步長及循環體中Exit For 前的條件共同確定。 例 輸出1-10之間的奇數。 輸出1-10之間的不大于7的奇數。 For i=1 To 10 Step 2 For i=1 To 1
12、0 Step 2 Print i If i= 100 Then GoTo Ending GoTo Start Ending: Print “s=”; s End Sub 該程序是通過GoTo語句完成循環的,其中Start與Ending是兩個標號,本程序實現的是求 1+2+3+100的值。 由于GoTo語句易破壞程序的結構,因此一般不提倡使用。4.5 綜合應用程序舉例 例 1 求方程f(X)=X3-2X-5=0在區間1.5,2.5上的一個實根。 要求:按四舍五入的方式精確到小數點后第二位。 分析:本題用牛頓迭代公式求解: Xn+1=Xn-f(Xn)/ f (Xn) 從圖中可以看到,在幾何意義上,
13、f (x1)是曲線 在x1點處的切線斜率,即:f (x1) = f (x1) /(x1-x2),因此,如果給出x1和f (x),先找到f (x1),再通過f (x1) 作切線,求出x2:x2=x1- f (x1) / f(x1);x2是上述切線與橫軸的交點,求出x2后再找出f (x2),通過f (x2)作切線,與橫軸交于x3,求出x3;如此一直求下去,所求的x值不斷副近真正的根,直到滿足指定的精度為止。4.5 綜合應用程序舉例程序如下:Private Sub Form_Click()Dim x As Single, x1 As Single, f As Single, f1 As Single
14、x = 1.5 x任取1.5,2.5中的一個值Do x1 = xf = x 3 - 2 * x - 5f1 = 3 * x 2 - 2x = x1 - f / f1Loop Until (Abs(x - x1) 0.00001)x = Fix(x * 100 + 0.5) / 100 四舍五入精確到小數點后第二位Print 方程X3-2X-5=0在區間1.5,2.5上的一個實根是:; xEnd Sub4.5 綜合應用程序舉例 例2 我國古代算經中有一題:“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。百錢買百雞,問雞翁、母、雛各幾何?” 本題使用“窮舉法”來求解。 “窮舉法窮舉法”就是將各種
15、組合的可能性全部一一考慮到,對每一組合檢查它是否符合給定的條件,將符合條件的輸出即可。依題意,設x,y,z分別為雞翁、雞母和雞雛。 程序代碼:Private Sub Form_Click()Print Cock,Hen,ChickenFor x=0 To 100For y=0 To 100 Z=100-x-y If 5*x+3*y+z/3=100 Then Print x,y,zNext yNext xEnd Sub4.5 綜合應用程序舉例例3 求200,900 內同時滿足以下兩個條件的十進制數的個數: (1)其個位數字與十位數字之和除以10所得的余數是百位數字; (2)該數是素數。 分析:
16、本例采用雙層循環設計。外層循環從200到900循環,先將每一個數的各位數字分離出來,然后判斷第一個條件是否滿足。若第一個條件滿足,則進入內層循環判斷第二個條件是否滿足,內層循環計算出一個數是否為素數,若是素數即第二個條件也滿足,則找到了一個符合條件的數,計數器加1。若第一個條件不滿足,則第二個條件無須判斷,即內層循環不執行。4.5 綜合應用程序舉例Private Sub Form_Click()number = 0For i = 200 To 900g = i Mod 10 截取個位數字s = (i Mod 100) 10 截取十位數字b = i 100 截取百位數字If (b = (g + s) Mod 10) Then 判斷滿足第一個條件isprime = TrueFor j = 2 To i 1 判斷滿足第二個條件(素數)If (i Mod j = 0) Then isprime = F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年注會考試中的知識點整合與早期規劃的必要性探討試題及答案
- 電聲器件在智能語音助手平板中的應用考核試卷
- 2025年注會考生反饋試題及答案
- 糧食大豆生產方案范本
- 2025年會計核算方法試題及答案
- 財務報表分析技巧試題及答案2025
- 2024年行政管理師考前準備試題及答案
- 項目管理財務知識考題試題及答案
- 項目管理主動溝通試題及答案
- 石棉水泥制品國際貿易實務考核試卷
- 2025年形勢與政策-加快建設社會主義文化強國+第二講中國經濟行穩致遠
- 激光雷達筆試試題及答案
- 2024年出版專業資格考試《基礎知識》(中級)真題及答案
- 中國加速康復外科臨床實踐指南2021
- 急診醫學知到智慧樹章節測試課后答案2024年秋云南中醫藥大學
- 2024-2030年中國建筑減隔震行業發展全面調研與未來趨勢分析報告
- 2025廣西柳鋼集團招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 課件:《科學社會主義概論(第二版)》第五章
- 2025年河南測繪職業學院高職單招職業技能測試近5年常考版參考題庫含答案解析
- 2025-2030年中國抗哮喘市場現狀調研及投資發展潛力分析報告
- 2024年河南藝術職業學院高職單招職業適應性測試歷年參考題庫含答案解析
評論
0/150
提交評論