VB 程序设计04-4.ppt_第1页
VB 程序设计04-4.ppt_第2页
VB 程序设计04-4.ppt_第3页
VB 程序设计04-4.ppt_第4页
VB 程序设计04-4.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 VB基本控制结构(5),学习目标,其他辅助控制语句 条件型循环,作业小结1:填数游戏,填数:3652838256 程序出现的问题,Private Sub Command1_Click() Dim a% For a = 1 To 9 If (10 * a + 3) * 6528 = (30 + a) * 8256 Then Print a Next a End Sub,?,小结2:另一个填数游戏,填数游戏:O,E代表奇数、偶数,此题唯一的答案是34828 多出了许多答案,why?,程序的修改,修改三个标志量的赋值句,其余不变 flag1 = (z1 Mod 2 = 0) And (z2

2、Mod 2 = 1) And (z3 Mod 2 = 0) And (z4 Mod 2 = 0) And (Len(z) = 4) flag2 = (u1 Mod 2 = 0) And (u2 Mod 2 = 1) And (u3 Mod 2 = 0) And (Len(u) = 3) flag3 = (v1 Mod 2 = 1) And (v2 Mod 2 = 1) And (v3 Mod 2 = 0) And (v4 Mod 2 = 0) And (Len(v) = 4),作用:指定三个乘积z、u、v的长度为4、3、4,作业总结3,问满足同样规律的式子有多少个? (答案:209) 1242

3、2124 12632136,Private Sub Form_Load() For a = 1 To 9 For b = 1 To 9 For c = 1 To 9 For d = 1 To 9 X1 = 10 * b + a : Y1 = 10 * c + d X2 = 10 * a + b : Y2 = 10 * d + c If X1 * Y1 = X2 * Y2 Then n = n + 1 Print X1; *; Y1; =; X2; *; Y2 End If Next d, c, b, a Print n=; n End Sub,程序结果为209种,?,?,程序的修改,修改代码,

4、剔除重复的结果: Private Sub Form_Load() For a = 1 To 9 For b = 1 To 9 For c = 1 To 9 For d = 1 To 9 X1 = 10 * b + a : Y1 = 10 * c + d X2 = 10 * a + b : Y2 = 10 * d + c If X2 X1 And X2 Y1 And X1 * Y1 = X2 * Y2 Then n = n + 1 Print X1; *; Y1; =; X2; *; Y2 End If Next d, c, b, a Print n=; n End Sub,去除重复后结果为28

5、种,for循环总结,for循环(计数型) 多重循环 多重循环:描述决定某事物的、范围各异的多种因素,辅助控制语句,GoTo 语句 格式:GoTo 标号|行号 功能:将流程转移到标号所在的语句,a=7 goto over b=2 over: c=3 print a, b, c,打印结果为 7 3,a=7 goto 55 b=2 55 c=3,或,辅助控制语句,End 语句: End End If End Sub End Select Exit 语句 Exit Sub Exit For Exit Do,结束程序或某程序块,提前退出程序或循环,相关练习,打印最小的水仙花数,For x=100 to

6、999 a=x100 : b=(x-100*a)10 : c=x mod 10 if x=a3+b3+c3 then print x : Exit for Next x,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 : Exit Sub Next c Next b Next a,或,最大的水仙花数?,辅助控制语句,With 语句 设置同一对象多种属性时,可用该语句 “缩写”。 示例:,Private Sub Form_Load()

7、 Command1.Left = 1200 Command1.Top = 1200 Command1.Height = 400 Command1.Width = 1200 Command1.Caption = Begin End Sub,Private Sub Form_Load() With Command1 .Left = 1200 .Top = 1200 .Height = 400 .Width = 1200 .Caption = Begin“ End With End Sub,等价于,条件型循环,计数型循环: 求下式当n=100时的取值,特点:循环次数已知(计数型) For循环,条件型

8、循环: 求满足下式的n值,特点:循环次数未知(条件型) Do 循环,条件型循环格式,Do.Loop循环 格式:5种 while:循环继续条件 until:循环结束条件,1当型:Do WhileLoop 2当型: Do UntilLoop 3直到型:DoLoop While 4直到型:DoLoop Until 5无条件循环:DoLoop,实质上2种,条件型循环格式,While.Wend循环 格式: 与Do WhileLoop功能完全相同,濒于淘汰!,while 条件 循环体 wend,示例:条件型循环,求满足下式的n值 N-S图:,条件型循环的多种格式,同一问题的多种格式:,条件型循环要点,No

9、te: while条件与until条件恰相反; 直到型至少执行一次循环体; 无限次循环do.loop中,必然包含一条判断语句,当满足条件时exit do;,示例:韩信点兵,秦末汉初军事家韩信,帮助刘邦打败项羽,建立了汉政权。传说,韩信点兵的方法很特殊:他让士兵变换队形进行操练,在每次变换队形时,向队尾看一眼,这支队伍有多少人就心中有数了。一次检阅一支八千余人的队伍,这支队伍列成三路纵队,队尾1人;成五路纵队,队尾2人;成七路纵队,队尾4人;成十三路纵队,队尾6人。至此韩信已算出了这支队伍参加检阅的实到人数。那么,韩信是用什么方法计算的?,韩信,例:韩信点兵,代码: 结果:8677,Privat

10、e Sub Command1_Click() n = 8000 Do n = n + 1 Loop Until (n Mod 3 = 1) And (n Mod 5 = 2) _ And (n Mod 7 = 4) And (n Mod 13 = 6) Print n End Sub,示例:阶乘计算,例2:求满足 i!1000, n=6为所求。 代码:,错误的写法 : n=1000: s=1 : i=1 do while s=n s=s*i i=i+1 loop print i,n=1000 : s=1 : i=0 do while s=n i=i+1 s=s*i loop i=i-1 pri

11、nt i,相关练习,分析程序,指出问题所在:,示例3:数列计算,例3:求 ,直到最后一项小于 代码:,s = 0 :i = 1 : t = 1 : k = 1 Do s = s + t i = i + 2 k = -k t = k / i Loop Until Abs(t) 1e-6 s = s * 4 Print s,示例4:求年龄,例4:女儿今年7岁,父亲比她大20岁,问几年后,父亲的年龄比她大1倍? 代码:,a=7 b=a+20 n=0 do until b=2*a n=n+1 a=a+1 b=b+1 loop print n, a, b,示例:整数分解问题,例5:将一个正整数分解为质因

12、数乘积,例如:23423313,n mod factor=0,n=n factor,练习:Do循环相关选择题,1、对 Do until . 循环体 . Loop 则下列说法正确的是_。 A.如果“条件”是一个为-1的常数,则一次循环体也不执行 B.如果“条件”是一个为-1的常数,则至少执行一次循环体 C.如果“条件”是一个不为-1的常数,则至少执行一次循环体 D.不论“条件”是否为“真”,至少要执行一次循环体 2、对Do . 循环体 . Loop While 则以下叙述中错误的是_。 A.如果“条件”总是为True,则不停地执行循环体 B.“条件”可以是关系表达式、逻辑表达式或常数 C.循环体

13、中可以使用Exit Do语句 D. 若“条件”是一个为0的常数,则一次也不执行循环体,A,D,练习:选择题,3、以下程序段的输出结果为_。 X = 1 : Y = 4 Do Until Y 4 X = X * Y Y = Y + 1 Loop Print X A.1 B.4 C.8 D.20 4、下列程序段的执行结果为_。 A = 0: B = 1 Do A = A + B B = B + 1 Loop While A 10 Print A; B A. 10 5 B. A B C. 0 1 D. 10 30,B,A,练习:选择题,5、下列循环能正常结束的是_,C,练习:选择题,6、以下能够正确计算n!的程序是_。,D,作业,试编程求解:甲年龄的平方与乙年龄之和为1053,乙年龄的平方与甲年龄之和为873,求甲、乙的年龄。(32、29) 根据教材p53求最大公约数算法,设计程序,求两个数的最小公倍数。,习题答案,教材习题4.5(P63-71)选择题 1.B 2.A 3.B 4.D 5.D 6.B 7.A 8.C 9.C 10.B 11.A 12.C 13.B 14.D 15.A 16.A 17.B 18.C 填空题 1、9 2、1 2 3 3、x=7 4、x0 else 无穷数根 12、2+i 6 *,习题答案,习题集(P25

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论