VFP0404Scan循环和多层循环.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Scan循环和多层循环 班级:数学系12级 日期:2013.11 时数:1 目的:理解Scan循环语句,掌握编写多层循环程序的基本要求 重点:Scan循环语句 难点:Scan循环语句的理解 关键:用效果流程图简化其思路 4.4.3 Scan循环语句(扫描循环语句) 格式: Scan [范围] [While条件][For条件]语句序列[Exit][Loop] EndScan 功能:针对范围内符合条件的记录逐条执行语句序列。 回忆:范围优先级规则(略) 执行过程: 第1步:依照范围优先级规则,过滤出要操作的记录,并初设记录指针。 第2步:如果记录指针超出范围,本循环语句结束。否则,到第3步。 第3步:执行Scan和EndScan之间的语句序列。可能有三种情况,①中途遇Exit命令,强行结束本循环语句。②中途遇Loop命令,记录指针后移一次,回到第2步。③最后遇EndScan语句,记录指针后移一次,回到第2步。 说明: ①Scan和EndScan须各占一行,成对出现。 ②Loop和Exit意义同For语句。 小提示:Scan语句适合隐含记录指针为循环变量的场合。 图4-8 Scan语句流程图 按真实效果,可以把Scan语句的For和While看作对记录进行过滤,当然,那样的话,记录指针每次移动可能不止一个记录。不妨称之为效果流程。 图4-9 Scan语句效果流程图 第105页,例 4.24 统计学生信息表student_info.dbf中男女生党员人数。 set talk off clear store 0 to x,y scan for 少数民族否if 性别=男x=x+1elsey=y+1endif endscan ?男生党员有+str(x,2)+人 ?女生党员有+str(y,2)+人 set talk on return 第105页,例 4.25 用Scan语句逐条显示学生信息表student_info.dbf中1989年出生的学生。 set talk off clear use student_info.dbf scan for year(出生日期)=1989displaywait endscan ?显示完毕! use set talk on return 4.4.4循环嵌套 语句,循环与循环、循环与选择,只能嵌套,不能交叉。 图4-10 循环语句的嵌套 第106页,例 4.26 以下程序建立二维数组,写出其运行结果。 set talk off dimension p(3,4) for a=1 to 3for b=1 to 4p(a,b)=a+2*bp(a,b)endfor endfor set talk on return 答案: 3 5 7 9 4 6 8 10 5 7 9 11 第106页,例 4.27 求下列不定方程组的全部自然数解。 set talk off for x=1 to 20for y=1 to 20for z=1 to 20if 25*x+20*y+13*z=400 .and. x+y+z=20x,y,zendifendforendfor endfor set talk on return 答案: 7 8 5 第107页,例 4.28 打印乘法九九表。 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 …… 9 * 1 = 9 9 * 2 =18 9 * 3 =27 9 * 4 =36 … 9 * 9 =81 分析:九九表由项构成,每项为“数*数=积”或“行*列=积”用X、Y分别表示行、列,则项为“X*Y=P”。先编一个打印一行(如第4行)的程序。 set talk off clear x= 4 for y = 1 to xstr(x,1,0),*,str(y,1,0),=,str(x*y,2,0), endforset talk on return 再编打印九行的程序。 set talk off clear for x= 1 to 9for y = 1 to xstr(x,1,0),*,str(y,1,0),=,str(x*y,2,0), endforendfor set talk on return 说明:教材中紧凑打印为??str(x,1)+*+str(y,1)+=+str(x*y,2)+ 第107页,例 4.29 输入整数N,打印由“*”构成的N行的三角形,“*”号之间空两格。如N=5时 * * * * * * * * ** * * * * * ** * * * ** * ** set talk off cl

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档