欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    VB课件第4章循环结构.ppt

    • 资源ID:1289739       资源大小:269.44KB        全文页数:59页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VB课件第4章循环结构.ppt

    第4,循环结构程序设计,第循环结构程序设计,采用循环程序可以解决一些按一定规则重复执行的问题。例如,统计一个班几十名学生,甚至全校几千名学生的学期成绩,如求平均分、不及格人数等。 本章主要内容 循环语句 For.Next / Do.Loop / While.Wend 循环出口语句(Exit) 多重循环 程序举例,4.3 循环结构设计,采用循环程序可以解决一些按一定规则,循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。 VB提供的循环语句有: For.Next Do.Loop While/Until Do While/Until . Loop While.Wend 最常用的是For.Next和Do.Loop语句,VB课件第4章循环结构,按指定次数执行循环体,4.3.1 For.Next循环,T,循环变量增加步长,循环体,循环变量获得初值,按指定次数执行循环体 4.3.1 For.Ne,格式: For 循环变量初值 To 终值 Step 步长值 循环体 Next 循环变量功能:当循环变量的值在初值到终值范围内时,执行一次循环体的语句代码,并使初值增加一个步长。当循环变量的值不在初值到终值范围内时,就退出循环,执行Next后面的语句。 说明:循环变量是一个数值变量,初值、终值和步长值都是数值表达式,步长值可以是正数(称为递增循环),也可以是负数(称为递减循环);若步长值为1,则Step 1可以省略。,格式: For 循环变量初值 To 终值 Step,说明:,循环次数的一般计算公式: Int(终值-初值)/步长)+1事先已知循环次数,则可使用For-Next循环结构语句计数循环,说明:循环次数的一般计算公式:,Private Sub Form_Load() ShowDim sum As Integer计算1至100的和,存放在sum中显示结果 Print sum=; sum End Sub,sum = sum + 1 sum = sum + 2 sum = sum + 100,sum = sum + i,i = 1 100,采用Print直接在窗体上输出结果,Private Sub Form_Load(,Private Sub Form_Load() Show Dim sum As Integer Dim i As Integer For i = 1 To 100 sum = sum + i Next i Print sum=; sum End Sub,Yes,No,sum = sum + i,i = 1,i = 100,i = i + 1,执行过程:,For i = 1 To 100 sum = sum + i Next i,YesNosum = sum + ii = 1i = 10,示例2: 求T = 8! = 1238,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Show t = 1 For c = 1 To 8 t = t * c Next c Print T=; t End Sub 程序运行结果是: T40320 语句t=t*c也称累乘器。先将t置1(不能置0)。 在循环程序中,常用累加器和累乘器来完成各种计算任务。,如果要求N!呢?,示例2: 求T = 8! = 1238 采用,思考: x=5 For i=1 To 20 Step 5 x = x + i5 Next i,思考:,思考: s=5 For i=2.6 To 4.9 Step 0.6 s=s+1 Next i,思考:,思考: Private Sub Form_Click() x=5 : k=5 For k=1 To 10 Step -2 x=x+k Next k Print k; x End Sub,思考:,思考: Private Sub Form_Click() Dim sum As Double, x As Double sum=0 n=0 For i=1 To 5 x = n / i n = n + 1 sum = sum + x Next i End Sub,思考:,下面采用“穷举法”来解此题。 其做法是:从所有可能解中,逐个进行试验,若满足条件,就得到一个解,否则不是。直到条件满足或判别出无解为止。 令母鸡为x只,小鸡为y只,根据题意可知 y = 100 x 开始先让x初值为1,以后逐次加1,求x为何值时,条件3x+y/3=100成立。如果当x达到33时还不能使条件成立,则可以断定此题无解。,示例3:100 元买100 只鸡,母鸡3元1只,小鸡1元3只,问各应买多少只?,下面采用“穷举法”来解此题。 示例3:10,采用Print直接在窗体上输出结果,程序代码: Private Sub Form_Load() Dim x As Integer, y As Integer Show For x = 1 To 33 y = 100 - x If 3 * x + y / 3 = 100 Then Print 母鸡只数为:; x, Print 小鸡只数为:; y End If Next x End Sub 运行结果: 母鸡只数为:25 小鸡只数为:75,采用Print直接在窗体上输出结果,程序代码:,For.Next循环主要是用在知道循环次数的情况下,若事先不知道循环次数,可以使用Do.Loop 循环。 Do.Loop两种格式:前测型循环结构和后测型循环结构。两者区别在于判断条件的先后次序不同。,4.3.2 Do.Loop循环语句,For.Next循环主要是用在知道循环,循环体,F,先判断循环条件,再执行循环体语句。,1. 前测型Do.Loop循环,循环体F条件T先判断循环条件,再执行循环体语句。1. 前测型,格式: Do While | Until 条件 循环体 Loop Do While.Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环。 Do Until.Loop语句的功能: 当条件不成立(为假)时,执行循环体,直到条件成立(为真)时,终止循环。,1. 前测型Do.Loop循环,格式: Do While,Private Sub Form_Load() Dim sum As Integer, i As Integer Show i = 1 Do While i = 100 sum = sum + i i = i + 1 Loop Print s=; sum End Sub,进入循环之前赋初值,改变循环变量的值,示例4:采用Do While.Loop语句改写示例1,For i = 1 To 100 Step 1 sum = sum + i Next i,Private Sub Form_Load()进入循环之前,先执行循环体语句,再判断循环条件。,循环体,N,2. 后测型Do.Loop循环,先执行循环体语句,再判断循环条件。循环体条件YN 2.,格式: Do 循环体 Loop While | Until 条件 功能:先执行循环体,然后判断条件,根据条件决定是否继续执行循环。 注意: 本语句执行循环的最少次数为1,而前测型Do.Loop语句的最少次数为0(即一次都不执行循环)。,2. 后测型Do.Loop循环,格式: Do,思考: 运行下列程序,单击窗体,则执行结果是(),Private Sub Form_Click() s=0 Do s=(s+1)*(s+2) Number= Number+1 Loop Until s = 30 Print Number ;sEnd SubA) 0 1 B) 30 30 C) 4 30 D) 3 182,思考: 运行下列程序,单击窗体,则执行结果是()Priva,运行下列程序,单击窗体,则执行结果是(),Private Sub Form_Click() b=1 a=2 Do While b 10 b=2*a+b Loop Print bEnd SubA) 13 B) 17 C) 21 D) 33,运行下列程序,单击窗体,则执行结果是()Private Su,运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click( ) E = 1 : F = 1 For j = 1 To 3 E=E + F : F = F+ E Next j print E;F End Sub A) 6 6 B) 5 8 C) 13 21 D) 34 55,运行下列程序,单击窗体,则执行结果是(),分析:本题可用“累加”的方法来完成,设累加的和为变量s,累加项为i2,则累加的语句可写为:s=s+i2采用Do WhileLoop语句: Private Sub Form_Click() Dim i As Integer, s As Long i = 1 s = 0 Do while i = 10 s = s + i 2 i = i + 1 Loop Print “s=”; s End Sub,示例5:用Doloop语句求s=12+22+102,分析:本题可用“累加”的方法来完成,设累加的和为变量s,累加,“辗转相除法”算法:求出m/n余数p,若p0,n即为最大公约数;若p非0,则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解。 设计步骤如下: (1) 创建应用程序的用户界面和设置对象属性,示例6:输入两个正整数,求它们的最大公约数,“辗转相除法”算法:求出m/n余数p,若p0,编写的“计算”按钮Click事件过程代码如下: Private Sub Command1_Click() Dim m As Integer, n As Integer, p As Integer m = Val(Text1.Text) : n = Val(Text2.Text) If m 0 Text3.Text = m End Sub 若输入的m和n的值为85和68,则运行结果如上图,编写的“计算”按钮Click事件过程代码如下:,用于提前退出循环 格式: Exit For | Do 功能:直接从For循环或Do循环中退出。 当程序运行时遇到Exit语句时,就不再执行循环体中的任何语句而直接退出,转到循环语句(Next、Loop)的下面继续执行。,4.3.3 循环出口语句,用于提前退出循环 4.3.3 循环出口语句,示例5的循环语句可改为: Do p = m Mod n If p=0 Then Exit Do End If m = n n = p Loop While p 0 Text3.Text =,m,n,示例5的循环语句可改为:mn,格式: While 条件 循环体 Wend功能:当条件成立(为真)时,执行循环体;当条件不成立(为假)时,终止循环。 本语句与上述Do While.Loop循环语句相似,4.3.4 While.Wend循环语句,格式:4.3.4 While.Wend循环语句,用下面的公式求的近似值(直到最后一项的绝对值小于10-6为止):分析先计算等式右边的和累加求和: pi = pi + t当| t |10-6时,停止累加用Doloop循环实现,示例7:求的近似值,用下面的公式求的近似值(直到最后一项的绝对值小于10-6为,采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Click() Dim s As Integer Dim pi As Single, n As Integer, t As Single pi = 0 : n=1 : t=1 s = 1 s 表示加或减运算 Do While Abs(t) = 0.000001 pi = pi + t n = n+2 s = - s 交替改变加、减号 t = s / n Loop Print =; pi * 4 End Sub 程序运行结果是: 3.141575,示例7:求的近似值,采用Print直接在窗体上输出结果,程序代码如,思考:,Private Sub Form_Click() For I=7 to 90 step 5 print I next I End Sub上述程序共执行执行循环体的次数是() A) 14 B) 15 C) 16 D) 17,思考: Private Sub Form_Click(),运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click( ) For j = 1 To 15 a = a + j Mod 3 Next j Print a End Sub A) 1 B) 15 C) 90 D) 120,运行下列程序,单击窗体,则执行结果是(),运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click( ) For j = 1 To 3 Print Tab(3 * j);(2 * j - 1) * (2 * j - 1) Next j Print End Sub A) 1 B) 1 6 10 C) 1 9 25 D)1 6 9 10 25,运行下列程序,单击窗体,则执行结果是(),运行下列程序,单击窗体,则执行结果是Private Sub Form_Click() s = 0 i = 1 Do While i =100 If (i 5) * 5 = i Then s = s + 1 i = i + 1 End If Loop Print sEnd Sub,运行下列程序,单击窗体,则执行结果是,运行下列程序,单击窗体,则执行结果是Private Sub Form_Click() s = 0 i = 1 Do While i =100 If (i 5) * 5 = i Then s = s + 1 i = i + 1 else i = i + 1End if Loop Print sEnd Sub,运行下列程序,单击窗体,则执行结果是,在窗体上放置一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x=5 For i = 1 to 20 Step 2 x = x + i 5 next i Print x End Sub程序运行后,单击命令按钮,输出结果为()A) 21 B)22 C)23 D)24,在窗体上放置一个命令按钮,然后编写如下事,运行下列程序,单击窗体,则执行结果是() Private Sub Form_Click( ) For j = 1 To 10 a = a + j 3 + j Mod 3 Next j Print a End Sub A) 20 B) 25 C) 30 D) 35,运行下列程序,单击窗体,则执行结果是(),习题:依次输入5、4、3、2、1、-1,Private Sub Command_Click()X=0Do Until x=-1 a=InputBox(“请输入A的值”) a=Val(a) b=InputBox(“请输入B的值”) b=Val(b) x=InputBox(“请输入X的值”) x=Val(x) a=a+b+x print aLoopEnd Sub,输出两个结果,分别是12和2,习题:依次输入5、4、3、2、1、-1Private Sub,习题:依次输入5、4、3、2、1、-1,Private Sub Command_Click()X=0Do Until x=-1 a=InputBox(“请输入A的值”) a=Val(a) b=InputBox(“请输入B的值”) b=Val(b) x=InputBox(“请输入X的值”) x=Val(x) a=a+b+xLoop print aEnd Sub,输出结果只有一个,是2,习题:依次输入5、4、3、2、1、-1Private Sub,给定VB程序的功能是计算并输出100以内的所有能被3整除且个位数是6的所有整数,请将程序补充完整。 Private Sub Form_Click( ) Dim i , j As Integer For i = 0 To _ j = i * 10 + 6 If _ Then Print j End If Next i End Sub,9,j Mod 3 = 0,给定VB程序的功能是计算并输出100以内的所有能9j Mod,设计一个“加法器”程序, 把每次输入的数累加,直到输入非数值数据为止。 Private Sub Form_Click() Dim Sum As Double, x As String, y As Double Sum = 0 Do While True 条件为真,循环无终止进行下去 x = InputBox(请输入要加入的数, 输入数据) If IsNumeric(x) = False Then Exit Do End If y = Val(x) Sum = Sum + y Text1.Text = Sum Loop MsgBox 累加运算结束” End Sub,示例8:设计一个“加法器”程序,设计一个“加法器”程序, 把每次输,当一个循环里面包含有另一个完整的循环时,称为循环的嵌套。循环的嵌套对For循环和DoLoop循环均适用。 多重循环程序示例 程序运行结果 Private Sub Form_Load() 1 5 Show 1 6 For i = 1 To 3 外循环 1 7 For j = 5 To 7 内循环 2 5 Print i, j 2 6 Next j 2 7 Next i 3 5 End Sub 3 6 3 7,4.3.5 循环的嵌套-多重循环结构,当一个循环里面包含有另一个完整的循环时,称为循环的嵌,嵌套循环应注意的问题,Do ForDo Loop NextLoop,二重循环,三重循环,这些都对了!,嵌套循环应注意的问题Do二重循环三重循环For和Do循环可以,思考:,运行下列程序,单击窗体,则运行结果是_。 Private Sub Form_Click( ) For x = 1 To 2 a = 0 For y = 1 To x + 1 a = a + 1 Next y Print a; Next x End Sub,结果是 2 3,思考:运行下列程序,单击窗体,则运行结果是_。结果是 2,运行下列程序,单击窗体,则运行结果是_。Private Sub Form_Click( ) N = 0 For I = 1 To 3 For J = 5 To 1 Step -1 N = N + 1 Next J, IPrint N; J; I,结果是 15 0 4,运行下列程序,单击窗体,则运行结果是_。结果是 15,本例可采用两重循环来实现。外循环控制输出7行,内循环控制每行输出要求的字符数。 在进入内循环之前,使用Tab( )来对起始输出位置定位,退出内循环后,使用Print来控制换行。,示例9:编一程序,输出下列所示的图形,示例9:编一程序,输出下列所示的图形,采用Print直接在窗体上输出结果,程序代码如下: Private Sub Form_Load() Show For i = 1 To 7 Print Tab(8 - i); For j = 1 To 2 * i - 1 Print CStr(i); Next j Print Next i End Sub,注意:内循环变量和外循环变量不能同名,采用Print直接在窗体上输出结果,程序代码如下:注意,ForNext 前测型 s=0 s=0 : k=1 For k=1 to 10 Do While k=10 s=s+k s=s+k Next k k=k+1 Print s Loop Print s s=0 : k=1 do s=s+k k=k+1 Loop While k=10 Print s,4.3.6 三种循环语句比较,后测型,ForNext,4.3.7 循环结构应用程序举例,累加、累乘求多项式求两个自然数的最大公约数求素数Fibonacci数列求最大值或最小值问题打印“乘法九九表”,4.3.7 循环结构应用程序举例累加、累,程序代码: Private Sub Form_Click() Dim f1 as long, f2 as long Dim i as long f1=1 :f2=1 For i = 1 To 6 Print f1, f2, if i Mod 2=0 then Print f1=f1+f2 f2=f2+f1 Next i End Sub,运行结果:1 1 2 3 8 13 2134 55 89 144,示例10 求Fibonacci数列的前12个数(每行4个数),分析:f1=1 (n=1) f2=1 (n=2) fn=f(n-1)+ f(n-2) (n=3),程序代码:运行结果:示例10 求Fibonacci数列的前1,Private Sub Form_Click() Dim x As Integer, a As Integer, c As Integer Dim count As Integer count = 0 For x = 100 To 999 a = x 100 : b = x 10 Mod 10 : c = x Mod 10 If a b And a c And b c Then count = count + 1 Print x; If count Mod 10 = 0 Then Print End If End If Next xEnd Sub,示例11 统计无重复的三位数,如102、103,Private Sub Form_Click()示例11 统,示例12 求最大值或最小值问题,求班级学生某一门课成绩的最高分 这就是一个求最大值的问题。先假设第一个成绩就是班级最高分,然后从第二个成绩开始依次与假设的最高分比较,若有高于它的,则更新最高分,否则继续下一个成绩的比较,直至最后一个成绩,Private Sub Form_Click() Dim score As Single, max as single score = Val(InputBox(请输入第 MaxEnd Sub,示例12 求最大值或最小值问题求班级学生某一门课成绩的最高分,Private Sub Form_Click() Dim i As Integer, j As Integer For i = 100 To 200 For j = 2 To i - 1 If i Mod j = 0 Then Exit For End If Next j If j = i Then Print i; End If Next i End Sub,示例13 输出100-200之间的所有素数,Private Sub Form_Click()示例,示例14:打印“九九乘法表”,示例14:打印“九九乘法表”,两重循环; 采用Print直接在窗体上输出结果Private Sub Form_Load() Show FontSize = 12 Print Tab(55); 九九乘法表 Print Tab(55); - Print For i = 1 To 9 For j = 1 To 9 If i * j = 10 Then Print i; *; j; =; i * j; Space(1); Else Print i; *; j; =; i * j; Space(2); End If Next j Print Next iEnd Sub,示例14:打印“九九乘法表”,两重循环; 采用Print直接在窗体上输出结果 示例14:打,?,示例14:打印“九九乘法表”,? 示例14:打印“九九乘法表”,

    注意事项

    本文(VB课件第4章循环结构.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开