《基本控制結(jié)構(gòu)》PPT課件
《《基本控制結(jié)構(gòu)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《基本控制結(jié)構(gòu)》PPT課件(43頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第4章 基本的控制結(jié)構(gòu),4.1 算法的表示 4.2 順序結(jié)構(gòu) 4.3 選擇結(jié)構(gòu) 4.4 循環(huán)結(jié)構(gòu) 4.5 跳轉(zhuǎn)控制Goto語(yǔ)句(略) 4.6 實(shí)例,4.1 算 法,算法 (Algorithm):解決問(wèn)題的方法和步驟。 特點(diǎn): 有窮性:算法必須在執(zhí)行有窮個(gè)計(jì)算步驟后終止。 確定性:算法中的每個(gè)計(jì)算步驟,必須精確定義,無(wú)二義性。 可行性:算法的每一個(gè)計(jì)算步驟,可以在有限時(shí)間內(nèi)完成。 輸入:算法要求有一個(gè)或多個(gè)輸入信息,作為初始數(shù)據(jù)。 輸出:算法要求有一個(gè)或多個(gè)輸出信息,是對(duì)輸入信息計(jì)算的結(jié)果。,算法的表示(書76頁(yè) 圖示 ),有多種表示算法的形式,如:傳統(tǒng)的流程圖、自然語(yǔ)言、N-S結(jié)構(gòu)化流程圖等。
2、 用流程圖來(lái)表示算法,非常直觀、形象: 起止框:表示算法的開始或結(jié)束。 處理框:表示初始化或運(yùn)算賦值等操作。 輸入輸出框,表示數(shù)據(jù)的輸入輸出操作。 判斷框:表示根據(jù)條件決定程序的流向。 流程線:表示流程的方向。,示例1:幸運(yùn)數(shù)字游戲程序 (Lucky Seven)。游戲規(guī)則:?jiǎn)螕簟靶D(zhuǎn)”按鈕,右邊的三個(gè)標(biāo)簽中會(huì)各出現(xiàn)一個(gè)數(shù)字,只要三個(gè)數(shù)字中有一個(gè)為“7”,窗體下方會(huì)顯示出一張圖片。 (教科書77頁(yè)),“旋轉(zhuǎn)”按鈕 算法設(shè)計(jì),,,,,,4.2 順序結(jié)構(gòu),順序結(jié)構(gòu)是最簡(jiǎn)單、最基本的程序控制結(jié)構(gòu)。類似“流水賬” ,按語(yǔ)句塊的順序自上至下順序執(zhí)行。 例如:兩個(gè)變量a、b的值互相交換。 Dim a%,
3、 b%, temp% temp=a:a=b:b=temp 算法如下: (1) 輸入數(shù)據(jù)a,b (輸入) (2) 交換數(shù)據(jù)(數(shù)據(jù)處理) (3) 顯示交換后的結(jié)果(輸出)。,運(yùn)用“條件判斷語(yǔ)句”。當(dāng)滿足某種條件時(shí),執(zhí)行某些語(yǔ)句(流程),否則程序?qū)凑樟硪粋€(gè)流程執(zhí)行。,4.3 選擇結(jié)構(gòu),If Then 語(yǔ)句塊1 Else 語(yǔ)句塊2 End If,If 語(yǔ)句,格式1:行 If 語(yǔ)句 If Then Else 行If 語(yǔ)句必須在同一行內(nèi)寫完。 例如:If X=Y Then Print “X=Y” Else Print “X Then If X = Y Then 語(yǔ)句塊1 Print “
4、X=Y” Else Else 語(yǔ)句塊2 Print “X 5、窗體呈現(xiàn)紅色字體 flag = 1 Else Form1.ForeColor=vbBlue 窗體呈現(xiàn)藍(lán)色字體 flag = 0 End If Print “歡迎使用VB編程” End Sub,示例3 :將學(xué)生成績(jī)(score)按五個(gè)等級(jí)輸出: 優(yōu)90-100,良80-89,中70-79,及格60-69,不及格 <60。將成績(jī)輸入文本框(只允許文本框接受數(shù)值數(shù)據(jù)),按回車后,在一個(gè)標(biāo)簽中顯示成績(jī)等級(jí)。 (詳見(jiàn)書80頁(yè)) 算法上的安排: (1) 判斷是否按了回車鍵(If Then) (2) 若按了回車,則 - 獲取成績(jī)數(shù)據(jù) - 設(shè)置標(biāo)簽相應(yīng)屬性 - 評(píng)定成績(jī)等級(jí),顯示結(jié)果 6、- 清空文本框,等待下一次成績(jī)輸入 (3) 過(guò)濾輸入的非數(shù)值數(shù)據(jù),Select Case 語(yǔ)句,根據(jù)表達(dá)式的不同取值,來(lái)決定執(zhí)行哪一個(gè)語(yǔ)句塊。 格式: Select Case 測(cè)試表達(dá)式 用來(lái)測(cè)試條件變量 Case 表達(dá)式列表1 表達(dá)式的可能取值 語(yǔ)句塊1 Case 表達(dá)式列表2 語(yǔ)句塊2 Case Else 語(yǔ)句塊n End Select,如果條件變量的值符合表達(dá)式的某個(gè)列表,則執(zhí)行該列表下面相應(yīng)的語(yǔ)句塊。 表達(dá)式列表 舉例: Case 1 To 10 如果條件變量的值在1, 10之間 Case Is 100 如果條件變量的值大于100 Case 7、“a” To “z” 如果條件變量的值在a到z之間 Select Case 語(yǔ)句 與 If 語(yǔ)句的作用類似。 示例4. 前面示例3的學(xué)生成績(jī)輸入與評(píng)定問(wèn)題,也可用Select Case語(yǔ)句替代 If 語(yǔ)句。 (參見(jiàn)書83頁(yè)),選擇結(jié)構(gòu)的嵌套,在一個(gè)選擇結(jié)構(gòu)中可以包含另一個(gè)選擇結(jié)構(gòu),稱為選擇結(jié)構(gòu)的嵌套。 例如: If 條件 Then 語(yǔ)句塊1 “語(yǔ)句塊1” 可能包含另一個(gè)選擇結(jié)構(gòu) Else 語(yǔ)句塊2 語(yǔ)句塊2可能包含另一個(gè)選擇結(jié)構(gòu) End If 注意: 每個(gè) If 語(yǔ)句要與其 Else、ElseIf、End If 配對(duì)。,示例5:已知方程AX2+BX+C=0的系數(shù)A、B、C,用文字說(shuō)明方 8、程的解:(參見(jiàn)書84頁(yè)) 當(dāng)A=0時(shí),若: B0, 顯示:“有一個(gè)實(shí)根” B=0,C=0, 顯示:“無(wú)定解” B=0,C0, 顯示:“無(wú)解” 當(dāng)A0時(shí),若: D=B*B-4*A*C0,顯示:兩個(gè)實(shí)根 D=0, 顯示:兩個(gè)相等的實(shí)根 D<0, 顯示:兩個(gè)共軛復(fù)根,If a=0 Then If b0 Then Print “有一個(gè)實(shí)根” Else b=0 If c=0 Then print “無(wú)定解” Else print “無(wú)解” End If End If Else a不等于0 d=b*b-4*a*c If 9、 d0 Then print “有兩個(gè)實(shí)根” ElseIf d=0 Then print “有兩個(gè)相等的實(shí)根” Else print “有兩個(gè)共軛復(fù)根” End If End If,IIF 函數(shù),1、IIF 用于執(zhí)行簡(jiǎn)單的條件判斷操作。 2、IIF是“IfThenElse” 結(jié)構(gòu)的簡(jiǎn)寫版本。 IIF函數(shù)的調(diào)用格式: 變量 = IIF(條件, True部分, False部分) 功能: 當(dāng)條件成立時(shí),變量取“True”部分的值,否則變量取“False”部分的值。 例如: Dim A as Integer, S as String 或 Dim A%, S$ A 10、=25 S = IIF(A10, “A大于10”, “A小于等于10” ) 此時(shí) S 的值為: S = “A大于10” 滿足條件A10,變量S 取True部分,4.4 循環(huán)結(jié)構(gòu),在實(shí)際應(yīng)用中,有些操作(程序段)需要反復(fù)執(zhí)行,可以使用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。,FOR / NEXT 結(jié)構(gòu),當(dāng)循環(huán)次數(shù)確定時(shí),可使用For / Next 循環(huán)語(yǔ)句。 格式: For 循環(huán)變量 = 初值 To 終值 Step 步長(zhǎng) 循環(huán)體 (程序體) Next 參數(shù)說(shuō)明: (1) 循環(huán)變量的初值、終值和步長(zhǎng)都必須是數(shù)值型表達(dá) 式或數(shù)值型變量。 (2) 若步長(zhǎng)0,則應(yīng)該初值 終值,循環(huán)變量遞減; 若步長(zhǎng)=1,循環(huán)變量遞增為 11、1,此時(shí)步長(zhǎng)可以省略。,FOR / NEXT 循環(huán)結(jié)構(gòu) 流程圖 (書85頁(yè)),示例6:計(jì)算階乘 N! 計(jì)算階乘的常用方式(常用定式) 方法1. 從文本框獲取輸入數(shù)據(jù)N: Dim N as integer, i as integer, Dim item% %: 整型數(shù)Integer N=Text1.text 從文本框獲取N的數(shù)值 item = 1 階乘初始值 For i=1 to N 計(jì)算N的階乘, 缺省步長(zhǎng)為1 item = item*i Next I Print N; “! =”; item,計(jì)算階乘 N! 方法2. 利用輸入框(InputBox)獲取數(shù)據(jù)。 Private Sub Fo 12、rm_Click() Dim N As Integer, i As Integer Dim item% N = InputBox(“請(qǐng)輸入一個(gè)整數(shù)” ; “計(jì)算階乘”) item = 1 For i = 1 To N item = item * i Next i Print N; “! =”; item End Sub,DO / LOOP 語(yǔ)句,循環(huán)次數(shù)不確定,但已知循環(huán)開始或結(jié)束 的條件,可使用 DO / LOOP 語(yǔ)句實(shí)現(xiàn)循環(huán)。 格式1:先判斷條件,后執(zhí)行循環(huán)體 Do while|until 循環(huán)體(語(yǔ)句塊) Loop 格式2:先執(zhí)行循環(huán)體,后判斷條件 13、 Do 循環(huán)體(語(yǔ)句塊) Loop while|until ,格式說(shuō)明(詳見(jiàn)書86頁(yè) 圖4-9) While : 當(dāng)滿足條件時(shí),執(zhí)行循環(huán)。 Until : 當(dāng)滿足條件時(shí),跳出 (結(jié)束) 循環(huán)。 循環(huán)體中必須有使循環(huán)條件的邏輯值發(fā)生變化的語(yǔ)句,否則程序?qū)⑦M(jìn)入死循環(huán),“永無(wú)止境”。,計(jì)算累加值的常用定式: sum=0 sum = sum +累加項(xiàng) 最后得到的 sum 即為累加結(jié)果。 示例7:求 1+2++100 的累加值。 方法1. 用For / Next 循環(huán)求累加。 sum=0 For i = 1 to 100 sum = sum + i Next i,方法2. 用 DO 14、LOOP 循環(huán)求累加。 sum = 0 初值 i = 1 i 是循環(huán)條件變量,初值設(shè)為1。 Do While i 100 當(dāng)滿足條件時(shí),跳出循環(huán),While / Wend語(yǔ)句,功能與 Do While / Loop 語(yǔ)句類似。 格式:While 語(yǔ)句塊 Wend 例:倒計(jì)時(shí)(書88-89頁(yè)) Sub Form_Click ( ) Dim TimeLeft As Integer TimeLeft = 5 While TimeLeft = 1 滿足條件就繼續(xù)執(zhí)行循環(huán)體 Print TimeLeft TimeLeft = TimeLeft 1 Wend End Sub,示例8 15、:求自然對(duì)數(shù)的近似值。按下面公式累加,直到最后一個(gè)累加項(xiàng)的值小于10-6 為止。 (參見(jiàn)書86-87頁(yè)) 程序算法結(jié)構(gòu)可表達(dá)為: sum = 1 sum存放累加值。初始累加值=1 (1)開始循環(huán): - 先計(jì)算相應(yīng)階乘 i !(item=item*i) - 再計(jì)算相應(yīng)累加 sum = sum + ( 1 / i! ) (2) 結(jié)束循環(huán)。結(jié)束條件: (1 / i! ) < 10-6,用 Do while / loop 循環(huán)計(jì)算自然對(duì)數(shù)近似值: Private Sub Form_Click() Dim sum As Single, item As Single Dim i As Integer, 16、 n As Integer item = 1 sum = 1 i = 1 Do While 1 / item = 0.000001 item = item * i sum = sum + (1 / item) i = i + 1 Loop Print “自然對(duì)數(shù)近似值:”; sum, “累加項(xiàng)數(shù):”, i-1 End Sub,從循環(huán)體中退出:Exit 語(yǔ)句,根據(jù)需要,可以在不滿足條件時(shí),中途強(qiáng)迫循環(huán)結(jié)束,直接退出。 用 Exit 語(yǔ)句可以直接退出For循環(huán)、Do循環(huán)。,Do While | Until條件 語(yǔ)句序列 Exit Do 語(yǔ)句序列 Loop,For 循環(huán)初值 To 終值 17、 Step 語(yǔ)句序列 Exit For 語(yǔ)句序列 Next 循環(huán)控制變量,循環(huán)嵌套(參見(jiàn)書91頁(yè) 圖4-11),1、一個(gè)循環(huán)體內(nèi)可以包含其它選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)。 2、內(nèi)外循環(huán)體不能交叉。 3、內(nèi)循環(huán)體可跳出來(lái),外循環(huán)體不能跳進(jìn)去。 4、并列的若干循環(huán)體彼此不能互相跳轉(zhuǎn)。 5、先執(zhí)行內(nèi)循環(huán),再執(zhí)行外循環(huán)。 6、注意循環(huán)結(jié)構(gòu)的完整性。 每個(gè)For與Next、 Do與Loop、 While與Wend 要配對(duì)。,示例9:在窗體上用“ * ”打印菱形。 (參見(jiàn)書91頁(yè)) 算法安排: - 根據(jù)行數(shù),確定在該行輸出“ * ”的數(shù)量。 - 確定每行第一個(gè)“ * ”出現(xiàn)的位置。 - 換行,準(zhǔn)備在下一行輸出“ 18、* ”。,Private Sub form_Click() Dim i%, j%, k% CurrentY = 1000 For i = 1 To 9 共打印9行 If i < = 5 Then 15行 k = i k :前5行每行打印的*號(hào)個(gè)數(shù) Else 69行 k = 10 - i 后4行打印的*號(hào)個(gè)數(shù)與前5行對(duì)稱相等 End If CurrentX = 1000 Print Space(20 - k); 確定每行的*號(hào)起始位置 從第 i 行*號(hào)起始位置開始按列j輸出每個(gè)*號(hào) For j = 1 To 2 * k - 1 Print “*”; Nex 19、t j 下一列 Print 回車換行 Next i 下一行 End Sub,示例10. 打印“斐波那契”數(shù)列1、1、2、3、5、8 中的前40項(xiàng),要求每行打印10項(xiàng)。 (參見(jiàn)教科書95頁(yè)) 分析: “斐波那契”數(shù)列(Fabonacci)的每一項(xiàng)是前兩項(xiàng)之和。首兩項(xiàng)的值為1。可用三個(gè)變量F1,F(xiàn)2,F(xiàn)3表示這樣的數(shù)列: F1=1, F2=1, F3=F1+F2,由此開始循環(huán),求出第3項(xiàng)之后的數(shù)列。,Private Sub Form_Click() Dim i%, f1 If i Mod 10 = 0 Then Print 換行 a = 0 End If Next i 20、 End Sub,示例11. 密碼檢驗(yàn)程序。(教科書95頁(yè)) 在文本框中輸入預(yù)制的密碼“123456”,并按回車鍵,標(biāo)簽顯示 “歡迎光臨!”;如果輸入的密碼與預(yù)制密碼不吻合,標(biāo)簽顯示“密碼不對(duì),請(qǐng)重新輸入!”,同時(shí)清空文本框,允許再輸入一遍;如果連續(xù)三次輸入的密碼都不對(duì),標(biāo)簽顯示“已超時(shí),請(qǐng)退出程序!”,文本框失效。運(yùn)行界面如下圖所示。,,算法: 利用文本框的KeyPress事件。定義一個(gè)局部靜態(tài)變量a, 用來(lái)記錄輸入密碼次數(shù)(0、1、2)。具體步驟如下: 判斷是否按了回車鍵? 若是,判斷密碼是否正確? 若正確,標(biāo)簽顯示“歡迎光臨!” 若不正確 判斷a是否大于等于2? 21、若a=2:標(biāo)簽顯示“已超時(shí),請(qǐng)退出程序!” 文本框設(shè)為不可用(enabled=false) 若a<2: 標(biāo)簽顯示“密碼不對(duì),請(qǐng)重新輸入! 并清空文本框。 a=a+1 (輸入次數(shù)加1),Private Sub Text1_KeyPress(KeyAscii As Integer) Static a As Integer If KeyAscii = 13 Then 按下回車鍵 If Text1.Text = “1234567” Then 密碼輸入正確 Label2.Caption = “歡迎光臨!” Else 密碼錯(cuò)誤 If a 22、= 2 Then Label2.Caption = “已超時(shí),請(qǐng)退出程序!” Text1.Enabled = False Else Label2.Caption = “密碼不對(duì),請(qǐng)?jiān)佥斎胍槐?!? Text1.Text = “” a = a + 1 輸入密碼次數(shù)加1 End If End If Label2.Visible = True End If End Sub,4.5 跳轉(zhuǎn)控制 Goto 語(yǔ)句(略),Goto 語(yǔ)句格式: Goto 語(yǔ)句標(biāo)號(hào) 功能:無(wú)條件地轉(zhuǎn)移到語(yǔ)句標(biāo)號(hào)指定的程序行去執(zhí)行。 例: Private Sub form_click( 23、) Dim x As Integer Dim sum As Integer Start: Start:語(yǔ)句標(biāo)號(hào) x = InputBox(請(qǐng)輸入一個(gè)整數(shù):) If x = 0 Then Goto 100 If x Mod 2 = 0 Then sum = sum + x End If Goto Start 100 Print “偶數(shù)和為=”; sum 100:語(yǔ)句標(biāo)號(hào) End Sub,On Goto 語(yǔ)句 格式:On Goto | 功能:根據(jù)“數(shù)值表達(dá)式”的值,把控制轉(zhuǎn)移到幾個(gè)指定的語(yǔ)句行中的一個(gè)語(yǔ)句。 執(zhí)行過(guò)程: 先計(jì)算“數(shù)值表達(dá)式”的值,將其四舍五入成為整數(shù),然后根據(jù)該 24、整數(shù)值,決定跳到第幾個(gè)行標(biāo)號(hào)去執(zhí)行: 若“數(shù)值表達(dá)式”的值為1,轉(zhuǎn)移到OnGoto語(yǔ)句后的第1個(gè)行標(biāo)號(hào)所指出的語(yǔ)句行;若為2,轉(zhuǎn)移到第2個(gè)行標(biāo)號(hào)所指出的語(yǔ)句行;依次類推。如果“數(shù)值表達(dá)式”的值為0或大于“|”中的項(xiàng)數(shù),將自動(dòng)執(zhí)行OnGoto語(yǔ)句的下一條語(yǔ)句。,第4章 小結(jié),1、常用的基本控制結(jié)構(gòu): 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。 2、三種基本結(jié)構(gòu)的語(yǔ)句格式、執(zhí)行流程、用途。編程求解問(wèn)題時(shí),選用合適的結(jié)構(gòu)來(lái)設(shè)計(jì)算法。 3、掌握一些常用的編程定式: (1) 階乘(連乘)定式(書8586頁(yè)) (2) 累加定式(書86頁(yè)尾) (3) 兩數(shù)交換(書78頁(yè)) (4) 規(guī)則的二維圖形的輸出(例如打印菱形,91頁(yè)) (5) 控制一行輸出的數(shù)據(jù)個(gè)數(shù)(例如書95頁(yè) 實(shí)例4.2),作業(yè)與實(shí)驗(yàn),1、課后練習(xí):教科書 98頁(yè) 習(xí)題4 2、上機(jī)實(shí)驗(yàn) 實(shí)驗(yàn)四 選擇結(jié)構(gòu) 實(shí)驗(yàn)五 循環(huán)結(jié)構(gòu) 必做:基礎(chǔ)題,要求上交實(shí)驗(yàn)作業(yè)。 選做:拓展題,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工重大危險(xiǎn)源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會(huì)知識(shí)問(wèn)答
- 8 各種煤礦安全考試試題
- 9 危險(xiǎn)化學(xué)品經(jīng)營(yíng)單位安全生產(chǎn)管理人員模擬考試題庫(kù)試卷附答案
- 加壓過(guò)濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹脂砂混砂工藝知識(shí)總結(jié)
- XXXXX現(xiàn)場(chǎng)安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級(jí))職業(yè)技能理論知識(shí)考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫(kù)試卷含答案
- 工段(班組)級(jí)安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫(kù)試卷含答案-4
- 建筑起重司索信號(hào)工安全操作要點(diǎn)
- 實(shí)驗(yàn)室計(jì)量常見(jiàn)的30個(gè)問(wèn)問(wèn)答題含解析