VB 程序设计04-3.ppt

上传人:s****8 文档编号:82777522 上传时间:2023-03-26 格式:PPT 页数:31 大小:1.03MB
返回 下载 相关 举报
VB 程序设计04-3.ppt_第1页
第1页 / 共31页
VB 程序设计04-3.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《VB 程序设计04-3.ppt》由会员分享,可在线阅读,更多相关《VB 程序设计04-3.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第四章第四章 VBVB基本控制结构基本控制结构(4)(4)学习目标学习目标nforfor循环的应用循环的应用n多重多重forfor循环循环复习复习n格式格式 forfor 循环变量名循环变量名=初值初值 toto 终值终值 stepstep 步长步长 循环体循环体 nextnext 循环变量名循环变量名 n应用应用数列求值:归纳法、递推法数列求值:归纳法、递推法循环检查:枚举法,即循环体含判断语句循环检查:枚举法,即循环体含判断语句 for循环应用循环应用n通过以下各例,进一步掌握通过以下各例,进一步掌握forfor循环循环例例1 1:求数列和(递推法)求数列和(递推法)例例2 2:填数游戏(

2、循环判断)填数游戏(循环判断)例例3 3:求最大、最小值(循环判断)求最大、最小值(循环判断)例例4 4:判断一个数是否为素数(循环判断)判断一个数是否为素数(循环判断)for循环示例:递推法循环示例:递推法1 1、利用递推法计算、利用递推法计算l分析:分析:1、设、设t为括号包围的每一个大项:为括号包围的每一个大项:s=s+t2、设、设k为每两个大项之间的差:为每两个大项之间的差:t=t+k3、因为因为k是第是第i项的阶乘值项的阶乘值i!,故:故:k=i*kl步骤:步骤:1、给变量、给变量s、t、k赋初值赋初值 2、按从小到大生成的顺序对以上操作做循环。、按从小到大生成的顺序对以上操作做循环

3、。示例示例n代码:代码:Private Sub Form_Load()Dim i%,k&,t&,s&k=1:t=0:s=0 For i=1 To 10 k=i*k t=t+k s=s+t Next i Print s End Subn模拟检查模拟检查初值初值:k=1,t=0,s=0i=1时时:k=1,t=1,s=1i=2时时:k=2,t=1+2,s=1+(1+2)i=3时时:k=3!,t=1+2+3!,s=1+(1+2)+(1+2+3!)for循环示例:填数游戏循环示例:填数游戏2 2、填数游戏、填数游戏l部分代码部分代码for x=1000 to 9999 a=b=c=d=y=1000*d+

4、100*c+10*b+a if 34*x=43*y then print a,b,c,dnext xx1000(x-1000*a)100(x-1000*a-100*b)10 x mod 10l结果:共四组结果:共四组4,3,4,34,7,7,38,2,5,68,6,8,6相关练习:彩票号码相关练习:彩票号码n一个四位数字的彩票号码一个四位数字的彩票号码它是它是1111的倍数;的倍数;中间两位数字构成一个平方数;中间两位数字构成一个平方数;且这两位数字之和等于第一位数;且这两位数字之和等于第一位数;猜猜看,这个彩票的号码是多少?猜猜看,这个彩票的号码是多少?幸运的彩票幸运的彩票n分析:分析:这是

5、例这是例2的的“翻版翻版”,对四位数字做循环检查,分离出每位数字后,对四位数字做循环检查,分离出每位数字后,套用条件即可。套用条件即可。n代码:代码:Private Sub Command1_Click()For x=1001 To 9999 Step 11 a=x 1000 b=(x-1000*a)100 c=(x-1000*a-100*b)10 d=x Mod 10 y=10*b+c If b+c=a And Int(Sqr(y)=Sqr(y)Then Print x Next x End Sub本期中奖号码:本期中奖号码:1012 4048 7161 9097 9361 9812for循

6、环示例:求最值循环示例:求最值3、输入、输入10个数,打印其中最大、最小的数。个数,打印其中最大、最小的数。Private Sub Form_Load()a=Val(InputBox(请输入第请输入第&1&个数个数)Max=a :Min=a For i=2 To 10 a=Val(InputBox(请输入第请输入第&i&个数个数)If a Max Then Max=a If a Min Then Min=a Next i MsgBox 最大值为最大值为&Max&vbCrLf&最小值为最小值为&Min,64,输出结果输出结果End Sub相关练习:歌手大赛相关练习:歌手大赛n某次歌手大赛,有某次

7、歌手大赛,有7 7位评委打分,去掉一个最位评委打分,去掉一个最高分和一个最低分,取平均值做为选手的实得高分和一个最低分,取平均值做为选手的实得分。填充程序使之完成该功能。分。填充程序使之完成该功能。歌手大赛程序歌手大赛程序n代码:代码:Private Sub Command1_Click()Dim mark!,aver!,i%,max!,min!aver=0 for i=1 to 7 mark=inputbox(输入第输入第&i&位评委的打分位评委的打分)if i=1 then max=mark:_ elseif markmax then _ end if _ next i aver=_ te

8、xt1=averEnd Submin=mark min=mark max=mark aver=aver+mark(aver-max-min)/5for循环示例:判断素数循环示例:判断素数4 4、判断一个数、判断一个数x x是否是素数是否是素数素数:只能被素数:只能被1 1和自身整除的数,和自身整除的数,如如2 2、3 3、5.5.检验方法:从检验方法:从2 2x-1x-1的所有数做的所有数做除数,只要有一个能整除,就除数,只要有一个能整除,就非素数。非素数。for循环示例:判断素数循环示例:判断素数n代码:代码:Private Sub Command1_Click()dim x%,a%,fla

9、g as boolean x=val(text1):flag=true for a=2 to x-1 if x mod a=0 then flag=false:exit for next a if flag then text2=是素数是素数 else text2=非素数非素数End Subfor a=2 to sqr(x)可有效地减少循环次数可有效地减少循环次数多重循环多重循环n又称循环的嵌套,指一个循环包含另一个循环。又称循环的嵌套,指一个循环包含另一个循环。n通过以下各例,学习多重循环:通过以下各例,学习多重循环:九九乘法表九九乘法表(2重)重)水仙花数、百鸡问题水仙花数、百鸡问题(3重

10、)重)射击问题射击问题(5重)重)填数游戏填数游戏(5重)重)多重循环的引入:九九乘法表多重循环的引入:九九乘法表n例例1 1:(多重循环的第一个程序)九九乘法表:(多重循环的第一个程序)九九乘法表n要求:要求:打印第一行打印第一行11111 1,19199 9代码:代码:a=1 For b=1 To 9 c=a*b Print a;*;b;=;c;Next b Print第二个乘数在变化第二个乘数在变化紧凑格式,不换行紧凑格式,不换行换行,以打印其它行换行,以打印其它行多重循环:九九表多重循环:九九表n分析:分析:a=1 For b=1 To 9 c=a*b Print a;*;b;=;c;

11、Next b Print a=2 For b=1 To 9 c=a*b Print a;*;b;=;c;Next b Print .a=9 .for a=1 to 9 For b=1 To 9 c=a*b Print a;*;b;=;c;Next b Printnext a二重循环(嵌套)二重循环(嵌套)多重循环:九九表多重循环:九九表n代码代码Private Sub Form_Click()Dim a%,b%,c%,s$For a=1 To 9 For b=1 To 9 c=a*b s=IIf(c 10,Space(1),Space(0)Print a;*;b;=;s;c;Next b Pr

12、int Next aEnd Sub1、Load事件?事件?2、变量、变量S的作用?的作用?多重循环:九九表多重循环:九九表n实验:在实验:在vbvb中检验程序结果中检验程序结果n思考:如何打印教材思考:如何打印教材P72P725 5形式的结果?形式的结果?n修改:修改:for b=1 to a多重循环的特点多重循环的特点n总结:总结:内层变化快、外层变化慢;内层变化快、外层变化慢;如上例中,数对如上例中,数对(a,b)(a,b)分别取值为:分别取值为:(1,1),(1,2),.,(1,9),(2,1),(2,2),(1,1),(1,2),.,(1,9),(2,1),(2,2),.,(2,9),

13、.,(9,1),(9,2),.,(9,9).,(2,9),.,(9,1),(9,2),.,(9,9)n公式:公式:总的循环次数各层次数之积总的循环次数各层次数之积语法要求语法要求n内、外循环变量不可同名内、外循环变量不可同名n内、外循环不可交叉内、外循环不可交叉n为避免错误,建议采用缩进式格式书写。为避免错误,建议采用缩进式格式书写。n参见教材参见教材P61P61图示图示多重循环:水仙花数多重循环:水仙花数n例例2 2:用多重循环改写水仙数程序:用多重循环改写水仙数程序$分析:求三位数中满足条件的整数。分析:求三位数中满足条件的整数。abcabc:100-999100-999变变化如下:化如下

14、:abcabcabc.abc100101102.109110111.119.990991992.999$结论:三重循环,结论:三重循环,a a最外,最外,b b中间,中间,c c最内。最内。示例:水仙花数示例:水仙花数$代码:代码:For a=1 To 9 For b=0 To 9 For c=0 To 9 x=100*a+10*b+c If a 3+b 3+c 3=x Then Print x Next c Next b Next a$注意:缩进式书写注意:缩进式书写$比较:比单重格式简单,易于理解比较:比单重格式简单,易于理解多重循环:百鸡问题多重循环:百鸡问题n例例3 3(百鸡问题)(百

15、鸡问题)鸡翁一,值钱五,鸡母一,值鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母钱三,鸡雏三,值钱一。百钱买百鸡,问翁、母、雏各几何?、雏各几何?$分析:设分别为分析:设分别为x x,y y,z z只,有只,有$数学求解:结合均为整数的性质,求不定方程。数学求解:结合均为整数的性质,求不定方程。$编程求解:对编程求解:对x,y,zx,y,z全部可能的组合进行逐一检查。全部可能的组合进行逐一检查。循环判断,看起来很循环判断,看起来很笨笨示例:百鸡问题示例:百鸡问题$程序程序:for x=0 to 100 for y=0 to 100 for z=0 to 100 if x+

16、y+z=100 and 5*x+3*y+z/3=100 then print x,y,z next z next ynext x$程序程序:改进以减少循环次数:改进以减少循环次数for x=0 to 20for y=0 to 33示例:百鸡问题示例:百鸡问题$程序程序:进一步减少循环次数:进一步减少循环次数for x=0 to 20 for y=0 to 33 z=100-x-y if 5*x+3*y+z/3=100 then print x,y,z next ynext x$分析:比程序分析:比程序减少循环减少循环100倍。倍。相关练习:射击问题相关练习:射击问题3917162423l射击比

17、赛,靶上的数字表示该区域的分数,某人射了射击比赛,靶上的数字表示该区域的分数,某人射了若干枪,枪枪中靶,最后得分为若干枪,枪枪中靶,最后得分为100100分,问他共射了多分,问他共射了多少枪,各打中每个区域多少?少枪,各打中每个区域多少?(答案:共答案:共6枪枪)射击问题射击问题n参考代码:参考代码:for x=0 to 5 for y=0 to 4 for z=0 to 2 for w=0 to 4 for v=0 to 6 if 17*x+23*y+39*z+24*w+16*v=100 then print 17分分:;x,23分分:;y,39分分:;z,print 24分分:;w,16分

18、分:;v end if next v,w,z,y,x难题赏析:填数游戏难题赏析:填数游戏n填数游戏:其中填数游戏:其中O O,E E代表奇数、偶数,不同位置代表奇数、偶数,不同位置的的O O,E E可能不相同。可能不相同。OEEEEEOEE EOEOOEETry try?填数游戏之参考代码填数游戏之参考代码n猜数游戏猜数游戏Private Sub Form_Load()For a=1 To 9 Step 2For b=0 To 8 Step 2For c=0 To 8 Step 2For d=2 To 8 Step 2For e=0 To 8 Step 2 x=100*a+10*b+c y=1

19、0*d+e z=x*e u=x*d v=x*y z1=z 1000 z2=(z-1000*z1)100 z3=(z-1000*z1-100*z2)10 z4=z Mod 10 u1=u 100u2=(u-100*u1)10 u3=u Mod 10v1=v 1000v2=(v-1000*v1)100v3=(v-1000*v1-100*v2)10v4=v Mod 10flag1=(z1 Mod 2=0)And(z2 Mod 2=1)_ And(z3 Mod 2=0)And(z4 Mod 2=0)flag2=(u1 Mod 2=0)And(u2 Mod 2=1)_ And(u3 Mod 2=0)fl

20、ag3=(v1 Mod 2=1)And(v2 Mod 2=1)_ And(v3 Mod 2=0)And(v4 Mod 2=0)If flag1 And flag2 And flag3 Then Print x,yNext e,d,c,b,aEnd Sub作业作业An打印打印1 1、2 2、3 3、4 4 四个数字能够组成的所有四四个数字能够组成的所有四位数,并统计其个数。位数,并统计其个数。(答案:答案:256256)n小明家的门牌四位数,各位之和等于其前两位,小明家的门牌四位数,各位之和等于其前两位,各位之积各于其后二位,求之。各位之积各于其后二位,求之。(答案:(答案:12361236)n问满足同样规律的式子有多少个问满足同样规律的式子有多少个?(答案:(答案:209209)12421242212421241263126321362136

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁