2012-2013-2VFP第4部分(循环结构).ppt

上传人:za****8 文档编号:13013690 上传时间:2020-06-04 格式:PPT 页数:43 大小:651.51KB
返回 下载 相关 举报
2012-2013-2VFP第4部分(循环结构).ppt_第1页
第1页 / 共43页
2012-2013-2VFP第4部分(循环结构).ppt_第2页
第2页 / 共43页
2012-2013-2VFP第4部分(循环结构).ppt_第3页
第3页 / 共43页
点击查看更多>>
资源描述
VisualFoxpro6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,要点:1.算法的概念及特点2.掌握程序3种基本结构的表示3.掌握利用分支结构编程4.掌握利用循环结构编程5.常用控件,第三、四、五讲程序设计(1),循环结构能够使某些语句或程序段重复执行若干次。如果某些语句或程序段需要在一个固定的位置上重复操作,使用循环是最好的选择。,3循环结构,常见的循环结构有:,条件循环dowhile,步长循环for,扫描循环scan,涉及数据表的循环,第6章介绍,1)条件循环(dowhile循环)格式:流程图:,条件,语句序列,Enddo之后的语句,N,Y,循环体,教材P62,【例】计算1+2+3+100,第1步,计算0+1;第2步,计算(0+1)+2;第3步,计算(0+1+2)+3;第i步,计算(0+1+i-1)+i;.第100步,计算(0+1+99)+100;,递归算法,前i-1次累加和,第i次累加项,三个“确定”循环三要素,算法:确定循环变量i并赋初值为1定义s存放累加和,初值为0确定循环条件i=100s=s+i确定循环变量的变化趋势i=i+1输出结果s,递推公式,在条件循环中如何体现的?,s=1+2+3+100,基本方法:,属于“累加器”类型问题,(1)在进入累加前先给累加器赋初值s=0(求和一般为0)(2)用循环语句实现累加循环控制变量赋初值:i=1循环条件:i=100循环变量的改变规律:i=i+1(3)循环体语句的设计s=s+i(累加器当前值=累加器原值+循环当前值),“计算”按钮的click事件代码:s=0i=1dowhilei=100s=s+ii=i+1enddoThisform.text1.value=s,循环体,【修改例3-8】计算s=1+2+3+n,x:x=0 x=nx=x+1,S:s=0S=s+x,“计算”命令按钮的“click”事件代码:n=thisform.text1.values=0 x=1dowhilex=ns=s+xenddothisform.text2.value=s,说明:循环结构从dowhile开始,到enddo结束,两者必须成对出现;在enddo后面可以书写注释。循环是否继续取决于条件的当前取值,一般情况下循环体中应含有改变条件取值的命令或语句,否则将造成死循环。循环结构能自身嵌套(多重循环),还能与选择结构的各种形式嵌套。,2)步长循环(forendfor计数循环)格式:,教材P62,计算1+2+3+100,s=0fori=1to100s=s+iendforThisform.text1.value=s,step1,(教材P60)【例3-9】设计如图所示表单,在文本框text1中输入N的值,求N!。,如:123.100,(1)给累乘器赋初值p=1(一般为1)(2)用循环语句实现累乘循环变量赋初值:i=1循环条件:i=thisform.text1.value循环变量改变规律:i=i+1(3)循环体设计p=p*i(累乘器当前值=累乘器原值*循环当前值),基本方法:,属于“累乘器”类型问题,“计算”命令按钮的“Click”事件代码:p=1fori=1tothisform.text1.valuep=p*iendforthisform.text2.value=p,说明:步长可正可负,缺省为1。循环体中不应包含改变循环变量值的命令,否则循环次数将随之改变。如果循环可以通过计数来控制,则本循环比条件循环更为方便。,当循环步长循环在文本框Text1中输入终值n在文本框Text2中输入步长ki=1fori=1tonstepkdowhileiendfor|nexti=i+kendddo,【练习1】求100以内的奇数和。,A=1+3+5+99,循环变量初值n=1,循环条件n100,循环变量的变化趋势n=n+2,请同学们自己写出流程图和程序,循环体累加语句:A=A+n,【练习2】求,循环变量初值x=1,循环条件xn,循环变量的变化趋势x=x+1,循环体累加语句:K=K+x2,请同学们自己写出流程图和程序,【练习3】,请同学们自己写出流程图和程序,s=0fori=1to100s=s+(-1)(i+1)/iendforthisform.text1.value=s,方法1:,方法2:,s=0k=1fori=1to100s=s+k/ik=-kendforthisform.text1.value=s,命令按钮的“click”事件代码:s1=0s2=0fori=1to99step2s1=s1+1/iendforfori=2to100step2s2=s2+1/iendforthisform.text1.value=s1-s2,方法3:,思考:计算e的近似值。其公式为:e1+1/1!1/2!1/3!1/N!,直到1/N!=0.000001s=s+1/pp=p*ii=i+1enddothisform.text1.value=s,阶乘,累加,【例】求所有的水仙花数。(所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。,编程方法:“枚举法”按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。,查找范围:,三位数100999,任意一个三位数,判断这个三位数x是水仙花数的条件:X=x13+x23+x33,【练习4】100以内能够被X整除的数之和。,【练习5】找出所有的四位水仙花数,【练习6】找出所有的三位回文数,开始,S=0,i=1,100,B,j,i,Y,:,6,5,v,A,c=c+substr(x,i,1),确定变量:x:存任意字符串x=Av56:YijB8i:存截取次数(1len(x)c:存逆序字符串c=c+substr(x,i,1),确定算法:用循环在原字符串中从右到左逐个截取字符,重新组装成逆序字符串,确定循环三要素:循环变量:i(i初值为len(x),终值为1)循环条件:i=1循环条件改变:i=i-1(从右到左截取),【例】输入一串ASCII字符,显示数字字符串。假设输入:Av56:YijB8显示:568。,请同学们自己写出程序,从左到右逐个取出字符x,判断x是数字的条件:,Asc(x)asc(0)andAsc(x)8显示:AYB。输入一串ASCII字符,显示小写字母串。假设输入:Av56:YijB8显示:vij。,请同学们自己写出程序,【例】如图所示一程序界面。文本框TEXT1已经输入一串文字,单击“转换”命令按钮后,文本框的值将变为什么?,“转换”命令按钮的CLICK事件代码:N=LEN(THISFORM.TEXT1.VALUE)Y=DOWHILEN0X=SUBSTR(THISFORM.TEXT1.VALUE,N,1)IFASC(X)=ASC(a)X=UPPER(X)ELSEX=LOWER(X)ENDIFY=X+YN=N-1ENDDOTHISFORM.TEXT1.VALUE=Y,tHISISAcpu.,【练习7】输入一个正整数判断这个是几位数。,Command1_click:x=thisform.text1.valueW=0&位数计数器Ifint(x)=xandx=0dowhilex=1x=int(x/10)w=w+1enddomessagebox(你输入的是一个+alltrim(str(w)+位数)Elsemessagebox(请输入正整数.)endif,拓展,【练习8】将整数x中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入123456789,输出:b=97531。,Command1_click:x=thisform.text1.valuey=0Ifint(x)=xandx=0dowhilex=1x1=mod(x,10)&记录从后向前的每一位数IFx1%2=1&判断每一位是否为奇数y=y*10+x1&逆序组合新数endifx=int(x/10)enddoElsemessagebox(请输入正整数.)endif,【练习9】有一数列:1,1,2,3,5,8,13求出这个数列的前30项之和。(注意分子与分母的变化规律。),Command1_click:x=1a=1b=1W=a+b&和计数器dowhilex=28c=a+b&计算第n项的值w=w+ca=b&为计算第n+1项做准备b=cx=x+1enddomessagebox(“前30项的和是:+alltrim(str(w),【练习10】有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前20项之和。(注意分子与分母的变化规律。),Command1_click:w=0&和计数器a=2&记录分子b=1&记录分母x=1dowhilex=20w=w+a/bc=aa=b+a&形成下一项的分子b=a&形成下一项的分母x=x+1enddomessagebox(“前20项的和是:+alltrim(str(w),
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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