ImageVerifierCode 换一换
格式:PPT , 页数:43 ,大小:338.93KB ,
文档编号:4232694      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4232694.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(VFP第4部分(循环结构)课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

VFP第4部分(循环结构)课件.ppt

1、V is u a l F o x p r o 6.0 程序设计基础重庆工商大学计要点:要点:1.算法的概念及特点算法的概念及特点 2.掌握程序掌握程序3种基本结构的表示种基本结构的表示 3.掌握利用分支结构编程掌握利用分支结构编程 4.掌握利用循环结构编程掌握利用循环结构编程 5.常用控件常用控件 第三、四、五讲第三、四、五讲 程序设计程序设计(1)(1)要点:第三、四、五讲 程序设计(1)循环结构能够使某些语句或程序段重复执循环结构能够使某些语句或程序段重复执行若干次。行若干次。如果某些语句或程序段需要如果某些语句或程序段需要,使用循环是最好的选择。,使用循环是最好的选择。3循环结构循环结构

2、常见的循环结构有:涉及数据表的循涉及数据表的循环,第环,第6章介绍章介绍 循环结构能够使某些语句或程序段重复执行若干次。3 格式格式:流程图:流程图:条件条件语句序列语句序列EnddoEnddo之后的语句之后的语句NY循环循环体体 教材P621)条件循环(d o w h ile 循环)条件语句序列E n d d o 之【例例】计算计算1+2+3+1001+2+3+100【例】计算1+2+3+1 0 0第第 1 1 步,步,计算计算 0+0+1 1;第第 2 2 步,步,计算计算 (0+1)+(0+1)+2 2;第第 3 3 步,步,计算计算 (0+1+2)+(0+1+2)+3 3;第第 i i

3、 步,步,计算计算 (0+1+0+1+i-1+i-1)+)+i i;.第第 100 100 步,计算步,计算 (0+1+(0+1+99)+99)+100100;递归递归算法算法前前i-1次累加和次累加和第第i次累加项次累加项第 1 步,计算 0+1;递归算法前i-1 次累加和第i递推公式递推公式在条件循环中如在条件循环中如何体现的?何体现的?s=1+2+3+s=1+2+3+100+100三个“确定”算法:递推公式在条件循环中如何体现的?s=1+基本方法基本方法:属于属于“累加器累加器”类型问题类型问题 (1 1)在进入累加前先给累加器赋初值)在进入累加前先给累加器赋初值 s=0s=0(求和一般

4、为求和一般为0 0)(2 2)用循环语句实现累加)用循环语句实现累加 循环控制变量赋初值:循环控制变量赋初值:i=1i=1 循环条件循环条件:i=100i=100 循环变量的改变规律循环变量的改变规律:i=i+1i=i+1(3 3)循环体语句的设计)循环体语句的设计 s=s=s+is+i (累加器当前值累加器当前值=累加器原值累加器原值+循环当前值循环当前值)基本方法:属于“累加器”类型问题(1)在进入累加前先给累加 i=100s=s+i i=i+1s=0,i=1开始开始结束结束输出输出sYN循环变量赋初值循环变量赋初值循环条件(循环条件(i大于大于100就结束)就结束)循环变量的变化趋势循环

5、变量的变化趋势从从1变到变到100 i=1 0 0 s=s+is=0,i=1 开始结束输出s Y“计算计算”按钮的按钮的clickclick事件代码:事件代码:s=0s=0i=1i=1do while i=100do while i=100s=s=s+is+ii=i+1i=i+1enddoenddoThisform.text1.value=sThisform.text1.value=s循环体循环体“计算”按钮的c lic k 事件代码:循环体【修改修改例例3-83-8】计算计算s=1+2+3+ns=1+2+3+n x:x=0 x=n x=x+1S:s=0 S=s+x【修改例3-8】计算s=1+

6、2+3+n x:x=0 S“计算计算”命令按钮的命令按钮的“click”事件代码:事件代码:n=thisform.text1.value s=0 x=1do while x=ns=s+xenddothisform.text2.value=s“计算”命令按钮的“c lic k”事件代码:说明:说明:循环结构循环结构;。循环是否继续取决于条件的当前取值,循环是否继续取决于条件的当前取值,一般情况下循环体中应含有一般情况下循环体中应含有,否则将造成,否则将造成死循环。死循环。循环结构能循环结构能,还,还能与选择结构的各种形式嵌套。能与选择结构的各种形式嵌套。说明:格式格式:教材P62确定循环变量并赋

7、初值确定循环变量并赋初值(在在FOR中实现中实现)确定循环条件并判断?确定循环条件并判断?(在在FOR中实现中实现)执行循环体中语句序列执行循环体中语句序列循环体变量按步长变化循环体变量按步长变化(在在FOR中实现中实现)执行执行ENDFORENDFOR之后的语句之后的语句2)步长循环(f o r e n d f o r 计数循环)教材P 6计算计算1+2+3+1+2+3+100+100s=0s=0for i=1 to 100 for i=1 to 100 s=s=s+is+iendforendforThisform.text1.value=sThisform.text1.value=sste

8、p 1计算1+2+3+1 0 0 s=0 s t e p 1(教材教材P60)P60)【例例3-93-9】设计如图所示表单,在文本框设计如图所示表单,在文本框text1text1中输入中输入N N的值,求的值,求N!N!。如:如:123.100(教材P 6 0)【例3-9】设计如图所示表单,在文本框t e x(1)给累乘器赋初值)给累乘器赋初值 p=1(一般为一般为1)(2)用循环语句实现累乘)用循环语句实现累乘 循环变量赋初值循环变量赋初值:i=1 循环条件循环条件:i=thisform.text1.value 循环变量改变规律循环变量改变规律:i=i+1(3)循环体设计)循环体设计 p=p

9、*i (累乘器当前值累乘器当前值=累乘器原值累乘器原值*循环当前值循环当前值)基本方法基本方法:属于属于“累乘器累乘器”类型问题类型问题 (1)给累乘器赋初值基本方法:属于“累乘器”类型问题 输入输入n ni=1i=1,fac=1fac=1 i=i=1 n=1 fac=facfac=fac*n n n=n-1 n=n-1 输出输出facfac 求求n n!的!的N-SN-S图图输入n 求n!的N-S 图输入n 求n!的N-S 图“计算计算”命令按钮的命令按钮的“Click”事件代码:事件代码:p=1for i=1 to thisform.text1.valuep=p*iendforthisfo

10、rm.text2.value=p“计算”命令按钮的“C lic k”事件代码:说明说明:步长可正可负,缺省为步长可正可负,缺省为1 1。循环体中循环体中,否则循环次数将随之,否则循环次数将随之改变改变。如果循环可以通过如果循环可以通过来控制,来控制,则本循环比条件循环更为方便。则本循环比条件循环更为方便。说明:在文本框在文本框Text1Text1中输入终值中输入终值n n在文本框在文本框Text2Text2中输入步长中输入步长k k i=1 for i=1 to n step k i=1 for i=1 to n step k do while i=n do while i=n endfor|

11、nextendfor|next i=i=i+ki+k endddoendddo当循环 步长循环【练习练习1】求求100以内的奇数和。以内的奇数和。A=1+3+5+A=1+3+5+99+99循环变量循环变量初值初值n=1循环条件循环条件n100循环变量的变化循环变量的变化趋势趋势n=n+2请同学们自请同学们自己写出流程己写出流程图和程序图和程序循环体累加语句:循环体累加语句:A=A+n【练习1】求1 0 0 以内的奇数和。A=1+3+5+9 9 循环222.21nK【练习练习2】求求循环变量循环变量初值初值x=1循环条件循环条件xn循环变量的变化循环变量的变化趋势趋势x=x+1循环体累加语句:循

12、环体累加语句:K=K+x2请同学们自请同学们自己写出流程己写出流程图和程序图和程序【练习2】求循环变量循环条件x n 循环变量的变化循环体累加语【练习练习3】n1.312111001.4131211请同学们自请同学们自己写出流程己写出流程图和程序图和程序【练习3】请同学们自己写出流程图和程序s=0for i=1 to 100s=s+(-1)(i+1)/iendforthisform.text1.value=s方法方法1:方法方法2:s=0k=1for i=1 to 100s=s+k/ik=-kendforthisform.text1.value=ss=0 方法1:方法2:s=0命令按钮的命令按

13、钮的“click”事件代码:事件代码:s1=0s2=0for i=1 to 99 step 2s1=s1+1/iendforfor i=2 to 100 step 2s2=s2+1/iendforthisform.text1.value=s1-s2方法方法3:命令按钮的“c lic k”事件代码:方法3:思考:计算思考:计算e e的近似值。其公式为:的近似值。其公式为:e e1+1/1!1+1/1!1/2!1/2!1/3!1/3!1/N!1/N!,直到直到1/N!0.0000011/N!=0.000001s=s+1/pp=p*ii=i+1enddothisform.text1.value=s阶

14、乘累加“计算”命令按钮的“c lic k”事件代码:阶乘累加【例例】求所有的水仙花数。求所有的水仙花数。(所谓水仙花数是指一所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。个三位数,其各位数字的立方和等于该数本身。编程方法:编程方法:“枚举法枚举法”按问题本身的性质,一一列举出该问题所有按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解,若是,我们采纳可能解是否是问题的真正解,若是,我们采纳这个解,否则抛弃它。对于所列举的值,既不这个解,否则抛弃它。对于所列举的值,既不能遗漏也不能重复。能遗

15、漏也不能重复。【例】求所有的水仙花数。(所谓水仙花数是指一个三位数,其各位查找范围:查找范围:三位数三位数100999任意一个三位数任意一个三位数X百位数字百位数字X1十位数字十位数字X2个位数字个位数字X3判断这个三位数判断这个三位数x是水仙花数的条件:是水仙花数的条件:X=x13+x23+x33查找范围:三位数1 0 0 9 9 9 任意一个三位数X 百位数字X 1 十【练习练习4】100以内能够被以内能够被X整除的数之和。整除的数之和。开始开始S=0,i=1S=0,i=1输入输入X Xi=100i=100真真输出输出s s的值的值结束结束假假i=i+1i=i+1S=S=S+iS+iMod

16、(i,XMod(i,X)=0)=0真真假假【练习4】1 0 0 以内能够被X 整除的数之和。开始S=0,i=【练习练习5】找出所有的四位水仙花数找出所有的四位水仙花数开始开始S=0,i=1S=0,i=11000=i and i=99991000=i and i=9999真真输出输出y y结束结束假假i=i+1i=i+1分别取各位数分别取各位数Y=XY=X真真假假计算各位数立方和计算各位数立方和y y【练习5】找出所有的四位水仙花数开始S=0,i=1 1 0 0 0【练习练习6】找出所有的三位回文数找出所有的三位回文数开始开始S=0,i=1S=0,i=1100=i and i=999100=i

17、and i=999真真输出输出i i结束结束假假i=i+1i=i+1取个位数取个位数a1a1和百位数和百位数a3a3a1=a3a1=a3真真假假【练习6】找出所有的三位回文数开始S=0,i=1 1 0 0 8x=Av56:YijB8逆序:逆序:从右到左逐个取出从右到左逐个取出8 8 B Bj j i iY Y:6 6 5 5 v v A A 11 10 9 8 7 6 5 4 3 2 1 次数次数i(i(循环变量循环变量):):总次数总次数=总的字符数总的字符数c=c+c=c+substr(x,i,1)substr(x,i,1)C=8BjiY:65vA C=8BjiY:65vA substr(

18、x,i,1)substr(x,i,1)总的字符总的字符数数len(xlen(x)x=A v 5 6:Y ijB 8 逆序:从右到左逐个取出8 B j确定变量:确定变量:x x:存任意字符串:存任意字符串x=Av56:YijB8Av56:YijB8 i i:存截取次数:存截取次数(1len(x)(1len(x)c c:存逆序字符串:存逆序字符串 c=c+substr(x,i,1)c=c+substr(x,i,1)确定算法:确定算法:用循环在原字符串中从右到左逐个截取字符,重新组装用循环在原字符串中从右到左逐个截取字符,重新组装成逆序字符串成逆序字符串确定循环三要素:确定循环三要素:循环变量循环变

19、量 :i(i:i(i初值为初值为len(xlen(x),),终值为终值为1)1)循环条件循环条件:i=1:i=1循环条件改变:循环条件改变:i=i-1(i=i-1(从右到左截取从右到左截取)确定变量:确定算法:用循环在原字符串中从右到左逐个截取字符,【例例】输入一串输入一串ASCII字符,显示数字字符串。假设字符,显示数字字符串。假设输入:输入:Av56:YijB8 显示:显示:568。请同学们自请同学们自己写出程序己写出程序从左到右逐个取出字符从左到右逐个取出字符x x判断判断x x是数字的条件:是数字的条件:Asc(xAsc(x)asc()asc(0 0)and)and Asc(xAsc(

20、x)asc()8 Av56:YijB8 显示:显示:AYB AYB。输入一串输入一串ASCIIASCII字符,显示小写字母串。假设输入:字符,显示小写字母串。假设输入:Av56:YijB8 Av56:YijB8 显示:显示:vijvij。请同学们自请同学们自己写出程序己写出程序【例】输入一串A S C I I 字符,显示大写字母串。假设输入:A v【例例】如图所示一程序界面。文本框如图所示一程序界面。文本框TEXT1已经输入已经输入一串文字,单击一串文字,单击“转换转换”命令按钮后,文本框的值将变命令按钮后,文本框的值将变为什么?为什么?“转换转换”命令按钮的命令按钮的CLICK CLICK

21、事件代码:事件代码:N=LEN(THISFORM.TEXT1.VALUE)N=LEN(THISFORM.TEXT1.VALUE)Y=Y=DO WHILE N0DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1)X=SUBSTR(THISFORM.TEXT1.VALUE,N,1)IF ASC(X)=IF ASC(X)=ASC(aASC(a)X=UPPER(X)X=UPPER(X)ELSE ELSE X=LOWER(X)X=LOWER(X)ENDIFENDIF Y=X+Y Y=X+YN=N-1N=N-1ENDDOENDDOTHISFORM.TEXT1.VAL

22、UE=YTHISFORM.TEXT1.VALUE=YtHIS IS A cpu.【例】如图所示一程序界面。文本框T E X T 1 已经输入一串文字,【练习练习7】输入一个正整数判断这个是几位数。输入一个正整数判断这个是几位数。Command1_click:x=thisform.text1.valueW=0&位数计数器位数计数器If int(x)=x and x=0 do while x=1 x=int(x/10)w=w+1 enddo messagebox(你输入的是一个你输入的是一个+alltrim(str(w)+位数位数)Else messagebox(请输入正整数请输入正整数.)end

23、if拓展拓展【练习7】输入一个正整数判断这个是几位数。C o m m a n d 1 _【练习练习8】将整数将整数x中每一位上为奇数的数依次取出,并逆中每一位上为奇数的数依次取出,并逆序构成一个新数返回。例如:程序运行时输入序构成一个新数返回。例如:程序运行时输入123456789,输出:,输出:b=97531。Command1_click:x=thisform.text1.valuey=0 If int(x)=x and x=0 do while x=1 x1=mod(x,10)&记录从后向前的每一位数记录从后向前的每一位数 IF x1%2=1&判断每一位是否为奇数判断每一位是否为奇数 y=

24、y*10+x1&逆序组合新数逆序组合新数 endif x=int(x/10)enddoElse messagebox(请输入正整数请输入正整数.)endif【练习8】将整数x 中每一位上为奇数的数依次取出,并逆序构成一【练习练习9】有一数列:有一数列:1,1,2,3,5,8,13求出这个数列的前求出这个数列的前30项之和。(注意分子与分母的变化规律。)项之和。(注意分子与分母的变化规律。)Command1_click:x=1a=1b=1W=a+b&和计数器和计数器do while x=28 c=a+b&计算第计算第n项的值项的值 w=w+c a=b&为计算为计算第第n+1项项做准备做准备 b=

25、c x=x+1enddomessagebox(“前前30项的和是:项的和是:+alltrim(str(w)【练习9】有一数列:1,1,2,3,5,8,1 3 求出这个【练习练习10】有一分数序列:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13求出这个数求出这个数列的前列的前20项之和。(注意分子与分母的变化规律。)项之和。(注意分子与分母的变化规律。)Command1_click:w=0&和计数器和计数器a=2&记录分子记录分子b=1&记录分母记录分母x=1do while x=20 w=w+a/b c=a a=b+a&形成下一项的分子形成下一项的分子 b=a&形成下一项的分母形成下一项的分母 x=x+1enddomessagebox(“前前20项的和是:项的和是:+alltrim(str(w)【练习1 0】有一分数序列:2/1,3/2,5/3,8/5,1

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|