文档详情

VB程序设计:do循环实例.ppt

发布:2019-03-29约2.48千字共14页下载文档
文本预览下载声明
do循环语句: Do while 条件表达式 循环体 LOOP 枚举算法 水仙花问题: 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在100和999范围内的水仙花数。 分析: 设三位数i,百位数为a,十位数为b,个位数为c 初始值i=100 枚举范围:i=999 满足条件:i=a^3+b^3+c^3 列表框属性 什么是枚举? 现实世界中有一类问题可以采用搜索的方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对全部可能结果逐一进行判断,过滤掉那些不符合要求的,保留符合要求的结果,这种方法叫做枚举算法。 优点: 1、简单 2、准确性高 3、全面性 缺点: 最耗时 * * 课前回顾: FOR语句格式: For 循环变量 = 初值 to 终值 step 步长 循环体 Next 循环变量 x=0 For i=1 to 20 if (i mod 2=0) and (i mod 3=0) then x=x+i end if Next i Print x S=0 For k= 3 to 5 S=s+3 Next k Print s 练习(学业水平测试题) 1、s=1+1/2+1/3+1/4+…1/n,当n=?时,s第一次大于10。 请同学们仔细观察,用曾经学过的程序设计的方法能解决这两个问题吗? 想一想: 流程图 表达式是否为真 循环体 LOOP y n 如:我从0岁到1岁每天吃饭用while表示? 注意: 1、定义初值 2、确定条件表达式 3、写循环体(循环体中要有能改变循环条件的语句) i=0 do while i=364 吃饭 i=i+1 loop For I=0 to 364 step 1 吃饭 next i 例1、s=1+1/2+1/3+1/4+…1/n, 当n=?时,s第一次大于10 Do While 条件表达式 循环体 Loop Do While...Loop语句的功能: 当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环 程序: S=0 n=0 do while ( ) n=n+1 s=s+1/n loop msgbox n 累加器 计数器 特征:无法预先知道循环的次数,在递推过程中才能确定是否结束循环 s=10 利用DO循环写程序要点: (1)首先要确定初值 (2)确定满足循环条件的表达式(逻辑型) (3)写循环体,在循环体中一定要有能改变循环条件变量的表达式 说明:For循环只能用在循环次数已知的情况;凡是用FOR循环的程序都可以用DO循环来写;而循环次数未知时,只能用DO循环。 上机实践:津津将10000元钱存入银行,银行的年利率为1分(即10%),如一直不取出,问按照利滚利的计算方法,至少经过多少年津津才能拿到150000元? Dim s as single, year as integer s = 10000 year = 0 Do While _______ ______________ s = s * (1 + 0.1) Loop MsgBox year 分析: 第一年: S1=10000*(1+0.1) 第二年: S2=S1*(1+0.1) 第三年: S3=S2*(1+0.1) … year = year + 1 S150000 思考:如何取出三位数的每位数字? 流程图 程序代码 100=i=999 a=i\100 b=i\10 mod 10 c=I mod 100 i=a^3+b^3+c^3 输出i 是 退出 i=i+1 Private Sub Command1_Click() Dim I, a, b, c As Integer I = 100 Do While I = 999 a = I \ 100 b = I \ 10 Mod 10 c = I Mod 10 If I = a ^ 3 + b ^ 3 + c ^ 3 Then n = n + 1 List1.AddItem Str(I) End If I = I + 1 Loop Text1.Text = Str(n)
显示全部
相似文档