課題分支結(jié)構(gòu)_第1頁
課題分支結(jié)構(gòu)_第2頁
課題分支結(jié)構(gòu)_第3頁
課題分支結(jié)構(gòu)_第4頁
免費預(yù)覽已結(jié)束,剩余3頁可下載查看

下載本文檔

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

文檔簡介

1、課題:分支結(jié)構(gòu)教學(xué)時間: 授課班級:教學(xué)目標(biāo):學(xué)會用if elseend if 語句編寫簡單的程序,并會調(diào)試它教學(xué)重點、難點:1 運算規(guī)則2 IF 語句的用法3 Msbox()等函數(shù)的涵義及用法教學(xué)過程ABYN入口 出口 用前面介紹的語句已能編寫出順序執(zhí)行的簡單程序。但在用計算機解決實際問題時,有時需要先對某個條件進(jìn)行判斷,然后根據(jù)判斷的結(jié)果進(jìn)行不同的操作。例如:求三個數(shù)中的最小數(shù),用流程圖表示如圖6-2,圖中包含有兩個判斷框。其中第一個判斷框是根據(jù)給定的條件“a<b”是否滿足,來決定執(zhí)行左邊的語句還是執(zhí)行右邊的語句,這就是程序的分支結(jié)構(gòu),如圖6-19所示。Visual Basic用If

2、語句來實現(xiàn)分支結(jié)構(gòu)。P圖6-19一、條件If語句是根據(jù)給定的條件是否滿足,決定應(yīng)執(zhí)行的路徑。如“a<b”就是我們所給定的條件,式中的“<”稱為關(guān)系運算符,我們把這種形如“a<b”由一個關(guān)系運算符把兩個算術(shù)表達(dá)式(或字符串表達(dá)式)連結(jié)起來的式子稱為關(guān)系表達(dá)式。如a>b、x<0、"a"<>"b"等都是合法的關(guān)系表達(dá)式。關(guān)系運算符及其示例見表6-10。表6-10關(guān)系運算符含義相當(dāng)?shù)臄?shù)學(xué)符號關(guān)系表達(dá)式示例=等于=x=0>大于>x*y>x+y<小于<"QB"<&quo

3、t;VB"<>不等于X<>0>=大于等于x>=10<=小于等于x<=0關(guān)系表達(dá)式的運算順序是:先進(jìn)行算術(shù)運算或字符串運算,然后再進(jìn)行比較運算。其運算結(jié)果是一個邏輯值,即True(真)或False(假)。如果條件成立,則關(guān)系表達(dá)式取True;如果條件不成立,則關(guān)系表達(dá)式的值為False。如果關(guān)系運算符的兩邊表達(dá)式的運算結(jié)果是數(shù)值,則按其大小比較。例如:a<b(a=3,b=4) 其值為Truex+y>5(x=3,y= -2) 其值為False如果是字符串,則按字符的ASCII碼從左到右一一比較,即首先比較兩個字符串的第一個字符,

4、其ASCII碼值大的字符串大,如果第一個字符相等,則比較第二個字符,依此類推,直至出現(xiàn)不同的字符為止。如果兩個字符串的長度相等,且每一個相應(yīng)位置上字符都一樣,就認(rèn)為兩個字符串相等。如果兩個字符串長度不相等,但一個字符串是另一個字符串的前部,則長度大的字符串大。例如:"VB">"VISUAL BASIC" 其值為False"Basic"="Basic" 其值為True"Windows">"Window" 其值為True二、行If語句行If語句是指在一行中寫完的If語

5、句,它的一般格式為:格式一:If 條件 Then 語句執(zhí)行這種形式的If語句時,首先對條件進(jìn)行判斷。若條件成立,則執(zhí)行Then后面的語句;若條件不成立,則執(zhí)行If語句后繼程序行的語句。格式二:If 條件 Then 語句1 Else 語句2 執(zhí)行這種形式的語句時,先進(jìn)行判斷,若條件成立,則執(zhí)行語句1;否則執(zhí)行語句2。【例6-5-1】輸入三個不相同的數(shù),求出其中最小數(shù)。算法設(shè)計見第一節(jié),流程圖如圖6-2,程序代碼如下:' 求三個數(shù)中的最小數(shù)Private Sub Form_Click() Dim a As Single, b As Single, c As Single Dim min A

6、s Single a = InputBox("輸入a", "輸入框") b = InputBox("輸入b", "輸入框") c = InputBox("輸入c", "輸入框") If a < b Then min = a Else min = b If c < min Then min = c Print "最小數(shù)" minEnd Sub若從鍵盤輸入的三個數(shù)分別為-981,56,23,運行結(jié)果如下:最小數(shù)=-981【例6-5-2】編一程序,求

7、如下分段函數(shù)y的值,x從鍵盤輸入。開 始輸入xx<=0x2+1yx2-x+1y輸出y結(jié) 束YN圖6-20本程序界面很簡單,x的值可在程序中調(diào)用InbputBox函數(shù),在彈出的標(biāo)準(zhǔn)輸入對話框中輸入,程序的計算結(jié)果可直接用Print方法輸出在窗體上。算法如下: 輸入x; 判斷x的值,如果x<0,則x2+1y,否則x2-x+1y; 輸出y的值;流程圖如6-20所示,程序代碼如下:' 分段函數(shù)Private Sub Form_Click() Dim x As Single, y As Single x = Val(InputBox("請輸入自變量x", &quo

8、t;輸入框") If x <= 0 Then y = x * x + 1 Else y = x * x - x + 1 Print "y=" yEnd Sub三、塊If語句上述If-Then語句,只能根據(jù)條件的真假是否執(zhí)行一條語句。但是當(dāng)Then部分和Else部分包含的內(nèi)容較多時,則可選用“塊If”結(jié)構(gòu)。格式三:If 條件 Then 語句塊 End If格式四:If 條件 Then 語句塊1 Else 語句塊2 End If 格式四If語句的功能是:若條件為真,則執(zhí)行語句塊1,然后再繼續(xù)執(zhí)行End if后的語句;若條件為假,則執(zhí)行語句塊2,再繼續(xù)執(zhí)行End

9、if后的語句?!纠?-5-3】設(shè)計一個界面如圖6-21所示的算術(shù)練習(xí)程序,由計算機自動產(chǎn)生一位數(shù)加法練習(xí)題。學(xué)生輸入答案后,單擊“確認(rèn)”按鈕,如答案正確,自動產(chǎn)生下一題,否則重新輸入答案。本題算法的關(guān)鍵是產(chǎn)生一位數(shù)的加法題,VB提供了一個可以產(chǎn)生0,1)之間均勻分布的隨機數(shù)的隨機函數(shù)Rnd,一般地,要產(chǎn)生a,b之間的隨機整數(shù),可使用下面的表達(dá)式:Int(b-a+1)*Rnd)+a圖6-21所以,要產(chǎn)生一位整數(shù),可使用以下的算術(shù)表達(dá)式:Int(10*Rnd)。缺省情況下,每當(dāng)運行一個程序時,Rnd函數(shù)總是產(chǎn)生相同序列的隨機數(shù),因此,在調(diào)用Rnd函數(shù)之前,可先執(zhí)行Randomize語句初始化隨機數(shù)

10、生成器,以使每次運行程序時,Rnd函數(shù)能夠產(chǎn)生不同的隨機數(shù)序列。本例中除了兩個命令按鈕外,設(shè)置了一個標(biāo)簽控件用于顯示產(chǎn)生的算術(shù)題,一個文本框控件用于輸入答案,同學(xué)們可以自己設(shè)置界面中對象的屬性。程序代碼如下:' 算術(shù)練習(xí)程序Dim a As IntegerDim b As IntegerDim c As Integer' 程序的初始化過程Private Sub Form_Load() frmTest.Show Randomize ' 初始化隨機數(shù)生成器 a = Int(10 * Rnd): b = Int(10 * Rnd) lblTest.Caption = Str(

11、a) + "+" + Str(b) + "=" txtInput.Text = "" txtInput.SetFocusEnd Sub' 確認(rèn)按鈕事件過程Private Sub cmdOk_Click() c = Val(txtInput.Text) If c = a + b Then MsgBox "正確,請做下一題", vbOKOnly, "提示信息" a = Int(10 * Rnd): b = Int(10 * Rnd) lblTest.Caption = Str(a) + &q

12、uot;+" + Str(b) + "=" Else MsgBox "錯誤,再試試", vbOKOnly + vbInformation, "提示信息" End If txtInput.Text = "" txtInput.SetFocusEnd SubPrivate Sub cmdEnd_Click() EndEnd SubLoad事件在運行程序裝載窗體時發(fā)生,其中的代碼用于初始化有關(guān)變量或控件的屬性,此處主要用于產(chǎn)生第一道算術(shù)題,Show是窗體的方法,用于顯示窗體。討論與思考本例程序中,輸入錯誤答案后

13、,要求重新輸入。如果要求重試不超過3次,程序該如何修改?如果要求輸入錯誤答案后,不再重新輸入,而在結(jié)束程序前,顯示本次練習(xí)的統(tǒng)計數(shù)據(jù):答對題數(shù)、錯誤題數(shù)、正確率,又該如何修改程序?信息卡編譯程序和COBOL語言的創(chuàng)始人格蕾斯×莫里×霍波格蕾斯×莫里×霍波(Grace Murry Hopper),一個79歲時才從美國海軍退役的女將軍,為計算機事業(yè)的發(fā)展作出了杰出貢獻(xiàn)。我們前面介紹過,當(dāng)時的計算機使用穿孔卡片輸入、輸出數(shù)據(jù),為了幾分鐘的計算不得不準(zhǔn)備相當(dāng)長的時間,為了使計算機簡單易用,她編寫了世界上第一個編譯器,能夠?qū)㈩愃朴⒄Z的符號代碼轉(zhuǎn)換成計算機識別的二進(jìn)

14、制指令,從而被人們尊稱為“編譯器之母”。格蕾絲的另一個重要貢獻(xiàn)就是發(fā)明了面向商業(yè)的計算機高級語言COBOL,與當(dāng)時用于科學(xué)計算的Fortran語言不同的是,COBOL語言的句法更接近自然英語,將程序和數(shù)據(jù)截然分開,有較強的文件處理能力,特別適用于管理存儲在磁帶和磁盤上的大量數(shù)據(jù)。這一點后來對數(shù)據(jù)庫管理系統(tǒng)的發(fā)展產(chǎn)生重大影響。COBOL語言在六、七十年代得到了廣泛的應(yīng)用,因此,格蕾斯也被人們稱為“COBOL之母”。另一個值得一提的事情是格蕾斯創(chuàng)造了Bug這個詞,1947年,格蕾斯正用馬克2計算機進(jìn)行一項計算,突然機器停止了運行,她和同事們在一個繼電器中發(fā)現(xiàn)了一個已經(jīng)死掉的飛蛾,正是這個蟲子造成了

15、機器的故障,后來人們就把程序中的錯誤稱為Bug(蟲子),排除錯誤稱為Debugging(除蟲)。也是當(dāng)年的格蕾斯,在發(fā)明COBOL語言時,為了節(jié)約計算機存儲器,只用后兩位數(shù)字表示年份,為我們留下了一條危害巨大的“千年蟲”。 練 習(xí) 寫出下列關(guān)系表達(dá)式的值: a>b(已知a=3,b=4) x+1>=10(已知x=7) i<100(已知i=99) x*y<x+y(已知x=3,y=-2) 改正下列程序段或語句中的錯誤: If a11 Then x=x+1 Else x=x-1 If |y|15 Then y=3 If x>0 Then y=1 Else y=0 End 寫出下列程序的執(zhí)行結(jié)果。Private Sub Form_Click() Dim x As Single Let x = 38 If x < 20 Then Print "x<20" Else If x <= 50 Then Print "20<=x<=50" Else Print "x>50" End If End IfEnd Sub 從鍵盤輸入三個數(shù),輸出其中絕對值最大的數(shù),畫出流程圖。 設(shè)C盤BMP目錄下有15個BMP格式圖像文件:XXX01.BMP、XXX02.B

溫馨提示

  • 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

提交評論