课前回顾:FOR语句格式:For循环变量=初值to终值step步长循环体Next循环变量x=0Fori=1to20if(imod2=0)and(imod3=0)thenx=x+iendifNextiPrintxS=0Fork=3to5S=s+3NextkPrints练习(学业水平测试题)1、s=1+1/2+1/3+1/4+…1/n,当n=?时,s第一次大于10。请同学们仔细观察,用曾经学过的程序设计的方法能解决这两个问题吗?想一想:do循环语句:Dowhile条件表达式循环体LOOP流程图表达式是否为真循环体LOOPyn如:我从0岁到1岁每天吃饭用while表示?注意:1、定义初值2、确定条件表达式3、写循环体(循环体中要有能改变循环条件的语句)i=0dowhilei=364吃饭i=i+1loopForI=0to364step1吃饭nexti例1、s=1+1/2+1/3+1/4+…1/n,当n=?时,s第一次大于10DoWhile条件表达式循环体LoopDoWhile...Loop语句的功能:当条件成立(为真)时,执行循环体;当条件不成立(为假时),终止循环程序:S=0n=0dowhile()n=n+1s=s+1/nloopmsgboxn累加器计数器特征:无法预先知道循环的次数,在递推过程中才能确定是否结束循环s=10利用DO循环写程序要点:(1)首先要确定初值(2)确定满足循环条件的表达式(逻辑型)(3)写循环体,在循环体中一定要有能改变循环条件变量的表达式说明:For循环只能用在循环次数已知的情况;凡是用FOR循环的程序都可以用DO循环来写;而循环次数未知时,只能用DO循环。上机实践:津津将10000元钱存入银行,银行的年利率为1分(即10%),如一直不取出,问按照利滚利的计算方法,至少经过多少年津津才能拿到150000元?Dimsassingle,yearasintegers=10000year=0DoWhile_____________________s=s*(1+0.1)LoopMsgBoxyear分析:第一年:S1=10000*(1+0.1)第二年:S2=S1*(1+0.1)第三年:S3=S2*(1+0.1)…year=year+1S150000枚举算法水仙花问题:春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。现在要求输出所有在100和999范围内的水仙花数。分析:设三位数i,百位数为a,十位数为b,个位数为c初始值i=100枚举范围:i=999满足条件:i=a^3+b^3+c^3思考:如何取出三位数的每位数字?流程图程序代码100=i=999a=i\100b=i\10mod10c=Imod100i=a^3+b^3+c^3输出i是退出i=i+1PrivateSubCommand1_Click()DimI,a,b,cAsIntegerI=100DoWhileI=999a=I\100b=I\10Mod10c=IMod10IfI=a^3+b^3+c^3Thenn=n+1List1.AddItemStr(I)EndIfI=I+1LoopText1.Text=Str(n)EndSub列表框列表框的功能:多列显示。列表框属性Additem方法:增加新项目如:list1.Additemstr(4)removeitem方法:删除项目,小心:列表框第一个序号是0如:litst1.removeitem4clear方法:清除所有项目如:list1.clear控件方法使用格式:控件名.方法[值]说明:可以没有值控件名称:image图片框功能:可以加载图片、显示文字、画图外,它还能与Frame对象一样,在自己本身里头加载其它的对象而自成一个小群组属性:picture(加载图片)stretch(返回或设置一个值,该值用来指定一个图形是否要调整大小,以适应与Image控件的大小。True表示图形要调整大小以与控件相适合。False(缺省值)表示控件要调整大小以与图形相适。image什么是枚举?现实世界中有一类问题可以采用搜索的方法,在搜索结果的过程中,把各种可能的情况都考虑到,并对全部可能结果逐一进行判断,过滤掉那些不符合要求的,保留符合要求的结果,这种方法叫做枚举算法。优点:1、简单2、准确性高3、全面性缺点:最耗时