[PPT模板]第 5 章 程序控制结构

上传人:m**** 文档编号:578860219 上传时间:2024-08-25 格式:PPT 页数:71 大小:372KB
返回 下载 相关 举报
[PPT模板]第 5 章 程序控制结构_第1页
第1页 / 共71页
[PPT模板]第 5 章 程序控制结构_第2页
第2页 / 共71页
[PPT模板]第 5 章 程序控制结构_第3页
第3页 / 共71页
[PPT模板]第 5 章 程序控制结构_第4页
第4页 / 共71页
[PPT模板]第 5 章 程序控制结构_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《[PPT模板]第 5 章 程序控制结构》由会员分享,可在线阅读,更多相关《[PPT模板]第 5 章 程序控制结构(71页珍藏版)》请在金锄头文库上搜索。

1、第第 5 5 章章 程序控制结构程序控制结构顺序结构顺序结构分支结构分支结构循环结构循环结构1第5章 程序控制结构5.1 顺序结构顺序结构 顺序结构是在程序执行时,根据程序中语句的书写顺序依次执顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的语句序列,其程序执行流程是按顺序完成操作的。行的语句序列,其程序执行流程是按顺序完成操作的。2第5章 程序控制结构5.1 顺序结构顺序结构例例5.15.1:创建一个窗体,用字符拼凑一个图形。:创建一个窗体,用字符拼凑一个图形。35.2 选择结构程序设计本章要点本章要点: 条件语句条件语句单行结构条件语句单行结构条件语句If.Then.Else .

2、块结构条件语句块结构条件语句If.Then.EndIf多分支选择语句多分支选择语句Select Case.End Select特点特点: 根据条件是否成立,决定程序的执行分支根据条件是否成立,决定程序的执行分支45.2.1 5.2.1 单行结构条件语句单行结构条件语句1. 格式格式 If Then Else 2. 功能功能 如果如果 成立,则执行成立,则执行 ,否则执否则执行行 T语句组语句组1条件条件?语句组语句组2F53. 说明说明(1) 可以是:可以是: 关系表达式关系表达式布尔表达式布尔表达式数值表达式:数值表达式:0为为False;非非0为为True字符串表达式:字符串表达式: 0为

3、为False;非非0为为True(2) 可以没有可以没有Else部分,这时必须有部分,这时必须有 。T语句组语句组1条件条件?F 例例: If Xaaa Then Print X6(3) 、 : 可以有多条语句,各语句之间用冒号隔开。可以有多条语句,各语句之间用冒号隔开。例例: If N0 Then A=A+B:B=B+A Else A=A-B:B=B-A(4)(4)应作作为一条一条语句句书写。如果写。如果语句太句太长需要需要换行,必行,必须在折行在折行处使用使用续行符号行符号。(5) 无论条件是否成立,都具有共同出口无论条件是否成立,都具有共同出口例例: If X = 0 Then X =

4、1 + X Else X = 5 - X Y = 1 - X Print Y=; Y 若若 X=2 则打印则打印 Y=-2 若若 X=-2 则打印则打印 Y=-6共同出口共同出口(6)(6)单行结构条件语句可以嵌套单行结构条件语句可以嵌套 IF . THEN.IF . THEN .ELSE .ELSE7【例【例5-1】设界面如下图所示,用文本框输】设界面如下图所示,用文本框输入入x的值,单击的值,单击“计算计算Y”按钮时,根据以下按钮时,根据以下公式计算公式计算y的值。的值。|x| x0lnx x0y=Private Sub Command1_Click() X = Val(Text1.Tex

5、t) If X 0 Then Y = Log(X)Label3.Caption = Y程序段程序段2:X = Val(Text1.Text)Y = Log(X)If X 0,Y0 X0,Y0 第二象限第二象限 X0X0 第三象限第三象限 X0,Y0 X0,Y0,Y0,Y 0 Then If Y 0 Then Print IN A Else _ Print IN D Else If Y 0 Then Print IN B _ Else Print IN C End Sub105.2.2 块结构条件语句块结构条件语句1.1.格式格式If 1 Then 1 ElseIf 2 Then 2 ElseI

6、f N Then N Else End IfIf 1 Then 语句组语句组11Else 语句组语句组22End IfElseElse子句子句ElseIfElseIf子句子句IfIf语句语句End IfEnd If语句语句注意注意: 格式书写、嵌套格式书写、嵌套11块结构条件语句的功能:TTTF条件条件1 1语句组语句组1 1语句组语句组2 2条件条件2 2F条件条件n n语句组语句组n nF语句组语句组n+1n+112【例【例5-3】输入华氏温度】输入华氏温度F,利用公式利用公式C=5/9*(F-32)转换成摄氏温度转换成摄氏温度C,根据根据转换结果转换结果C的不同值,按的不同值,按以下要求

7、给出相应的提示。以下要求给出相应的提示。C40时,打印时,打印HOT 30C40时,打印时,打印 WARM 20C30时,打印时,打印 ROOM TEMPERATURE 10C20时,打印时,打印 COOL 0 40 Then Label2.Caption = HOT ElseIf C 30 Then Label2.Caption = WARM ElseIf C 20 Then Label2.Caption = ROOM TEMPERATURE ElseIf C 10 Then Label2.Caption = COOL ElseIf C 0 Then Label2.Caption = COL

8、D Else Label2.Caption = FREEZING End IfEnd Sub 14注意:注意:(1) ElseIf不能写成不能写成Else If,即中间不能有空即中间不能有空格。格。(2) 在书写时,可以将在书写时,可以将If语句、语句、ElseIf子句、子句、Else子句、和子句、和End If语句左对齐,而各语句组语句左对齐,而各语句组向右缩进若干空格,以使程序结构更清楚。向右缩进若干空格,以使程序结构更清楚。(3) 严格按格式要求书写,不可随意换行或将严格按格式要求书写,不可随意换行或将两行合并成一行。例如,对于条件结构:两行合并成一行。例如,对于条件结构: If x =

9、 0 Then y = 1 Else y = 2 End If 以下两种写法都是错误的:以下两种写法都是错误的: 写法一:写法一:If x=0 Then y=1Else y = 2End If写法二:写法二:If x = 1 Then y = 10 Else y = 20End If155.2.3 多分支选择语句多分支选择语句1. 格式格式 Select Case Case Case Case Else End Select2. 功能功能: 根据测试表达式的值根据测试表达式的值,按顺序匹配按顺序匹配Case后的表达后的表达式式,如果匹配成功如果匹配成功,则执行该则执行该Case下的语句块下的语

10、句块,然后转到然后转到End Select语句之后继续执行。语句之后继续执行。16语句组语句组n+1n+1TTTF匹配匹配表达式表表达式表1语句组语句组1 1语句组语句组2 2F语句组语句组n nF匹配表达式匹配表达式表表2匹配表达式匹配表达式表表n多分支选择语句的功能流程图多分支选择语句的功能流程图: :173. 说明说明 : 数值或字符表达式数值或字符表达式 Case 表达式表表达式表: 表中的表项为如下形式表中的表项为如下形式: (1) 表达式表达式1,表达式表达式2. 如如: Case 1 , 3 , 5 (2) 表达式表达式1 TO 表达式表达式2 如如: Case 10 TO 30

11、 Case A TO Z (3) Is 如如: Case Is = 10 Case Is = 0 与与 Case 0 相同相同 注意注意: 测试表达式的类型应与测试表达式的类型应与Case后表达式后表达式类型一致,且三种形式可以混用类型一致,且三种形式可以混用,如如: Case Is -5 , 0 , 5 To 10018Y=ex+e-x x0X = Val(Text1.Text)Select Case XCase Is 0 Y = Log(X) / Log(10)End SelectPrint Y=; YX = Val(Text1.Text)Select Case XCase X 0 Y =

12、 Log(X) / Log(10)End SelectPrint Y=; Y【例【例5-4】按以下公式求分段函数按以下公式求分段函数y的值。的值。19 如果在条件成立或不成立的情况下要继续判如果在条件成立或不成立的情况下要继续判断其他条件,则可以使用嵌套的条件语句来实现,断其他条件,则可以使用嵌套的条件语句来实现,也就是在语句组中再使用另一个条件语句。也就是在语句组中再使用另一个条件语句。5.2.4 条件语句的嵌套条件语句的嵌套块结构条件语句的嵌套示例:块结构条件语句的嵌套示例:If A = 1 Then If B = 0 Then Print *0* ElseIf B = 1 Then Pr

13、int *1* End IfElseIf A = 2 Then Print *2*End If20多分支选择语句的嵌套示例:多分支选择语句的嵌套示例:Select Case A Case 1 Select Case B Case 0 Print *0* Case 1 Print *1* End Select Case 2 Print *2*End Select21 多多分分支支选选择择语语句句与与块块结结构构条条件件语语句句的的互互相相嵌嵌套示例:套示例:Select Case A Case 1 If B = 0 Then Print *0* ElseIf B = 1 Then Print *

14、1* End If Case 2 Print *2*End Select221IIf函数函数格式格式: IIf(, , )功能功能: 当当的值为的值为True时,返回第时,返回第2个参个参数的值;当数的值;当的值为的值为False时,返回时,返回第第3个参数的值。个参数的值。(类似于具有两个分支的类似于具有两个分支的If语句的功能语句的功能)例例: 使用使用IIf函数求两个变量函数求两个变量A和和B的较大数。的较大数。 MaxAB = IIf(A B, A, B) 例例: 使用使用IIf函数求三个变量函数求三个变量A、B和和C的最大数。的最大数。 MaxAB = IIf(A B, A, B)

15、MaxABC = IIf(MaxAB C, MaxAB, C)5.3 条件函数条件函数232Choose函数函数格式格式: Choose(, ,.,)功能功能: 当当的值为的值为1时,返回时,返回的值;当的值;当的值为的值为2时,返回时,返回的值;的值;。如果。如果的的值不是整数,则会先四舍五入为整数。值不是整数,则会先四舍五入为整数。 例例: 将成绩将成绩1分、分、2分、分、3分、分、4分和分和5分转换成相分转换成相应的等级应的等级: 不及格(不及格(1分,分,2分)、及格(分)、及格(3分),良(分),良(4分),优(分),优(5分)。分)。 Grade = Choose(Score, 不

16、及格不及格, 不及不及格格, 及格及格, 良良, 优优)24应用举例应用举例【例】设计一个口令检测程序,界面如下图,当用【例】设计一个口令检测程序,界面如下图,当用户输入的口令正确时,显示户输入的口令正确时,显示“恭喜!您已成功进入恭喜!您已成功进入本系统本系统”,否则,显示,否则,显示,“口令错!请重新输入口令错!请重新输入”。如果连续两次输入了错误口令,在第三次输入。如果连续两次输入了错误口令,在第三次输入完口令后则显示一个消息框,提示完口令后则显示一个消息框,提示“对不起对不起,您不您不能使用本系统能使用本系统”,然后结束程序的执行。,然后结束程序的执行。Text1Label225Pri

17、vate Sub Text1_KeyUp(KeyCode As Integer, _ Shift As Integer) Static I As Integer 保存输入错误口令的次数保存输入错误口令的次数 If KeyCode = 13 Then 如果按下的键为回车键如果按下的键为回车键 If UCase(Text1.Text) = HELLO Then Label2.Caption = 恭喜恭喜!,您已成功进入本系您已成功进入本系统统 ElseIf I = 0 Or I = 1 Then I = I + 1 Label2.Caption = 口令错口令错!,请重新输入请重新输入 Text1

18、.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else MsgBox 对不起对不起,您不能使用本系统您不能使用本系统: End End If End IfEnd Sub26【例【例5-6】求一元二次方程】求一元二次方程ax2+bx+c=0的解的解 。 分析分析: (1) 如果如果a=0,则不是二次方程,此时如果则不是二次方程,此时如果b=0,则提示重新输入系数;如果则提示重新输入系数;如果b 0,则则: x=-c/b (2) 如果如果a 0,且且b2-4ac=0,则有两个相等的实则有两个相等的实根根 (3) 如果如果a 0,且且b2-4ac0,

19、则有两个不等的实则有两个不等的实根根 (4) 如果如果a 0,且且b2-4ac 0 X1 = (-B + Sqr(Delta) / (2 * A) X2 = (-B - Sqr(Delta) / (2 * A) Print X1=; Format(X1, 0.000) CurrentX = 600: CurrentY = 1300 Print X2=; Format(X2, 0.000) Case Is 0 A1 = -B / (2 * A) A2 = Sqr(Abs(Delta) / (2 * A) 29 Print X1=; Format(A1, 0.000); +; _ Format(A

20、2, 0.000); i CurrentX = 600 CurrentY = 1300 Print X2=; Format(A1, 0.000); -; _ Format(A2, 0.000); i End SelectEnd Sub30 【例】【例】设计一个四则运算的自我练习应用设计一个四则运算的自我练习应用程序,界面如下图所示。程序,界面如下图所示。 Text1Text4Text3Text2Label4Label231要求要求: (1) 执行时,当在执行时,当在Text1中输入一种运算符后,中输入一种运算符后,在标签在标签Label2中立即出现该运算符号。中立即出现该运算符号。(2) 单击

21、单击“出题出题”按钮可以产生两个按钮可以产生两个0,1000之间的随机整数,这时由之间的随机整数,这时由Text2、Label2和和Text3组成一个表达式。组成一个表达式。(3) 可以通过单击可以通过单击“计算计算”按钮计算所生成的按钮计算所生成的表达式的值。表达式的值。(4) 也可以由用户在文本框也可以由用户在文本框Text4中输入运算结中输入运算结果通过单击果通过单击“判断判断”按钮可以判断输入的运算按钮可以判断输入的运算结果是否正确,然后在结果是否正确,然后在Label4上显示上显示“正确正确”或或“错误错误”。(5) 单击单击“退出退出”按钮结束运行。按钮结束运行。32(1) 在在T

22、ext1中输入加、减、乘、除符号后中输入加、减、乘、除符号后,在在Label2中立即出现相应的运算符号。中立即出现相应的运算符号。 Private Sub Text1_Change() Label2.Caption = Text1.Text End Sub(2) 单击单击“出题出题”按钮按钮Command1,生成两个生成两个0,1000之间的随机整数。之间的随机整数。 Private Sub Command1_Click() Randomize Text2.Text = Int(Rnd * 1001) Text3.Text = Int(Rnd * 1001) Text4.Text= End S

23、ub33(3) 单击单击“计算计算”按钮按钮Command2得出得出Text4的值。的值。Private Sub Command2_Click() If Label2.Caption = + Then Text4.Text = Val(Text2.Text) + Val(Text3.Text) ElseIf Label2.Caption = - Then Text4.Text = Val(Text2.Text) - Val(Text3.Text) ElseIf Label2.Caption = * Then Text4.Text = Val(Text2.Text) * Val(Text3.Te

24、xt) ElseIf Label2.Caption = / Then Text4.Text = Val(Text2.Text) / Val(Text3.Text) Else MsgBox 运算类型错,请重输运算类型错,请重输, , 警告警告 Text1.SetFocus: Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End IfEnd Sub34(4) Text4的内容也可以由用户输入,通过单击的内容也可以由用户输入,通过单击“判断判断”按钮按钮Command3判断输入结果是否正判断输入结果是否正确。确。 Private Sub C

25、ommand3_Click() Select Case Label2.Caption Case + If Text4.Text=Val(Text3.Text)+Val(Text2.Text) Then Label4.Caption = 正确正确 Else Label4.Caption = 错误错误 End If35Case - If Text4.Text=Val(Text2.Text)-Val(Text3.Text) Then Label4.Caption = 正确正确 Else Label4.Caption = 错误错误 End IfCase * If Text4.Text=Val(Text

26、2.Text)*Val(Text3.Text) Then Label4.Caption = 正确正确 Else Label4.Caption = 错误错误 End If36 Case / If Text4.Text=Val(Text2.Text)/Val(Text3.Text) Then Label4.Caption = 正确正确 Else Label4.Caption = 错误错误 End If Case Else a=MsgBox(运算类型错,请重输运算类型错,请重输, , 警告警告) Text1.SetFocus Text1.SelStart = 0 Text1.SelLength =

27、Len(Text1.Text) End SelectEnd Sub注注: 因实数的不精确表示,除法判断条件应写成因实数的不精确表示,除法判断条件应写成: Abs(Val(Text4.Text) - Val(Text2.Text) / Val(Text3.Text) 0.000001 375.4 循环结构程序设计循环结构程序设计* *要点要点: For.Next循环循环While.Wend循环循环Do.Loop循环循环特点特点: : 重复相同或相似的操作步骤重复相同或相似的操作步骤结构结构: : 循环体循环体要重复执行的语句序列。要重复执行的语句序列。 循环控制部分循环控制部分规定循环的重复条件

28、或重规定循环的重复条件或重复次数,确定循环范围的语句复次数,确定循环范围的语句38初值初值 循环变量循环变量5.4.1 ForNext循环结构循环结构1. 格式格式For = To Step 1 Exit For 2Next 循环变量值超过终值?循环变量值超过终值?执行循环体执行循环体循环变量循环变量+步长步长 循环变量循环变量后续语句后续语句YesNo2. 功能功能: 执行过程如执行过程如流程图所示流程图所示393. 3. 说明说明(1)(1)循环变量循环变量数值变量数值变量(2)(2)初值初值, ,终值终值, ,步长步长数值表达式数值表达式(3)(3)步长步长可正可负可正可负, ,但不能为

29、但不能为0,0,为为1 1时可以省略时可以省略 步长步长00时,必须时,必须: : 初值初值= 终值终值 步长步长0= = 终值终值 循环结束条件循环结束条件循环变量的值循环变量的值 终值终值(4)(4)Exit For退出循环,常放在条件语句中退出循环,常放在条件语句中(5)(5)Next之之后的循环变量应与后的循环变量应与ForFor语句中的循环变量语句中的循环变量一致,也可以省略一致,也可以省略40例例: 判断以下程序段的执行结果判断以下程序段的执行结果: For i = 5 To 1 Step -1 Print i * i; Next i Print Print i例例: 判断以下程序

30、段的执行结果判断以下程序段的执行结果: X = 6 For K = 1 To 10 Step -2 X = X + K Next K Print K,XK=1;超过终值超过终值不进入循环不进入循环41Text1 Label3累加分析累加分析: 累加器累加器(变量变量)初值初值 S=0 循环体循环体(重复执行重复执行) S=S+I (I=1,2,N)Private Sub Command1_Click() Dim N As Integer, I As Integer, S As Integer N = Val(Text1.Text) S = 0 For I = 1 To N S = S + I

31、Next I Label3.Caption = SEnd Sub【例】求【例】求1+2+3+4+N42思考思考: 1. 求求12+22+32+42+10022. 求求13+33+53+n33. 求求1-3+5-7+(-1)n+1(2n-1)4. 求求5. 求求43 【例】求【例】求 N!( N!=123N) 累乘分析累乘分析: 初始化初始化: F=1 循环体循环体: F=F I (I=1,2,3N) 程序程序: Private Sub Command1_Click() Dim N As Integer, I As Integer, F As Long N = Val(Text1.Text) F

32、 = 1 For I = 1 To N F = F * I Next I Text2.Text = F End Sub44思考: 1. 求13 5 7(共N项)。2. 求求: 3. 求求: 45【例【例6-3】打印斐波那契】打印斐波那契(Fibonacci)数列的前数列的前20项项 斐波那契数列如下斐波那契数列如下: 0,1,1,2,3,5,8,13, 即从第三项起每一项是其前两项之和。即从第三项起每一项是其前两项之和。 分析分析: Private Sub Form_Click()A = 0: B = 1Text1.Text=Text1.Text & Str(A) & Str(B) & vbC

33、rLfFor I = 1 To 9 A = A + B B = A + B Text1.Text=Text1.Text & Str(A) & Str(B) & vbCrLfNext IEnd Sub46思考思考: 1. 在窗体上打印在窗体上打印1、3、5、7、9、N。2. 在窗体上显示在窗体上显示1到到500之间所有能被之间所有能被3整整除的数,每行除的数,每行10个数。个数。3. 在带水平滚动条文本框中显示在带水平滚动条文本框中显示1到指定到指定N之间所有能被之间所有能被3和和7同时整除的数。同时整除的数。4. 在带垂直滚动条的文本框中显示在带垂直滚动条的文本框中显示003600之间的正弦和

34、余弦值,每隔之间的正弦和余弦值,每隔20求一组值。求一组值。475.4.2 While.Wend循环结构循环结构问题问题: 求求12+22+32+42+小于某数小于某数N的最大值,的最大值,N由用户指定。由用户指定。特点特点: 已知循环条件、未知循环次数,已知循环条件、未知循环次数, 用用While.Wend循环结构实现较方便循环结构实现较方便1. 格式格式 While Wend2. 功能功能F F条件条件?语句组语句组T T48【例】使用【例】使用While.Wend循环求循环求12+22+32+大于某数大于某数N的最小值,的最小值,N由用户由用户指定。指定。Text1Label2Comma

35、nd1分析:分析:是累加问题是累加问题初始化初始化: S=0 I=0 N由由Text1输入输入循环条件循环条件: S=N循环体循环体: I=I+1 S=S+I249“计算计算”按钮按钮Command1的的Click事件过程如事件过程如下:下:Private Sub Command1_Click() Dim I As Integer, N As Integer, S As Integer N = Val(Text1.Text) I = 0 : S = 0 While S = N I = I + 1 S = S + I * I Wend Label2.Caption = SEnd SubWhile

36、.Wend循环可以使用循环可以使用Do.Loop循环来代替,循环来代替,但但Do.Loop循环具有更多的形式。循环具有更多的形式。思考思考:求求12+22+32+42+小于小于某数某数N的最大值的最大值505.4.2 DoLoop循环结构循环结构格式:格式一格式一: Do While Exit Do Loop格式二格式二: Do Until Exit Do Loop条件条件?循环体循环体TF条件条件?循环体循环体FT功能:功能:51格式格式:格式三格式三: Do Exit Do Loop While 格式四格式四: Do Exit Do Loop UntilT条件条件?循环体循环体F功能:功能

37、:T条件条件?循环体循环体F52说明说明:(1)Exit Do语句用于退出循环体语句用于退出循环体(2)也可以在也可以在Do语句和语句和Loop语句之后都没有条件语句之后都没有条件, 这时在循环体内必须有强行退出循环的语句即:这时在循环体内必须有强行退出循环的语句即: Do Exit Do Loop (3)当当型型循循环环可可能能一一次次都都不不执执行行;而而直直到到型型循循环环至至少少要要执执行行一一次次循循环环体体。多多数数情情况况下下,当当型型循循环和直到型循环可互相代替。环和直到型循环可互相代替。53【例6-5】求直至最后一项的值直至最后一项的值10-4为止。为止。分析分析:用用Sum

38、表示累加和,表示累加和,初值初值: Sum=0 重复重复: Sum=Sum+Term 用用N表示表示1,3,5,7,初值初值: N=1 重复重复: N=N+2 用用Term表示每一项,表示每一项, 则则Term=1/(N*N)归纳:归纳: 初始化初始化 N=1,Sum=0 重复重复 Term=1/(N*N) , Sum=Sum+Term ,N=N+2 循环终止条件循环终止条件 Term=0.0001 54设单击窗体时开始计算,结果打印在窗体上。设单击窗体时开始计算,结果打印在窗体上。Private Sub Form_Click() N = 1 : Sum = 0 Do Term = 1 / (

39、N * N) Sum = Sum + Term N = N + 2 Loop Until Term =2PText1Text2Text3Text456设单击窗体时开始计算:设单击窗体时开始计算:Private Sub Form_Click() P = Val(Text1.Text) R = Val(Text2.Text) / 100 V = P:Y = 0 Do Until V = 2 * P Y = Y + 1 V = V * (1 + R) Loop Text3.Text = Y Text4.Text = Format(V, 0.00)End Sub57【例】给出两个正整数【例】给出两个正

40、整数M、N,求它们的最大求它们的最大公约数和最小公倍数。公约数和最小公倍数。分析分析: 求最大公约数的方法如下求最大公约数的方法如下(1) 以以M作被除数,作被除数,N作除数,求余数作除数,求余数R。(2) 如果如果R不为零,则将除数不为零,则将除数N做为新的被除数做为新的被除数M,将余数将余数R做为新的除数做为新的除数N,再进行相除,再进行相除,得到新的余数得到新的余数R。(3) 如果如果R仍不等于仍不等于0,则重复上述步骤,则重复上述步骤(2)。如。如果果R为零,则这时的除数为零,则这时的除数N就是最大公约数。就是最大公约数。最小公倍数为两个数的积除以它们的最大公约最小公倍数为两个数的积除

41、以它们的最大公约数。数。58设计界面如下图所示设计界面如下图所示: : Text1Text2Label3Label4Command1Command259Dim A As Integer, B As Integer, N As Integer, _ M As Integer, R As IntegerPrivate Sub Command1_Click() M = Val(Text1.Text):N = Val(Text2.Text) A = M:B = N R = M Mod N Do While R 0 M = N N = R R = M Mod N Loop Label3.Caption

42、= NEnd SubPrivate Sub Command2_Click() Label4.Caption = A * B / NEnd Sub60【例】给一个整数【例】给一个整数n(n=3),判断它是否是素数判断它是否是素数 分析分析: 将数将数N被被2SQR(N)间全部整数除,如果间全部整数除,如果都除不尽,则都除不尽,则N是素数,否则是素数,否则N不是素数。不是素数。 设标设标志变量志变量Flag,只要有一个被整除,就置为只要有一个被整除,就置为1。Label1Text1Command161Private Sub Command1_Click() N = Val(Text1.Text)

43、: K = Int(Sqr(N) : I = 2 Flag = 0 Do While I = K And Flag = 0 If N Mod I = 0 Then Flag = 1 Else I = I + 1 Loop If Flag = 0 Then Label1.Caption = 是素数是素数 Else Label1.Caption = 不是素数不是素数 End IfEnd Sub625.4.3 5.4.3 循环的嵌套循环的嵌套 在一个循环体内又完整地包含另一在一个循环体内又完整地包含另一个循环个循环,称为循环的嵌套称为循环的嵌套(或多重循环或多重循环)例例: For I = 1 To

44、 3 For J = 5 To 7 Print I, J Next J Next I执行过程执行过程: 例例: For I = 1 To 3 For J = 1 To I For K = -1 To -2 S = S + I + J + K Next K Next J Next I执行过程执行过程: 63说明说明(1) 嵌套的循环可以是嵌套的循环可以是ForNext循环,也可以是循环,也可以是 DoLoop循环循环(2) 连续的连续的NEXT语句可以合并成一个语句可以合并成一个NEXT语句,循语句,循环变量按从内到外排列环变量按从内到外排列For I=1 TO 3 For J=5 TO 7 P

45、rint I,JNext J,IFor I=1 TO 3 For J=5 TO 7 Print I,J Next JNext I例例: :(3) 内外循环不应交叉内外循环不应交叉 例例: For I=. For J=. . Next I Next J64(4) 嵌套循环应选用不同的循环变量嵌套循环应选用不同的循环变量例例: For I=. For J=. . Next J . For J=. . Next J Next I65【例【例6-9】求】求1+(1+2)+(1+2+3)+(1+2+3+n), n由用户输入。由用户输入。 分析分析: Private Sub Form_Click() N

46、= Val(Text1.Text) Sum = 0 For I = 1 To N Sum1 = 0 For J = 1 To I Sum1 = Sum1 + J Next J Sum = Sum + Sum1 Next I Text2.Text = SumEnd Sub66【例【例6-10】公鸡】公鸡5个钱一只,母鸡三个钱一只、小鸡个钱一只,母鸡三个钱一只、小鸡一个钱三只,要用一个钱三只,要用100个钱买个钱买100只鸡,问公鸡、只鸡,问公鸡、母鸡、和小鸡各买几只?母鸡、和小鸡各买几只?分析分析: Private Sub Form_Click() Dim I As Integer, J As

47、Integer, K As Integer Print Tab(5); 公鸡公鸡; Tab(15); 母鸡母鸡; Tab(25); _ 小鸡小鸡 For I = 0 To 20 For J = 0 To 33 For K = 0 To 100 Step 3 If I*5+J*3+K3=100 And I+J+K=100 Then Print Tab(5); I; Tab(15); J; Tab(25); K End If Next K, J, IEnd Sub67【例【例6-11】数字灯谜。有算式数字灯谜。有算式: : A B C D-) C D CA B CA、B、C、D为非负一位数字,要求

48、找出满足以为非负一位数字,要求找出满足以上算式的上算式的A、B、C、D。答案答案: 1098: 1098 1 0 9 8 1 0 9 8 - 9 8 9 - 9 8 9 1 0 9 1 0 968Private Sub Form_Click() Dim A As Integer, B As Integer, C As Integer, _ D As Integer Dim S1 As Integer, S2 As Integer, S3 As Integer For A = 1 To 9 For B = 0 To 9 For C = 1 To 9 For D = 0 To 9 S1 = A *

49、 1000 + B * 100 + C * 10 + D S2 = C * 100 + D * 10 + C S3 = A * 100 + B * 10 + C If S1 - S2 = S3 Then Print A; B; C; D End If Next D, C, B, AEnd Sub69小结1. ForNext循环结构循环结构For = To Step 1 Exit For 2Next 702. While.Wend循环结构循环结构 While WendDo While|Until 1 Exit DoExit Do 2LoopDo Exit Do Loop While|Until 3. DoLoop循环结构循环结构71

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号