VFP第11部分(循环辅助语句及多重循环)解析课件.ppt

上传人(卖家):晟晟文业 文档编号:4232105 上传时间:2022-11-21 格式:PPT 页数:37 大小:197.06KB
下载 相关 举报
VFP第11部分(循环辅助语句及多重循环)解析课件.ppt_第1页
第1页 / 共37页
VFP第11部分(循环辅助语句及多重循环)解析课件.ppt_第2页
第2页 / 共37页
VFP第11部分(循环辅助语句及多重循环)解析课件.ppt_第3页
第3页 / 共37页
VFP第11部分(循环辅助语句及多重循环)解析课件.ppt_第4页
第4页 / 共37页
VFP第11部分(循环辅助语句及多重循环)解析课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、V i s u a l F o x p r o 6.0 程序设计基础重庆工商大学计3 3种循环结构种循环结构Do while.Do while.enddoenddofor.for.endforendforscan.scan.endscanendscan3 种循环结构D o w h i l e.e n d d o f o r.e n d f循环辅助语句循环辅助语句loop:loop:通常又称为中途复始语句或通常又称为中途复始语句或短路语句。短路语句。exitexit:通常又称为中途退出语句或:通常又称为中途退出语句或循环终止语句。循环终止语句。l o o p:通常又称为中途复始语句或短路语句。e

2、 x i t流程图流程图:条件条件语句序列语句序列LOOPEXITenddoenddo的下一条命令的下一条命令NY流程图:条件语句序列e n d d o 的下一条命令N Y【例例】将将1010到到2020中第一个能被中第一个能被3 3整除的数找出整除的数找出来。来。For n=10 to 20For n=10 to 20 if n%3=0 if n%3=0?n?n exit exit endifendifendforendfor结束当前循环,跳出结束当前循环,跳出exit所在的循环结构所在的循环结构【例】将1 0 到2 0 中第一个能被3 整除的数找出来。结束当【例例】求求300300以内能被

3、以内能被1717整除的最大的数。整除的最大的数。for x=300 to 1 step-1 if mod(x,17)=0?x exit endifendfor 找到满足条件的最找到满足条件的最大数,结束循环大数,结束循环从大数开始,第从大数开始,第一次找到的就一次找到的就是最大值是最大值【例】求3 0 0 以内能被1 7 整除的最大的数。找到满足条件的最【例例】将将1010到到2020中所有不能被中所有不能被3 3整除的数找出整除的数找出来。来。for n=10 to 20for n=10 to 20 if n/3=int(n/3)if n/3=int(n/3)loop loop endife

4、ndif?n?n endforendfor结束本次循环,结束本次循环,转入下一次循转入下一次循环条件的判断环条件的判断【例】将1 0 到2 0 中所有不能被3 整除的数找出来。结束本【例例】求求300300以内能被以内能被1717整除的所有整数。整除的所有整数。for x=1 to 300 if x%17!=0 loop else?x endifendfor【例】求3 0 0 以内能被1 7 整除的所有整数。f o r x=x=.t.x=.t.s=0s=0do do whilwhil x xs=s+1s=s+1if s/8=int(s/8)if s/8=int(s/8)?s?selseelse

5、looploopendiendiif s40if s40 x=.f.x=.f.endiendienddenddreturetu例:写出程序例:写出程序的结果的结果实验实验13 13 任务任务1 1(2 2)x=.t.结果为:8 例:写出程序的结果实验1 3 任务1(2例:计算例:计算100100以内的奇数以内的奇数和和s=0s=0i=0i=0do while.t.do while.t.i=i+1i=i+1if i100if i100exitexit endifendifif i%2=0if i%2=0 loop loop elseelses=s=s+is+iendifendifenddoend

6、do?100?100以内的奇数和为:以内的奇数和为:,s,scancelcancel永真永真循环循环还有哪些等价的表达式?mod(I,2)=0或int(i/2)=i/2例:计算1 0 0 以内的奇数和s=0 永真循环还有哪些等价的表达例:逐条显示例:逐条显示xsda.dbfxsda.dbf中女生的记录并统中女生的记录并统计人数。计人数。cleaclea use use xsdaxsda vsvs=0=0 do do whilwhil not not eofeof()()if if 性别性别=“=“男男”scanscan skip if skip if 性别性别=“=“男男”loop loop

7、looploopelse else elseelsedispdisp dispdispvsvs=vs+1 =vs+1 vsvs=vs+1=vs+1skip skip endiendiendiendi ends ends enddendd?”?”女生人数为:女生人数为:”,vsvs returetu例:逐条显示x s d a.d b f 中女生的记录并统计人数。例:以下程序段与例:以下程序段与VFPVFP命令:命令:DELETE WHILE DELETE WHILE 性别性别=男男.and.and.政治面貌政治面貌=群众群众 等效,请填空完成。等效,请填空完成。Go topGo topdo wh

8、ile.not.eof()do while.not.eof()if if 性别性别男男 endif endif if if 政治面貌政治面貌=群众群众 endif endif skip skipenddoenddoexitexitdeletedelete例:以下程序段与V F P 命令:e x i t例:下列程序判断一个自然数例:下列程序判断一个自然数n n是否为素是否为素数,其方法是用数,其方法是用2 2到到 之间的数逐个去之间的数逐个去除,若余数都不为除,若余数都不为0 0,则,则n n为素数,否则为素数,否则不是素数不是素数,请填空完成。请填空完成。n例:下列程序判断一个自然数n 是否为

9、素数,其方法是用2 到 INPUT INPUT 请输入一个大于请输入一个大于1 1的自然数的自然数:TO N:TO NY=1&Y=1Y=1&Y=1表示所输入的自然数是素数表示所输入的自然数是素数,为为0 0表示不是素数表示不是素数X=INT(SQRT(N)X=INT(SQRT(N)I=2I=2DO WHILE I=XDO WHILE I=X IF N%I_ IF N%I_ _ _ LOOP LOOP ELSE ELSE Y=0 Y=0 EXIT EXIT ENDIF ENDIFENDDOENDDOIF Y=1IF Y=1?_?_+_+是素数是素数 ELSEELSE?N,?N,不是素数不是素数

10、ENDIFENDIFRETURN RETURN 00i=i+1i=i+1str(nstr(n)I N P U T 请输入一个大于1 的自然数:T O N 0多重循环(掌握双重循环)多重循环(掌握双重循环)真真真真外循环初始条件外循环初始条件内循环初始条件内循环初始条件内循环体内循环体外循环条件外循环条件假假内循环条件内循环条件假假改变内循环循改变内循环循环条件环条件改变外循环改变外循环循环条件循环条件外循环结束外循环结束二重二重循环循环嵌套嵌套结构结构执行执行流程流程 内循环结束内循环结束真真外循环初始条件内循环初始条件内循环体外循环条件假内循环条例例:利用双重循环编程求利用双重循环编程求su

11、m=1+(1+2)+sum=1+(1+2)+(1+2+3)+(1+2+3+10)(1+2+3)+(1+2+3+10)之值。之值。11+21+2+31+2+3+41+2+3+4+5+6+7+8+9+10所有累加所有累加项可以看项可以看成右图成右图例:利用双重循环编程求s u m=1+(1+2)+1 所有累加项可方法一:方法一:clearclearsum=0sum=0t=0t=0for i=1 to 10for i=1 to 10 t=t=t+it+i sum=sum=sum+tsum+tendforendfor?sum=,sum?sum=,sumreturnreturn方法一:方法二:方法二:c

12、learclearsum=0sum=0for i=1 to 10for i=1 to 10t=0t=0for j=1 to ifor j=1 to it=t=t+jt+jendforendforsum=sum=sum+tsum+tendforendfor?1+?1+(1+21+2)+(1+2+31+2+3)+(1+2+3+101+2+3+10)=,sum=,sumreturnreturn累加思考:思考:P29P29实验实验12 12 任务任务2 2(3 3)计算)计算e e的近似值。用的近似值。用双重循环怎么做?双重循环怎么做?方法二:累加思考:P 2 9 实验1 2 任务2(3)计算e 的近

13、似值例:编写输出乘法口诀表的程序,要求口例:编写输出乘法口诀表的程序,要求口诀表呈三角形格式输出。诀表呈三角形格式输出。1 1*1=11=12 2*1=2 21=2 2*2=42=43 3*1=3 31=3 3*2=6 32=6 3*3=93=94 4*1=4 41=4 4*2=8 42=8 4*3=12 43=12 4*4=164=165 5*1=5 51=5 5*2=10 52=10 5*3=15 53=15 5*4=20 54=20 5*5=255=25.9 9*1=9 91=9 9*2=18 92=18 9*3=27 93=27 9*4=36 94=36 9*5=45 95=45 9*

14、9=819=81例:编写输出乘法口诀表的程序,要求口诀表呈三角形格式输出。1cleacleafor x=1 to 9 for x=1 to 9&控制行控制行for y=1 to x for y=1 to x&控制列控制列s=xs=x*y y?allt(str(xallt(str(x)+)+*+allt(str(yallt(str(y)+;)+;=+=+allt(str(sallt(str(s)+)+endfendf?endfendfreturetu什么意思,可以省略吗?c l e a 什么意思,可以省略吗?例:编程打印如下图形:例:编程打印如下图形:*例:编程打印如下图形:clearclear

15、for i=1 to 5for i=1 to 5&控制行控制行 for j=1 to 2for j=1 to 2*i-1i-1&控制列控制列?*endforendfor?endforendforreturnreturnc l e a r for i=1 to 6 for i=1 to 6&用于控制行用于控制行?space(6-i)?space(6-i)for j=1 to for j=1 to 2 2*i-1 i-1&用于控制每行的字符个数用于控制每行的字符个数?“?“*”&每行输出的字符每行输出的字符 endforendfor endforendfor *例:编程打印图形:例:编程打印图形:

16、*例:编程打印图形:例(例(08020802)定义一个一维数组)定义一个一维数组MNMN,将数据表,将数据表XZ.DBFXZ.DBF(6 6个字段)中的每条记录存入该数组,并个字段)中的每条记录存入该数组,并将该数组的值依次显示出来,请填空。将该数组的值依次显示出来,请填空。CLEARCLEAR DIMENSION DIMENSION USE XZ USE XZ DO WHILE.NOT.EOF()DO WHILE.NOT.EOF()I=1I=1 DO WHILE I7DO WHILE I7?MN(I)?MN(I)I=I+1I=I+1 ENDDO ENDDO?ENDDO ENDDO USE U

17、SE mn(6)mn(6)scatter to scatter to mnmnskipskip例(0 8 0 2)定义一个一维数组MN,将数据表X Z.D B F(6例(例(08010801)以下程序的功能是统计以下程序的功能是统计100100以内能被以内能被8 8整除的整数的个数。整除的整数的个数。X=0X=0N=0N=0DO WHILE X=100DO WHILE X=100 X=X+1 X=X+1 IF IF LOOP LOOP ENDIF ENDIF ENDDOENDDO?N?Nx/8int(x/8)x/8int(x/8)或或 mod(x,8)0 mod(x,8)0 或或 x%80 x

18、%80 n=n+1 n=n+1 例(0 8 0 1)以下程序的功能是统计1 0 0 以内能被8 整除的整数例(例(08020802).有一程序如下,请写出运行结果。有一程序如下,请写出运行结果。CLEARCLEARDIMENSION A(3,3)DIMENSION A(3,3)FOR I=1 TO 3FOR I=1 TO 3FOR J=1 TO 3FOR J=1 TO 3IF IJIF IJA(I,J)=0A(I,J)=0ELSEELSEA(I,J)=9A(I,J)=9ENDIFENDIF?A(I,J)?A(I,J)ENDFORENDFOR?ENDFORENDFORCANCEL CANCEL

19、9 0 0 9 0 0 0 9 0 0 9 0 0 0 9 0 0 9例(0 8 0 2).有一程序如下,请写出运行结果。9 例例(09010901)读如下程序,写出运行结果:)读如下程序,写出运行结果:CLEARCLEAR DIME W1(5)DIME W1(5)X=A X=A W1=W1=FOR I=5 TO 1 step-1FOR I=5 TO 1 step-1 FOR J=1 TO I FOR J=1 TO I W1(I)=W1(I)+XW1(I)=W1(I)+X ENDFOR ENDFOR X=CHR(ASC(X)+1)X=CHR(ASC(X)+1)?6-I,W1(I)?6-I,W1

20、(I)ENDFOR ENDFOR 1 AAAAA 1 AAAAA 2 BBBB 2 BBBB 3 CCC 3 CCC 4 DD 4 DD 5 E 5 E例(0 9 0 1)读如下程序,写出运行结果:1 A A A A例:利用学生例:利用学生.dbf.dbf和选课和选课.dbf.dbf,通过,通过反复反复输入学生的输入学生的学号(学号(输入回车键退出输入回车键退出),查询学生的姓名、籍贯、),查询学生的姓名、籍贯、课程号以及成绩情况。课程号以及成绩情况。方法方法1 1:set safety off set safety off selesele 1 1use use 学生学生 alias ali

21、as xsxsindex on index on 学号学号 tag tag xhxhselesele 2 2use use 选课选课set relation to set relation to 学号学号 into into xsxs涉及表的双重循环涉及表的双重循环例:利用学生.d b f 和选课.d b f,通过反复输入学生的学号(do while.t.do while.t.&外循环外循环accept accept 请输入学生的学号:请输入学生的学号:to to xhxh?“?“姓名姓名 专业班级专业班级 课程号课程号 成绩成绩 scan for scan for 学号学号=xhxh&内循环

22、内循环?xs.?xs.姓名姓名,xs.,xs.籍贯籍贯,课程号课程号,成绩成绩endscanendscanenddoenddoclose allclose allset safety onset safety onreturnreturnif if len(alltrim(xhlen(alltrim(xh)=0)=0exitexitendifendifIf If alltrim(xhalltrim(xh)=“#”)=“#”d o w h i l e .t.&外循环i f l e n(a方法方法2 2:clear allclear alldo while.t.do while.t.accept

23、accept 请输入学生的学号:请输入学生的学号:to to xhxhif if len(alltrim(xhlen(alltrim(xh)=0)=0exitexitendifendif select select 姓名姓名,籍贯籍贯,课程号课程号,成绩成绩 from from 选课选课 xkxk,学生学生 xsxs where where xsxs.学号学号=xhxh and and xkxk.学号学号=xsxs.学号学号 to screento screenenddoenddo方法2:学生情况表学生情况表ST.DBFST.DBF 学号学号 姓名姓名 性别性别 总成绩总成绩 KI01 KI0

24、1 王子仪王子仪 女女 409409 KI02 KI02 李丽萍李丽萍 女女 512512 KI03 KI03 张雨张雨 男男 390390 KI04 KI04 马思成马思成 男男 400400 KI05 KI05 陈艳陈艳 女女 395395 家庭情况表家庭情况表FAM.DBFFAM.DBF 学号学号 亲属姓名亲属姓名 关系关系 部门部门 KI01 KI01 王松王松 父亲父亲 DE3DE3 KI01 KI01 刘利刘利 母亲母亲 DE1DE1 KI02 KI02 李永李永 父亲父亲 DE1DE1 KI03 KI03 张永强张永强 父亲父亲 DE5DE5 KI03 KI03 赵雯赵雯 母亲母

25、亲 DE7DE7 KI03 KI03 张明张明 哥哥哥哥 DE3DE3 KI04 KI04 李翠花李翠花 母亲母亲 DE3DE3 KI05 KI05 陈兴平陈兴平 父亲父亲 DE5DE5 KI05 KI05 陈大伟陈大伟 爷爷爷爷 DE2DE2 例(实验指导书例(实验指导书P40P40):现有两个表:现有两个表文件,表结构及部分文件,表结构及部分记录如下记录如下 学生情况表S T.D B F 编写程序,编写程序,反复输入部门反复输入部门,查询亲属在该部门工作,查询亲属在该部门工作的学生名单的学生名单(即按亲属工作部门查询学生即按亲属工作部门查询学生)。要求输出式。要求输出式如下如下(假设输入的

26、部门为假设输入的部门为DE3):DE3):DE3 DE3 部部 门门 学生姓名学生姓名 亲属关系亲属关系 亲属姓名亲属姓名 王子仪王子仪 父亲父亲 王松王松 张明张明 哥哥哥哥 张明张明 马思成马思成 母亲母亲 李翠花李翠花 编写程序,反复输入部门,查询亲属在该部门工作的学生名方法一方法一:clearclearset talk offset talk offselesele 1 1use use ststindeinde on on 学号学号 tag tag xhxhselesele 2 2use use famfamset set relarela to to 学号学号 into ainto

27、 a方法一:ynyn=y=y do while do while uppe(ynuppe(yn)=Y)=Y accept accept 请输入部门:请输入部门:to to bmbmcleaclea?space(15)+bm+?space(15)+bm+部门部门?学生姓名学生姓名 亲属关系亲属关系 亲属名单亲属名单 scan for scan for 部门部门=bmbm?a.?a.姓名姓名+关系关系+亲属姓名亲属姓名endsendswait wait 是否还要继续是否还要继续?(y/n)to?(y/n)to ynynenddoenddoclose allclose allset talk ons

28、et talk onreturnreturny n=y 方法二方法二:CLEARCLEARynyn=y=ydo while do while upper(ynupper(yn)=Y)=Yaccept accept 请输入部门:请输入部门:to to bmbmcleaclea?space(15)+bm+?space(15)+bm+部门部门 select select stustu.姓名姓名 as as 学生姓名学生姓名,关系关系 as as 亲属关系亲属关系,亲属姓名亲属姓名 as as 亲属名单亲属名单 from from stu,famstu,fam;where where stustu.学号学号=famfam.学号学号 and and 部门部门=bmbm to screen to screenwait wait 是否还要继续是否还要继续?(y/n)to?(y/n)to ynynenddoenddoreturetu方法二:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

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


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

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


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