《循环结构实验》PPT课件.ppt
《《循环结构实验》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《循环结构实验》PPT课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、Visual Basic 程序设计教程,第三章,基本控制结构,顺序结构程序虽然比较容易理解,但是不可能处理复杂的问题。计算机要处理的问题往往是复杂多变的,仅采用顺序结构是不够的。必须利用选择结构等来解决实际应用中的各种问题。VB中主要通过If条件语句和Select情况语句来实现。它们都是对条件进行判断,根据判断结果,选择执行不同的分支。计算机最擅长的功能之一就是按规定的条件,重复执行某些操作。在实际应用中,经常遇到一些操作并不复杂,但需要反复多次处理的问题,比如要计算1+2+3+10000,直接把这个求和的表达式用手工输入显然是不现实的。这类问题都可通过循环结构来方便地实现。,VB中提供了主要
2、两类循环语句:ForNext循环语句(一般已知循环次数);DoLoop条件型循环语句(一般未知循环次数)。有时,在程序中必须强迫改变程序的流程已脱离循环,VB也提供了几个可以影响执行程序流程的语句:Exit For Exit Do Goto,3.4 循环结构程序设计,程序代码如下:Private Sub Command1_Click()Dim S%,i%S=0 累加前变量S为0(清零)For i=1 to 100S=S+i Next i Print S=;S Print 循环控制变量 i=;iEnd Sub,3.4.2 For Next循环语句,例题3.13:计算1+2+3+4+100之和。程
3、序分析:1到100的累加,可以看做从0开始,每次加一个数,重复加100次,i=1 S=1 i=2 S=3i=3 S=6i=4 S=10i=100 S=5050i=101 S=5050,求1-100之间奇数数之和,偶数之和;计算1*2*3*4*100,例题3.14:输出1-100中的能被3和5同时整除的整数的个数。程序分析:可以利用循环语句依次枚举1-100中的每个数,再对每个数进行判断,设置计数器,满足条件则把计数器加1。,3.4.2 For Next循环语句,程序代码如下:Private Sub Form_Click()n=0 累加前变量n为0(清零)Dim i As integer For
4、 i=1 To 100 If(i Mod 3=0)And(i Mod 5=0)Then Print i;能够被;3;和;5;整除 n=n+1 End If Next iPrint n=;nEnd Sub,一般情况下,For Next 需要正常结束,即循环变量到达终值。但在某些情况下,可能在循环变量到达终值前需要退出循环,这可以通过Exit For 语句来实现。,Exit For,3.4.2 For Next循环语句,例如:Private Sub Form_Click()Dim i!,j%For i=1 to 100 Step 0.1 j=j+1 If i*j5000 Then Exit For
5、 Next i Print j=;j Print 循环控制变量 i=;iEnd Sub,如果没有Exit For 语句,循环体应该被执行991次Int(100-1)/0.1+1),但在第220次循环时,i*j的值为232205000,满足条件而退出当前循环,所以循环体实际被执行了220次。,DoLoop循环语句-比较,Do循环用于控制循环次数未知的循环结构。格式1:Do While|Until 语句块 Exit Do 语句块Loop格式1为先判断后执行,有可能一次也不执行;格式2为先执行后判断,至少执行一次。,格式2:Do 语句块 Exit Do 语句块Loop While|Until,例:求
6、1+2+100的值,Private Sub Form_click()FontSize=30 Sum=0 n=1 Do Sum=Sum+n n=n+1 Loop Until n 100 Print SumEnd Sub,Private Sub Form_click()FontSize=30 Sum=0 n=1 Do Until n 100 Sum=Sum+n n=n+1 Loop Print SumEnd Sub,例:输出如下图形,1 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5思考:若将其中的数字改为*,应如何修改代码?,代码为:Private
7、 Sub Form_click()FontSize=18 Dim a%,b%For a=1 To 5 Print Tab(40-3*a);For b=1 To 2*a-1 Print a;Next Print NextEnd Sub,Private Sub Form_click()FontSize=18 Dim a%,b%For a=1 To 5 Print Tab(27-a);s=*For b=1 To 2*a-1 Print*;Next Print NextEnd Sub,Private Sub Form_click()FontSize=18 Dim a%,b%For a=1 To 5 P
8、rint Tab(40-3*a);For b=1 To 2*a-1 Print a;Next Print NextEnd Sub,例:输出如下图形,1 2 2 2 3 3 3 3 3 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 7 7 7 7 7 8 8 8 9思考:若将其中的数字改为*,应如何修改代码?,代码为:Private Sub Form_click()FontSize=18 Dim a%,b%For a=1 To 9 Print Tab(30+3*Abs(5-a);For b=1 To 9-2*Abs(5-a)Print a;Next
9、Print NextEnd Sub,Private Sub Form_Click()FontSize=18 Dim a%,b%For a=1 To 9 Print Tab(30+Abs(4-a);For b=1 To 7-2*Abs(4-a)Print*;Next Print NextEnd Sub,代码为:Private Sub Form_click()FontSize=18 Dim a%,b%For a=1 To 9 Print Tab(30+3*Abs(5-a);For b=1 To 9-2*Abs(5-a)Print a;Next Print NextEnd Sub,例题3.17:随机
10、产生n个1100(包括1和100)的整数,求它们的最大值、最小值和平均值。程序分析:设变量Max,用来存储最大值,先假设第一个数是最大的,把它赋给Max,以后输入的每一个数都与Max比较,把大的数存在Max中,最终Max中就存储了所有数的最大值,同样的方法可以求得最小值。平求均值只需要用累加和除以n程序代码如下:,3.4.4应用举例,其他辅助控制语句,Go To 语句 无条件地转移到标号或行号指定的那行语句。Go To 标号|行号注意:标号是字符序列,首字符必须为字母,标号后应有冒号;行号是一个数字序列;例 判断输入的数是否为素数素数就是除1和本身以外,不能被其他任何整数整除的数。根据此定义,
11、判别某数m是否为素数最简单的方法就是依次用i=2m-1去除,只要有一个数能整除m,m就不是素数;否则m是素数。,要求一定范围内的素数,只要将m作为外循环体变量。,Private Sub Form_Click()Dim n%,i%,min%,max%,s%,aver!n=Val(inputBox(输入随机产生数据个数:)s=int(Rnd*100+1)随机产生第一个数 max=s min=s aver=s Print 第1个数是:averEnd Sub,3.4.4应用举例,例题3.18:求s=a+aa+aaa+aaaa+aa.a的值,其中a(1-9)中的一个数字。例如2+22+222+2222+
12、22222 程序分析:我们可以用循环累加的方法来完成求和的计算,设s为累加和,t为每次要加的数(aaaaa)。则本题的关键在于如何计算每次要加的t,由于a、aa、aaa、是一组有规律变化的数字,分析可知aaa=aa*10*a、aaaa=aaa*10+a,所以当前要加的t,可以由上一次加的t计算得出。,3.4.4应用举例,程序代码如下:Private Sub Form_Click()Dim n%,i%Dim s As Long,t As Long,a As Long s=0 t=0 a=inputBox(请输入数据1-9)n=inputBox(请输入n)For i=1 To n t=t+a s=
13、s+t t=t*10 Next i Print a+aa+.aaaaaa=;sEnd Sub,3.4.4应用举例,例题3.19:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,153=13+53+33。编程找出所有的水仙花数,程序分析:可以用循环的方法依次判断所有的三位数。在每次循环中,取出一个三位数的个、十、百位按照水仙花数的定义公式进行判断。这种判断所有可能性的方法叫做穷举法。,3.4.4应用举例,程序代码如下:Private Sub Form_Click()Dim x%,y%,z%,n%For n=100 To 99
14、9 测试所有可能的3位数 x=int(n/100)计算百位数 y=int(n-x*100)/10)计算十位数 z=n-int(n/10)*10 计算个位数 If n=x 3+y 3+z 3 Then 判断是否满足水仙花数条件 Print Str(x)+3+;Str(y)+3 _+Str(z)+3+=+Str(n)+_ 是水仙花数 打印水仙花数 End If Next nEnd Sub,3.4.4应用举例,例题3.20:求具有abcd=(ab+cd)2性质的四位数。例如:3025将它平分为二段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025程序分析:与上例相同,可以采用穷举
15、法,对所有四位数进行判断,从而筛选出符合这种性质的四位数。程序代码如下:Private Sub Form_Activate()Dim n%,ab)的平方 End If Next nEnd Sub,3.4.4应用举例,例题3.21:在一个文本框中输入一个字符串,判断输入信息是否完全是数字形式。程序分析:可以用循环语句从字符串中依次取出每个字符,对该字符进行判断,如果不是数字形式,则退出循环。最后通过循环是否正常结束来判断输入信息是否完全是数字形式。程序代码如下:Private Sub Command1_Click()Dim p As String,q As String*1 Dim i As i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环结构实验 循环 结构 实验 PPT 课件

链接地址:https://www.31ppt.com/p-5508023.html