零基础学vb第6章

上传人:j****9 文档编号:54529111 上传时间:2018-09-14 格式:PPT 页数:35 大小:708.50KB
返回 下载 相关 举报
零基础学vb第6章_第1页
第1页 / 共35页
零基础学vb第6章_第2页
第2页 / 共35页
零基础学vb第6章_第3页
第3页 / 共35页
零基础学vb第6章_第4页
第4页 / 共35页
零基础学vb第6章_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《零基础学vb第6章》由会员分享,可在线阅读,更多相关《零基础学vb第6章(35页珍藏版)》请在金锄头文库上搜索。

1、1,循环结构程序设计,本章要点: For.Next循环 While.Wend循环 Do.Loop循环,特点: 重复相同或相似的操作步骤 结构: 循环体要重复执行的语句序列。循环控制部分规定循环的重复条件或重复次数,确定循环范围的语句,2,6.1 ForNext循环结构,1. 格式 For = To Step Exit ForNext ,循环变量值超过终值?,执行循环体,后续语句,Yes,No,2. 功能: 执行过程如流程图所示,3,3. 说明 (1)循环变量数值变量 (2)初值,终值,步长数值表达式 (3)步长可正可负,但不能为0,为1时可以省略步长0时,必须: 初值终值步长= 终值循环结束条

2、件循环变量的值终值 (4)Exit For退出循环,常放在条件语句中 (5)Next之后的循环变量应与For语句中的循环变量一致,也可以省略,4,例: 判断以下程序段的执行结果: For i = 5 To 1 Step -1Print i * i;Next iPrintPrint i,例: 判断以下程序段的执行结果: X = 6For K = 1 To 10 Step -2X = X + KNext KPrint K,X,5,累加分析: 累加器(变量)初值 S=0循环体(重复执行) S=S+I (I=1,2,N) Private Sub Command1_Click()Dim N As Int

3、eger, I As Integer, S As IntegerN = Val(Text1.Text)S = 0For I = 1 To NS = S + INext ILabel3.Caption = S End Sub,【例6-1】求1+2+3+4+N,6,思考: 1. 求12+22+32+42+1002 2. 求13+33+53+n3 3. 求1-3+5-7+(-1)n+1(2n-1),4. 求,5. 求,7,例6-2】求 N!( N!=123N)累乘分析: 初始化: F=1循环体: F=F I (I=1,2,3N)程序: Private Sub Command1_Click()Dim

4、N As Integer, I As Integer, F As LongN = Val(Text1.Text)F = 1For I = 1 To NF = F * INext IText2.Text = FEnd Sub,8,思考: 1. 求13 5 7(共N项)。,2. 求:,3. 求:,9,【例6-3】打印斐波那契(Fibonacci)数列的前20项斐波那契数列如下: 0,1,1,2,3,5,8,13,即从第三项起每一项是其前两项之和。分析: Private Sub Form_Click() A = 0: B = 1 Text1.Text=Text1.Text & Str(A) & St

5、r(B) & vbCrLf For I = 1 To 9A = A + BB = A + BText1.Text=Text1.Text & Str(A) & Str(B) & vbCrLf Next I End Sub,10,思考: 1. 在窗体上打印1、3、5、7、9、N。 2. 在窗体上显示1到500之间所有能被3整除的数,每行10个数。 3. 在带水平滚动条文本框中显示1到指定N之间所有能被3和7同时整除的数。 4. 在带垂直滚动条的文本框中显示003600之间的正弦和余弦值,每隔20求一组值。,11,6.2 While.Wend循环结构,问题: 求12+22+32+42+小于某数N的最

6、大值,N由用户指定。 特点: 已知循环条件、未知循环次数,用While.Wend循环结构实现较方便 1. 格式While Wend 2. 功能,12,【例6-4】使用While.Wend循环求12+22+32+大于某数N的最小值,N由用户指定。,分析: 是累加问题 初始化: S=0I=0N由Text1输入 循环条件: S=N 循环体: I=I+1S=S+I2,13,“计算”按钮Command1的Click事件过程如下:,Private Sub Command1_Click()Dim I As Integer, N As Integer, S As IntegerN = Val(Text1.Te

7、xt)I = 0 : S = 0While S = NI = I + 1S = S + I * IWendLabel2.Caption = S End Sub,While.Wend循环可以使用Do.Loop循环来代替,但Do.Loop循环具有更多的形式。,思考: 求12+22+32+42+小于某数N的最大值,14,6.2 DoLoop循环结构,格式:,格式一: Do While Exit Do Loop,格式二: Do Until Exit Do Loop,功能:,15,格式:,格式三: DoExit Do Loop While ,格式四: DoExit Do Loop Until,功能:,1

8、6,说明: (1)Exit Do语句用于退出循环体 (2)也可以在Do语句和Loop语句之后都没有条件, 这时在循环体内必须有强行退出循环的语句即:DoExit DoLoop (3)当型循环可能一次都不执行;而直到型循环至少要执行一次循环体。多数情况下,当型循环和直到型循环可互相代替。,17,【例6-5】求,直至最后一项的值10-4为止。 分析:用Sum表示累加和,初值: 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) , Su

9、m=Sum+Term ,N=N+2 循环终止条件 Term=0.0001,18,设单击窗体时开始计算,结果打印在窗体上。 Private Sub Form_Click()N = 1 : Sum = 0DoTerm = 1 / (N * N)Sum = Sum + TermN = N + 2Loop Until Term =2P,20,设单击窗体时开始计算: Private Sub Form_Click()P = Val(Text1.Text)R = Val(Text2.Text) / 100V = P:Y = 0Do Until V = 2 * PY = Y + 1V = V * (1 + R

10、)LoopText3.Text = YText4.Text = Format(V, “0.00“) End Sub,21,【例6-7】给出两个正整数M、N,求它们的最大公约数和最小公倍数。 分析: 求最大公约数的方法如下 (1) 以M作被除数,N作除数,求余数R。 (2) 如果R不为零,则将除数N做为新的被除数M,将余数R做为新的除数N,再进行相除,得到新的余数R。 (3) 如果R仍不等于0,则重复上述步骤(2)。如果R为零,则这时的除数N就是最大公约数。 最小公倍数为两个数的积除以它们的最大公约数。,22,设计界面如下图所示:,23,Dim A As Integer, B As Intege

11、r, N As Integer, _M As Integer, R As Integer Private Sub Command1_Click() M = Val(Text1.Text):N = Val(Text2.Text)A = M:B = N R = M Mod NDo While R 0M = NN = RR = M Mod NLoopLabel3.Caption = N End Sub Private Sub Command2_Click()Label4.Caption = A * B / N End Sub,24,【例6-8】给一个整数n(n=3),判断它是否是素数分析: 将数N被

12、2SQR(N)间全部整数除,如果都除不尽,则N是素数,否则N不是素数。 设标志变量Flag,只要有一个被整除,就置为1。,25,Private Sub Command1_Click()N = Val(Text1.Text) : K = Int(Sqr(N) : I = 2Flag = 0Do While I = K And Flag = 0If N Mod I = 0 Then Flag = 1 Else I = I + 1LoopIf Flag = 0 ThenLabel1.Caption = “是素数“ElseLabel1.Caption = “不是素数“End If End Sub,26

13、,6.3 循环的嵌套,在一个循环体内又完整地包含另一个循环,称为循环的嵌套(或多重循环),例: For I = 1 To 3For J = 5 To 7Print I, JNext JNext I 执行过程: ,例: For I = 1 To 3For J = 1 To IFor K = -1 To -2S = S + I + J + KNext KNext JNext I 执行过程: ,27,说明 (1) 嵌套的循环可以是ForNext循环,也可以是 DoLoop循环 (2) 连续的NEXT语句可以合并成一个NEXT语句,循环变量按从内到外排列,For I=1 TO 3For J=5 TO

14、7Print I,J Next J,I,For I=1 TO 3For J=5 TO 7Print I,JNext J Next I,例:,(3) 内外循环不应交叉例: For I=.For J=.Next INext J,28,(4) 嵌套循环应选用不同的循环变量 例: For I=.For J=.Next J.For J=.Next JNext I,29,【例6-9】求1+(1+2)+(1+2+3)+(1+2+3+n), n由用户输入。分析: Private Sub Form_Click()N = Val(Text1.Text)Sum = 0For I = 1 To NSum1 = 0Fo

15、r J = 1 To ISum1 = Sum1 + JNext JSum = Sum + Sum1Next IText2.Text = Sum End Sub,30,【例6-10】公鸡5个钱一只,母鸡三个钱一只、小鸡一个钱三只,要用100个钱买100只鸡,问公鸡、母鸡、和小鸡各买几只? 分析: Private Sub Form_Click()Dim I As Integer, J As Integer, K As IntegerPrint Tab(5); “公鸡“; Tab(15); “母鸡“; Tab(25); _“小鸡“For I = 0 To 20For J = 0 To 33 For K = 0 To 100 Step 3If I*5+J*3+K3=100 And I+J+K=100 ThenPrint Tab(5); I; Tab(15); J; Tab(25); KEnd IfNext K, J, I End Sub,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

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