VB程序设计基础循环结构.ppt

上传人:豆**** 文档编号:24773233 上传时间:2022-07-07 格式:PPT 页数:146 大小:1.51MB
返回 下载 相关 举报
VB程序设计基础循环结构.ppt_第1页
第1页 / 共146页
VB程序设计基础循环结构.ppt_第2页
第2页 / 共146页
点击查看更多>>
资源描述

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

1、第四章第四章 VBVB程序设计基础程序设计基础4.4 循环结构循环结构 n 计算机最擅长的功能之一就是按规定的条件,计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。重复执行某些操作。 n VB中提供了两种类型的循环语句:中提供了两种类型的循环语句:1.计数循环语句计数循环语句-循环次数固定;循环次数固定;2.条件型循环语句条件型循环语句-循环次数不固定,由循环条循环次数不固定,由循环条件决定件决定。第四章第四章 VBVB程序设计基础程序设计基础4.4 循环结构循环结构 nVB中提供的循环语句:中提供的循环语句:1.循环次数固定:循环次数固定:For循环语句循环语句2.循环次数不固定的

2、循环循环次数不固定的循环(1)While循环语句循环语句(2)Do Loop循环语句:循环语句:循环次数不固循环次数不固定定 第四章第四章 VBVB程序设计基础程序设计基础4.4 循环结构循环结构4.4.1 For循环语句循环语句 4.4.2 While循环语句循环语句 4.4.3 DoLoop循环语句循环语句 4.4.4 循环嵌套循环嵌套 第四章第四章 VBVB程序设计基础程序设计基础认识循环结构认识循环结构1问题:问题:在窗体上显示在窗体上显示10行行*(每行每行10个个*)直接用顺序结构实现:直接用顺序结构实现:Form1.Print String(10,*)Form1.Print St

3、ring(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)Form1.Print String(10,*)用循环结构实现:用循环结构实现:Dim n as Integerfor n=1 to 10 Form1.Print String(10,*)next n第四章第四章 VBVB程序设计基础程序设计基

4、础前例循环结构分析:前例循环结构分析:用循环结构实现:用循环结构实现: Dim n as Integer n是循环控制变量是循环控制变量 for n=1 to 10 n的初值的初值1,终值,终值10,每循环,每循环1次增加次增加1 Form1.Print String(10,*) 循环体语句循环体语句 next n 循环结束循环结束第四章第四章 VBVB程序设计基础程序设计基础 For循环语句循环语句 格式格式For For 循环变量初值循环变量初值 To To 终值终值 Step 步长步长循环体语句块循环体语句块Next Next 循环变量循环变量例例: :Dim n as Integerf

5、or n=1 to 10 step 1 Print String(10,*)next n T 循环变量终值 语句块 循环变量=循环变量+步长 F 循环变量=初值 Next 的下一语句 第四章第四章 VBVB程序设计基础程序设计基础 For循环语句使用注意事项循环语句使用注意事项 For For 循环变量初值循环变量初值 To To 终值终值 Step 步长步长循环体语句块循环体语句块Next Next 循环变量循环变量 注意:注意:1. 循环变量必须为数值型。循环变量必须为数值型。 2. Step 步长缺省为步长缺省为1.例例:Dim n as Integerfor n=1 to 10 Pri

6、nt String(10,*)next n第四章第四章 VBVB程序设计基础程序设计基础For循环语句的理解 Dim n as Integer n是循环控制变量是循环控制变量for n=1 to 10 step 1 n的初值的初值1,终值,终值10 Print String(10,*) 循环体语句循环体语句next n 循环体结束循环体结束u理解理解:对于变量对于变量n=1,2,3.到到不超过不超过10,分别执行分别执行: Print String(10,*)循环体结束循环体结束,产生下一个产生下一个n( n=n+步长步长)u注意注意:(1)循环全部执行完后循环全部执行完后, 循环变量的值为超

7、过终值的值循环变量的值为超过终值的值(如此处循环结束时(如此处循环结束时n=11)(2) 如果循环变量的初值一开始就超过终值如果循环变量的初值一开始就超过终值, 则一次也则一次也不执行循环体不执行循环体第四章第四章 VBVB程序设计基础程序设计基础说明:循环变量的作用有说明:循环变量的作用有2个:个:n之一之一:控制循环次数,如前例控制循环次数,如前例n之二之二:不仅用于控制循环次数,而且在循环体不仅用于控制循环次数,而且在循环体中使用,即参与运算,这种情况更多见。中使用,即参与运算,这种情况更多见。第四章第四章 VBVB程序设计基础程序设计基础循环变量的作用之一循环变量的作用之一:控制循环次

8、数控制循环次数for n=11 to 20 step 1 Print String(10,*)next nfor n=1 to 20 step 2 Print String(10,*)next nfor n=10 to 1 step -1 Print string(10, *)next n对对n=10,9,8.到到1, 分别执行分别执行:.循环结束后循环结束后n的值的值?循环次数的计计算:循环次数的计计算:循环次数循环次数) 1(步长初值终值Int循环次数循环次数=int(20-1)/2+1)=10循环次数循环次数=int(20-11)/1+1)=10循环次数循环次数=int(1-10)/(-

9、1)+1)=10第四章第四章 VBVB程序设计基础程序设计基础循环变量的作用之一循环变量的作用之一:控制循环次数控制循环次数循环语句的循环语句的3种情况:种情况:1.步长步长0 : 初值初值终值:最多见,终值:最多见,循环变量从初值逐渐增加最后变化为终值循环变量从初值逐渐增加最后变化为终值2.步长步长终值终值循环变量从初值逐渐减少变化为终值循环变量从初值逐渐减少变化为终值3. 如步长为如步长为0-死循环死循环(永久循环永久循环): 按按crel+break终止死循环终止死循环 第四章第四章 VBVB程序设计基础程序设计基础例:如下程序会输出什么?例:如下程序会输出什么?for n=1 to 1

10、0 step 1 Print n; String(10,*)next n循环变量的作用之二循环变量的作用之二:在循环体中使用在循环体中使用例:例:For n = 1 To 10 Step 1 Print n; String(n, *)Next n仅用于控制循环次数仅用于控制循环次数不仅用于控制循环次数,还在循环体中使用不仅用于控制循环次数,还在循环体中使用第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例n问题:问题: 求:求:s=1+2+3+4+5+100 n分析:用循环实现分析:用循环实现 1.求和结果存放在变量求和结果存放在变量s中,中,s的初值应:的初值应: s=0

11、2.循环控制变量用循环控制变量用i表示,表示,i从从1,2,3,100,变化到变化到1003.求和的过程就是让变量求和的过程就是让变量i从从1开始开始, 2,3.到到100,要循环要循环(反复反复)执行执行: s=s+i第四章第四章 VBVB程序设计基础程序设计基础问题:问题:循环结束后循环结束后,i的值是的值是多少多少?For循环举例循环举例n问题:问题: 求:求:s=1+2+3+4+5+100Dim i%, s% i是循环控制变量,是循环控制变量,s结果变量结果变量s=0 初始值初始值0,作为累加器作为累加器 (清零清零)for i=1 to 100 step 1 s=s+inext iF

12、orm.Print 1到到100累加和累加和=; s101第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例n问题:问题: 求:求:s=1+2+3+4+5+100Dim i%, s% i是循环控制变量,是循环控制变量,s结果变量结果变量s=0 初始值初始值0,作为累加器作为累加器 (清零清零)for i=1 to 100 step 1 s=s+inext iForm.Print 1到到100累加和累加和=; s改成改成:for i=100 to 1 step -1 s=s+inext i第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习1n 问题分析

13、:对于变量问题分析:对于变量 i=1,3,5,.到不超过到不超过100, 分别执行分别执行: s=s+i next in问题:问题:计算计算1100的奇数和的奇数和 求:求:s=1+3+5+99第四章第四章 VBVB程序设计基础程序设计基础Dim i%, s% i是循环控制变量,是循环控制变量,s结果变量结果变量s=0 初始值初始值,作为累加器作为累加器for i=1 to 100 step 2 s=s+inext iPrint 1到到100奇数和奇数和=; s结束后结束后i的值的值?n问题:问题:计算计算1100的奇数和的奇数和 求:求:s=1+3+5+99For循环课堂练习循环课堂练习1答

14、案答案101第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习2n问题:问题:计算计算1100之间的奇数的倒数的和之间的奇数的倒数的和 求:求: s=1/1+1/3+1/5+.+1/99n问题分析:问题分析:对于变量对于变量 i=1,3,5,.到不超到不超过过100, 分别执行分别执行: s=s+1/i next In特别注意:特别注意:s是带小数的!是带小数的!第四章第四章 VBVB程序设计基础程序设计基础Dim i%, s! i是循环控制变量,是循环控制变量,s结果变量结果变量,单精度型单精度型s=0 初始值初始值,作为累加器作为累加器for i=1 to 100

15、 step 2 s=s+1/inext iPrint 1到到100奇数和奇数和=; sFor循环课堂练习循环课堂练习2答案答案n问题:问题:计算计算1100之间的奇数的倒数的和之间的奇数的倒数的和 求:求: s=1+1/3+1/5+.+1/99第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习3n问题:问题: 求:求: s=1-1/3+1/5-1/7+.+1/99n 问题分析:问题分析:n 正负号交叉问题:正负号交叉问题:定义一个用于处理符号的控制变量变量定义一个用于处理符号的控制变量变量sign,初始值为初始值为+1,再随着循环的进行,改为,再随着循环的进行,改为-

16、1,再改为,再改为+1,再改为,再改为-1,改变的方法:改变的方法:sign=-signn 对于变量对于变量 i=1,3,5,.到不超过到不超过100, 分别执行分别执行: s=s+sign/I sign=-sign next In 特别注意:特别注意:s是带小数的!是带小数的!第四章第四章 VBVB程序设计基础程序设计基础Dim i%, s! i是循环控制变量,是循环控制变量,s结果变量结果变量,有小数有小数,单精度单精度Dim sign% 存存+1 或或-1, 是控制变量是控制变量sign=1s=0 初始值初始值,作为累加器作为累加器for i=1 to 100 step 2 s=s+si

17、gn/i sign=-signnext iPrint s=; sFor循环课堂练习循环课堂练习3答案答案n问题:问题:求:求: s=1-1/3+1/5-1/7+.+1/99第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习4n问题:问题:编写一个程序编写一个程序 求求15!n问题分析:问题分析:1.m=1*2*.*152.注意注意15!超过!超过1012,应该用单精度或双精度型,应该用单精度或双精度型3.参考:参考:求:求:s=1+2+3+4+5+100Dim i%, s% i是循环控制变量,是循环控制变量,s结果变量结果变量s=0 初始值初始值,作为累加器作为累加器

18、for i=1 to 100 step 1 s=s+inext iForm1.Print 1到到100累加和累加和=; s第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习4答案答案n问题:问题:编写一个程序编写一个程序 求求15!Dim i%, m# 为什么用双精度为什么用双精度?m = 1 为什么为什么=1?For i = 1 To 15 Step 1 m = m * iNext iForm1.Print 15!=; m第四章第四章 VBVB程序设计基础程序设计基础表表 3.1 基本数据类型基本数据类型数据类型数据类型关键字关键字类型符类型符前缀前缀占字节数占字节

19、数范范 围围字节型字节型Byte无无byt10255逻辑型逻辑型Boolean无无bln2True与与False整型整型Integer%int2-3276832767长整型长整型Long&lng4-21474836482147483647单精度型单精度型Single!sng4-3.402823E383.402823E38双精度型双精度型Double#dbl8-1.79769313486232D3081.79769313486232D308货币型货币型Currencycur8-922337203685477.5808922337203685477.5907日期型日期型Date无无dtm801,0

20、1,010012,31,9999 0:00:0023:59:59字符型字符型String$str与串长有关与串长有关065535个字符个字符对象型对象型Objiect无无obj4任何对象引用任何对象引用变体型变体型Variant无无vnt据分配确定据分配确定第四章第四章 VBVB程序设计基础程序设计基础参考程序:求参考程序:求15!Dim i%, m! m = 1 为什么为什么=1?For i = 1 To 15 Step 1 m = m * iNext iForm1.Print 15!=; mFor循环课堂练习循环课堂练习5n问题:问题:参考求参考求 15! 的程序,编写一个程序,的程序,编

21、写一个程序,要求能求任意数要求能求任意数 n!第四章第四章 VBVB程序设计基础程序设计基础Dim i%, m#, n%n=inputbox(“输入输入n”)m = 1For i = 1 To n Step 1 m = m * iNext iMsgBox n & != & mFor循环课堂练习循环课堂练习5答案答案n问题:问题:参考求参考求 15! 的程序,编写一个程序,的程序,编写一个程序,要求能求任意数要求能求任意数 n!第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习6n问题:问题:求求n至至m之间自然数的累加之间自然数的累加参考求参考求s=1+2+3+4+5

22、+100的程序,做适当修改,使程序能对任意的程序,做适当修改,使程序能对任意2个数个数n到到m之间之间的自然数累加的自然数累加参考程序:求参考程序:求s=1+2+3+4+5+100Dim i%, s% i是循环控制变量,是循环控制变量,s结果变量结果变量s=0 初始值初始值0,作为累加器作为累加器 (清零清零)for i=1 to 100 step 1 s=s+inext iPrint 1到到100累加和累加和=; s第四章第四章 VBVB程序设计基础程序设计基础For循环课堂练习循环课堂练习6答案答案n问题:问题:求求n至至m之间自然数的累加之间自然数的累加参考求参考求s=1+2+3+4+5

23、+100的程序,做适当修改,使程序能对任意的程序,做适当修改,使程序能对任意2个数个数n到到m之间之间的自然数累加的自然数累加Dim i%, sum%,n%, m%n=inputbox(“输入输入n”)m=inputbox(“输入输入m”)sum = 0For i = n To m Step 1 sum = sum + iNext iMsgBox n & 至至 & m &累加累加= & sum 第四章第四章 VBVB程序设计基础程序设计基础注意存放累加与连乘的变量初值是不同的!注意存放累加与连乘的变量初值是不同的!累加初值为累加初值为0, 连乘初值为连乘初值为1Dim i%, sum%,n%n

24、=inputbox(“输入输入n”)sum = 0For i = 1 To n Step 1 sum = sum + iNext iMsgBox sum Dim i%, m#, n%n=inputbox(“输入输入n”)m = 1For i = 1 To n Step 1 m = m * iNext iMsgBox n&!= & m第四章第四章 VBVB程序设计基础程序设计基础 这样有什么问题这样有什么问题?Dim i%, sum%,n%n=inputbox(“输入输入n”)For i = 1 To n Step 1 sum = 0 sum = sum + iNext iMsgBox sum

25、Dim i%, m#, n%n=inputbox(“输入输入n”)For i = 1 To n Step 1 m = 1 m = m * iNext iMsgBox n&!= & m错误错误1第四章第四章 VBVB程序设计基础程序设计基础 Dim i%, sum%,n%n=inputbox(“输入输入n”)sum = 0For i = 1 To n Step 1 sum = sum + i MsgBox sum Next iDim i%, m#, n%n=inputbox(“输入输入n”)m = 1For i = 1 To n Step 1 m = m * i MsgBox n&!= & mN

26、ext i这样有什么问题这样有什么问题?错误错误2第四章第四章 VBVB程序设计基础程序设计基础 Dim i%, sum%sum = 0For i = 1 To 100 Step 1 sum = sum + i i=1 Next iMsgBox sum 这样有什么问题这样有什么问题?错误错误3for循环变量的循环变量的值会自动修改值会自动修改不要在不要在for循环循环体中给循环变体中给循环变量赋值量赋值, 第四章第四章 VBVB程序设计基础程序设计基础n编写程序,从键盘上任意输入编写程序,从键盘上任意输入10个个数数, 输出这输出这10个数的累加值个数的累加值Dim i%, sum%, a%s

27、um = 0For i = 1 To 10 Step 1 a=inputbox(请输入第请输入第 & i & 个数个数:) sum = sum + aNext iMsgBox 合计合计= & sum 怎样输出平均怎样输出平均值值?For循环课堂练习循环课堂练习7第四章第四章 VBVB程序设计基础程序设计基础n编写程序,从键盘上任意输入编写程序,从键盘上任意输入10个个数数, 输出这输出这10个数的累加值,平均值个数的累加值,平均值For循环课堂练习循环课堂练习8Dim i%, sum%, a%, aver!sum = 0For i = 1 To 10 Step 1 a = InputBox(请

28、输入第请输入第 & i & 个数个数:) sum = sum + aNext iaver = sum / 10MsgBox 合计合计= & sum & ;平均;平均= & aver第四章第四章 VBVB程序设计基础程序设计基础n以上例子都是在一个例子的基础之上扩充以上例子都是在一个例子的基础之上扩充功能或者小改功能得到的,都有类似之处功能或者小改功能得到的,都有类似之处n以下讲解以下讲解FOR循环的其它例子循环的其它例子第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例1n例:例: 编写程序,在窗体上显示编写程序,在窗体上显示ASCII码表码表中中ASCII码的值为码的值为3

29、2至至126的字符(即可见的字符(即可见字符),显示如图示,每行显示字符),显示如图示,每行显示5个。个。第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例1n分析分析1:已经知道一个字符的:已经知道一个字符的ASCII码值,码值,求这个字符是什么字符,需要用函数:求这个字符是什么字符,需要用函数: chr(N) chr(N) 得到得到ASCII码为码为N的字符的字符 例如:例如: chr(32)= chr(48)=0 chr(65)=A chr(97)=a chr(13)=回车回车第四章第四章 VBVB程序设计基础程序设计基础n分析分析2:要在窗体上输出要在窗体上输出ASC

30、II码值为码值为32的字符,如的字符,如图,可以用以下语句:图,可以用以下语句:Dim i%i = 32Form1.Print Chr(i); =; i要在窗体上输出要在窗体上输出ASCII码值为码值为33的字符,可的字符,可以用以下语句:以用以下语句:Dim i%i = 33Form1.Print Chr(i); =; i第四章第四章 VBVB程序设计基础程序设计基础问题:如何输出问题:如何输出ASCII码的值为码的值为32至至126的字符的字符?第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例1n分析分析3:要在窗体上输出:要在窗体上输出ASCII码值为码值为32到到A

31、SCII码值为码值为126的字符,可以用一个固定的字符,可以用一个固定次数的循环次数的循环Dim i%For i=32 to 126 step 1 Form1.print chr(i);=;iNext i问题:只显示在一列上,达不到要求!问题:只显示在一列上,达不到要求!第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例n分析分析4:在一行显示多个输出项:在一行显示多个输出项Dim i%For i=32 to 126 step 1 Form1.print chr(i);“=”;i,Next i问题:都显示在一行上,达不到要求!怎问题:都显示在一行上,达不到要求!怎么才能每行显

32、示么才能每行显示5个?个?第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例n分析分析5:增加一增加一个变量个变量a%,用于记录用于记录输出的个数,输出的个数,a的初的初值为值为0,每输出,每输出1个个项,项,a增加增加1,当当a=5时,时,输出一个换行,换输出一个换行,换行后将行后将a重新设置为重新设置为0 n如何换行?如何换行? Private Sub Form_Click()Dim i%, a%a = 0For i = 32 To 126 Step 1 Form1.Print Chr(i); =; i, a = a + 1 If a = 5 Then Form1.Pri

33、nt a = 0 End IfNext iEnd SubForm1.print第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例1:结果结果Private Sub Form_Click()Dim i%, a%a = 0For i = 32 To 126 Step 1 Form1.Print Chr(i); =; i, a = a + 1 If a = 5 Then Form1.Print a = 0 End IfNext iEnd Sub第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例1分析分析6:输出也:输出也可以要求指定可以要求指定输出项之间的输出项之

34、间的间隔,例如要间隔,例如要求用求用6个空格分个空格分隔隔2个输出项个输出项 Form1.Print Spc(6);Private Sub Form_Click()Dim i%, a% a=0 清零清零For i = 32 To 126 step 1 Form1.Print Chr(i); =; i; Spc(6); a = a + 1 显示个数加显示个数加1 If a = 5 Then 够够5个了个了 Form1.Print 换行换行 a = 0 清零清零 End IfNext iEnd Sub第四章第四章 VBVB程序设计基础程序设计基础n输出也可以要求指定输出也可以要求指定输出项之间的间

35、隔,输出项之间的间隔,例如要求用例如要求用3个空格分隔个空格分隔2个输出项个输出项 Form1.Print Spc(6);第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例2n例例 :参考前例:参考前例, 输出输出100至至300之之间可以被间可以被3整除或被整除或被5整除的数整除的数 , 两两数间空数间空4个空格个空格,每每8个数换行个数换行 第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例2n分析:分析:1.判断一个数判断一个数i能被能被3整除或被整除或被5整除的条件整除的条件表达式表达式: i mod 3=0 OR i mod 5=02.输出输出10

36、0至至300之间可以被之间可以被3整除或被整除或被5整整除的数除的数 ,两数间空两数间空4个空格个空格Dim i%, For i = 100 To 300 step 1 if i mod 3=0 OR i mod 5=0 then Form1.Print i; Spc(4); end ifNext i问题:问题:每每8个数换行个数换行 ?第四章第四章 VBVB程序设计基础程序设计基础Dim i%, a%a=0For i = 100 To 300 step 1 if i mod 3=0 OR i mod 5=0 then Form1.Print i; Spc(4); a = a + 1 If a

37、 = 8 Then Form1.Print a = 0 End If end ifNext i n例例 :参考前例:参考前例, 输出输出100至至300之间可以之间可以被被3整除或被整除或被5整除的数整除的数 , 两数间空两数间空4个空个空格格,每每8个数换行个数换行 第四章第四章 VBVB程序设计基础程序设计基础n例例 :参考前例:参考前例, 输出输出100至至300之间可之间可以被以被3整除或被整除或被5整除的数整除的数 , 两数间空两数间空4个空格个空格,每每8个数换行个数换行 ,结果:结果:第四章第四章 VBVB程序设计基础程序设计基础功能扩充:功能扩充:如果要求最后输出符合条如果要求

38、最后输出符合条件的数据个数,怎么办件的数据个数,怎么办?n处理:增加一个用于统计符合条件的数处理:增加一个用于统计符合条件的数据个数的变量据个数的变量n%,初值为,初值为0,每输出一个,每输出一个符合条件的数据,符合条件的数据,n增加增加1,循环结束后输,循环结束后输出出n的值的值第四章第四章 VBVB程序设计基础程序设计基础例例 输出输出100至至300之间可以被之间可以被3整除的数整除的数 , 每每8个数换行个数换行, 最后输出个数最后输出个数Dim i%, a%, n% n是用于统计个数的变量是用于统计个数的变量, 称为计数器称为计数器a=0: n=0 清零清零For i = 100 T

39、o 300 step 1 if i mod 3=0 OR i mod 5=0 then Form1.Print i; Spc(4); n=n+1 计数计数 加加1 a = a + 1 If a = 8 Then Form1.Print a = 0 End If end if Next iForm1.Print 被被3或或5整除的个数整除的个数=; n第四章第四章 VBVB程序设计基础程序设计基础思考:如果要思考:如果要求显示这些数求显示这些数的合计和平均的合计和平均?第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例3 水仙花数问题水仙花数问题第四章第四章 VBVB程序设计基

40、础程序设计基础For循环举例循环举例3 水仙花数问题水仙花数问题 153 =13 + 53 + 33 水仙花数是指每个位上的数字的水仙花数是指每个位上的数字的 3 3 次幂之和次幂之和等于它本身。等于它本身。问题问题: 输出所有输出所有3位数中的水仙花数位数中的水仙花数第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例3 水仙花数问题水仙花数问题n 分析:分析:1.输出所有输出所有3位数中的水仙花数位数中的水仙花数即找出即找出100999之间的水仙花数之间的水仙花数For i=100 to 999 step 1 if end ifNext i第四章第四章 VBVB程序设计基础

41、程序设计基础n分析:分析:2.如何判断一个数如何判断一个数 i是水仙花数?是水仙花数?假如假如i的百位数是的百位数是a,十位数是十位数是b,个位数是,个位数是c,则:,则:For i=100 to 999 step 1 if i=a3+b3+c3 then form1.print I, end ifNext i问题:如何能求出一个问题:如何能求出一个3位数位数i的百位数的百位数a,十位数十位数b,个位数个位数c?第四章第四章 VBVB程序设计基础程序设计基础n分析:分析:3.问题:如何能求出一个问题:如何能求出一个3位数位数i的百位数的百位数a,十位数十位数b,个个位数位数c?假设假设 i=1

42、23,则:则:百位数百位数a: a = Int(i / 100)十位数十位数b: b = Int(i - 100 * a) / 10)个位数个位数c: c = i Mod 10 第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例3:输出所有输出所有3位数中的水仙花数位数中的水仙花数Dim i%, a%, b%, c% 百位数百位数,十位数十位数,个位数个位数 For i = 100 To 999 Step 1 a = Int(i / 100) b = Int(i - 100 * a) / 10) c = i Mod 10 If a 3 + b 3 + c 3 = i Then

43、 Form1.Print i, End If Next i第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例4n例例 输入两个整数输入两个整数, 输出最大公约数输出最大公约数.第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例4:求:求最大公约数最大公约数.n 分析分析1: 直观的来看:直观的来看: 两个整数两个整数a,b (例如例如:3, 7),最大公约数应该是,最大公约数应该是1 两个整数两个整数a,b (例如例如:24, 4),最大公约数应该是,最大公约数应该是4 两个整数两个整数a,b (例如例如:12, 6),最大公约数应该是,最大公约数应该是6

44、即:两个整数即:两个整数a,b 的最大公约数应该是在二者中那个小的数的最大公约数应该是在二者中那个小的数与与1之间。如果用之间。如果用min存放存放a和和b中那个小的数:中那个小的数:a,b的最大公约数范围是从的最大公约数范围是从min 到到1For i = min To 1 Step -1 If Then MsgBox 最大公约数最大公约数= & i Exit For 跳出跳出For循环循环(终止循环终止循环) End IfNext i第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例4:求两数的:求两数的最大公约数最大公约数.n分析分析2:如何判断数如何判断数i是是a,b

45、的的最大公约数最大公约数?如果数如果数i是是a,b的的最大公约数最大公约数,则应该有:则应该有: a Mod i = 0 And b Mod i = 0 第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例4n 分析分析: 2.算法算法(1)输入)输入a,b (2) 把把a,b中小者存放到中小者存放到min中中(3)循环:从)循环:从i=min 到到 1,每次减,每次减1,一个个,一个个i判断能否同时判断能否同时整除整除a,b,如果能,此时如果能,此时i的值就是的值就是a,b的最大公约数,否则,的最大公约数,否则,继续判断下一个继续判断下一个I,第四章第四章 VBVB程序设计基

46、础程序设计基础For循环举例循环举例4:程序:程序n 例例 输入两个整数输入两个整数, 输出最大公约数输出最大公约数. Dim a%, b%, min%, i%a = Val(InputBox(输入输入a)b = Val(InputBox(输入输入b)If a b Then min = a Else min = b 小的数存入小的数存入xFor i = min To 1 Step -1 If a Mod i = 0 And b Mod i = 0 Then MsgBox 最大公约数最大公约数= & i Exit For 跳出跳出For循环循环(终止循环终止循环) End IfNext i第四章

47、第四章 VBVB程序设计基础程序设计基础For循环举例循环举例5n例例: 求两数的最小公倍数求两数的最小公倍数?第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例5:求两数的最小公倍数:求两数的最小公倍数n分析分析1: 两个整数两个整数a,b (例如例如:12,4),最小公倍数是最小公倍数是12,是二者中大者,是二者中大者两个整数两个整数a,b (例如例如:3,7),最小公倍数是,最小公倍数是21,是二者的乘积,是二者的乘积两个整数两个整数a,b (例如例如:12,8),最小公倍数是,最小公倍数是24所以:如果将其中大的数存入所以:如果将其中大的数存入max,则则a,b的最小

48、公倍的最小公倍数范围是从数范围是从?到到?a,b的最小公倍数范围是从的最小公倍数范围是从max到到a*bfor i=max to a*b step 1 ?next i第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例5:求两数的最小公倍数:求两数的最小公倍数n分析分析2:如何判断数如何判断数i是是a,b的最小公倍数?的最小公倍数?如果数如果数i是是a,b的最小公倍数,则应该有:的最小公倍数,则应该有: I mod a=0 and I mod b=0a,b的最小公倍数范围是从的最小公倍数范围是从max到到a*b第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例

49、:仿照例子仿照例子n 参考以下求最小公倍数的程序写出求最大公约参考以下求最小公倍数的程序写出求最大公约数的程序数的程序.dim a%,b%,x%,i%a=inputbox(输入输入a)b=inputbox(输入输入b)if a b Then max = a Else max = bFor i = max To a * b Step 1 If i Mod a = 0 And i Mod b = 0 Then MsgBox a & 和和 & b & 的最小公倍数的最小公倍数= & i Exit For 跳出跳出For循环循环(终止循环终止循环) End IfNext i第四章第四章 VBVB程序设

50、计基础程序设计基础For循环举例循环举例6n判断一个数是否是素数判断一个数是否是素数.第四章第四章 VBVB程序设计基础程序设计基础For循环举例循环举例6: 判断一个数是否是素数判断一个数是否是素数.n 分析分析1:根据数学知识:判断一个自然数:根据数学知识:判断一个自然数a是否是素数是否是素数?对于对于a,用用 2-a-1之间的所有自然数一一去除之间的所有自然数一一去除a, 看是否存在看是否存在一个数一个数i,能够整除,能够整除a,如果能,说明不是素数;如果不,如果能,说明不是素数;如果不能,说明是素数能,说明是素数Dim a%, i% a =val( InputBox(输入输入a)Dim

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

当前位置:首页 > 教育专区 > 教案示例

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

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