书签 分享 收藏 举报 版权申诉 / 37
上传文档赚钱

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

  • 上传人(卖家):晟晟文业
  • 文档编号:4232105
  • 上传时间:2022-11-21
  • 格式:PPT
  • 页数:37
  • 大小:197.06KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VFP第11部分(循环辅助语句及多重循环)解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VFP 11 部分 循环 辅助 语句 多重 解析 课件
    资源描述:

    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方法二:

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VFP第11部分(循环辅助语句及多重循环)解析课件.ppt
    链接地址:https://www.163wenku.com/p-4232105.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库