ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:94.32KB ,
资源ID:18142220      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18142220.html】到电脑端继续下载(重复下载不扣费)。

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(62程序结构文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

62程序结构文档格式.docx

1、 DOCASE ,ENDCASE 必须配对使用,且各占一行。DOCASE是本结构的入口,ENDCASE是本结构的出口。 DO CASE 后面紧接着CASE ,且各占一行,中间不能有任何语句。 不管有几个CASE条件成立,只有最先成立的那个CASE条件的对应命令会执行。 语句序列里可以出现各种类型的语句,如果又出现多选择结构,则是本语句的嵌套形式。 例:计算分段函数值:Y= -1 (X=0) 1 (0X=10) 2 (1020) 1 (0=10) 并根据X的奇偶性输出“奇数”或者“偶数” (4)选择嵌套 语句中的IF和ENDIF ,DOCASE-ENDCASE 等必须成对出现,嵌套不能出现交叉。

2、 在嵌套中,为了使程序清晰易于阅读,可按缩进格式写。IF IF IF DO CASE语句序列1 CASE ELSE 语句序列1语句序列2 ENDIF CASE 语句序列NELSE OTHERWISE 语句序列3 语句序列N+1ENDIF ENDCASE ELSE ENDIF 双选套双选 双选套多选6.2.3.循环结构 在一个大程序段中,常常会重复使用某一段相同的程序段。在编制程序时,不必重复编写这个程序段,可以用循环结构来代替它。 如对表的操作和计算问题。 VFP6.0提供了三种循环结构的形式,以适应不同情况的应用.(1)当型循环 DO WHILE ENDDO结构DO WHILE 语句序列 L

3、OOP 语句序列 EXIT ENDDO 语句含义(如何执行) 选择项LOOP和EXIT 的含义循环条件的设置 第一种: 计数形式 A=1 &循环变量初值 DO WHILE A=10 &循环变量终值 A=A+1 &在循环体中修改变量的值 ENDDO 例:求1100的和。SET TALK OFFCLEAR Y=0X=1 DO WHILE X=100Y=Y+X X=X+1 &在循环体中修改变量的值 ?1-100的和为:,Y SET TALK ON CANCEL 思考:1.退出循环结构后X,Y的值分别是多少? 2.循环结构中的两个语句调换位置后是什么结果? 3.X=X+1 改成X=X-1后是什么结果?

4、求1100的奇数和。求1-100之间的非3的倍数的所有奇数之和.STOR 0 TO YDO WHILE X IF INT(X/3)X/3 Y=Y+X X=X+2ENDDO?100以内非3的倍数的奇数和为:,YSET TALK ONCANCEL求例 :求123499100=?求10!12+42+72+102+直到和超过1000为止。求和为多少,项数为多少。引入:计数循环 FORENDFOR/NEXT 结构(一般在已知循环次数的情况下使用)FOR= TO STEP 语句序列ENDFOR / NEXT执行过程:遇到FOR语句时,首先将循环变量的值与终值比较,若超过终值,则结束循环.执行ENDFOR/

5、NEXT后面的语句;若没有超过终值,则执行循环体.每执行一次循环,循环变量的值都要自动加上增量(步长值),从而控制循环执行的次数.说明: 步长值可正可负。即超过的含义是:若步长为正,控制变量递增,直到大于终值停止循环。若步长为负,控制变量递减,直到小于终值停止循环。默认步长为1。 循环次数INT(终值初值)/步长)+1在此循环体中,循环变量每次加步长是自动加的,不需再加语句, 如果人为的修改控制变量的值,会影响循环的执行次数。LOOP语句,EXIT 语句在SCAN,FOR结构的功能与在DO WHILE 结构中相同.求123910的和 SET TALK OFF CLEAR S=0 FOR X=1

6、 TO 10 STEP 1 *STEP 1 缺省,默认为1 S=S+X ENDFORS=,S SET TALK ON宰相的麦子:相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,于是就答应了宰相,结果在兑现他的承诺时,发现全印度的粮食都不够奖赏的。请计算国王总共需要奖赏宰相多少粒米。请分别用For循环和do while循环实现。编程求P=1*2+3*4+5*6+7*8+21*

7、22算法分析:S=0FOR I=1 TO 21 STEP 2S=S+I*(I+1)和是:, S 或者 ?+STR(S) RETURN找出100999之间的所有“水仙花数”。所谓水仙花数是指一个三位数,各位数字的立方和等于该数本身。(如153135333)如何分离出一个三位数中的各位数字。解1:CLEAFOR I=100 TO 999 A=INT(I/100) B=INT(I-100*A)/10) C=I-INT(I/10)*10 IF I=A3+B3+C3IENDFORSET TALK ON RETURN解2: S=STR(I,3) A=VAL(LEFT(S,1) B=VAL(SUBS(S,2

8、,1) C=VAL(RIGHT(S,1)求1-100之间的自然数之和,偶数之和,奇数之和。LOOP 和 EXIT 的含义和使用方法:给程序填空:程序的功能是求1到100之间的奇数和。Y=0FOR X=1 TO 100 IF MOD(X,2)=0 - -Y读程序,写结果: SET TALK OFF N=0 DO WHILE .T. IF N=98 EXIT ENDIF N=N+2 ENDDO ? N=+STR(N,3) RETURN CLEAR STORE 0 TO M,N DO WHILE M6 M=M+1 IF MOD(M,2)=1 LOOP ELSE N=N+M ENDIF ENDDO,N

9、 RETURN 读懂程序:一个密码校对程序:密码为字符串12345。用户从键盘上输入密码,如果输入的密码正确,则显示“身份正确,欢迎使用本系统”;如果输入的密码不正确,则显示“请重新输入密码”。只给用户3次机会,若用户连续3次输入的密码均不正确,则显示“你是非法用户,本系统拒绝你进入!”I=0ACCEPT 请输入密码: TO MDO WHILE INM,是素数M, 不是素数 输入一个字符串,按其倒序输出。 ACCEPT 请输入一个字符串 TO A L=LEN(A) FOR X=L TO 1 STEP -1SUBSTR(A,X,1)第二种:键盘输入数据 ANS=Y DO WHILE UPPER(

10、ANS)=Y WAIT 是否继续(Y/N)? TO ANS &循环体中输入Y或N,决定是 ENDDO 否再次执行循环体例:完善程序:查找表中指定姓名的学生记录.此程序可以实现多次查找,只要输入Y就可以继续查找,输入N停止查找.第三种:直接用.T.作为条件,用EXIT 退出循环。 DO WHILE .T. & 条件永远成立 EXIT &只可能在循环体中退出循环 ENDDO 第四种 文件头或文件尾的测试USE &这儿不要出现让指针移动的语句,如果需要在循环之前要把指针移回第一条记录DO WHILE .NOT. EOF() &指针没到文件尾,即为真,执行循环体,否则退出SKIP &每执行一次循环体,

11、指针下移一条记录。 列出XSDA表中1979年以后出生的学生人数,并统计出学生人数。USE XSDAN=0DO WHILE NOT EOF() IF 出生日期=1979/01/01 DISPLAY N=N+1 SKIPUSECANCEL 扫描循环 SCAN ENDSCAN 结构 SCAN DO WHILE NOT EOF() ENDSCAN SKIP对打开的表指定范围内符合条件的记录逐条进行语句序列中规定的操作.该循环中语句序列每执行一次,表中记录指针下移一条记录. 直到表文件记录结束为止.缺省范围和条件时上面左右两种结构是等同的。SCAN 后如果加条件表示只对符合条件的记录循环。试着用SCA

12、NENDSCAN改写上面的例子 (SCAN 后可以加指定条件) 对于给定的表XSCJ,增加一个字段,等级 C(6),编程实现填充表中的等级字段,如果其计算机成绩60分,等级字段填充不合格,如果在60到70之间(不包括70分),填充合格,如果在70到85之间(不包括85分),填充良好,如果在85分到100分之间(包括100分),填充优秀.2005上第二套 求阶乘求两个整数M和N的最大公约数和最小公倍数。最大公约数:将两个数中大的数给A,小的数给B(用除法取余的方法来求)(1) 求A/B的余数N.(2) 若N=0,则B为最大公约数若N0,则执行(3)(3) 将B放入A, N放入B,然后再求A/B的

13、余数,回到(2)最小公倍数:两个数的乘积除以最大公约数。INPUT 请输入M值 TO A请输入N值 TO BC=A*BN=MOD(A,B)DO WHILE NA=BB=N最大公约数是:,+STR(B)最小公倍数是:,+STR(C/B)把此题和表联系起来。(2005下第四套)考生文件夹下已有数据表F01.DBF和空数据表 F02.DBF,表结构如下:F01(数据1 (N,4),数据2 (N,4)F02(最大公约数 (N,4)请在考生文件夹下编写程序PROG1.PRG,其功能是:1)先根据数据表F02.DBF复制一个同结构的空数据表F03.DBF;2)求F01中“数据1”和“数据2”两字段的最大公

14、约数,并将结果保存到F03的“最大公约数”字段中。 (注:使用DO WHILE循环编程) (同时操作两张表) USE F02 COPY TO F03 USE F01 &一号工作区打开F01,F02自动关闭 USE F03 IN 2 &二号工作区打开F03 SCAN &在F01所在的1号工作区 A=数据1 B=数据2 N=MOD(A,B) DO WHILE NINT(SQRT(数据) REPL 数据 WITH A.数据 ENDSAN SORT TO W3 ON 数据/D USE W3从键盘输入10个数,然后找出其中的最大值和最小值。算法:程序首先读入一个数,一个数的最大值和最小值就是它本身,放入

15、MA,MI两个变量中,然后进入循环语句,依次读入其它9个数。每读入一个数,就让该数分别与MA,MI相比较。如果该数大于MA,就放入MA,如果该数小于MI,就放入MI。即MA和MI 总是保存着到目前为止的最大值和最小值。 INPUT 请输入一个数: TO A STORE A TO MA,MI FOR I=2 TO 10 IF AMA MA=A IF AMI MI=A ENDIF 最大值:,MA最小值:,MI考生文件夹下已有数据表F01.DBF和空数据表F02.DBF,表结构如下: F01(数据 (N 3) F02(最大数(N 3),最小数(N 3)1.先根据数据表F02.DBF复制数据表F03.

16、DBF,在F03中添加一条空白记录;2.求出表F01中所有数据的最大值和最小值;3.将结果分别存入F03中的“最大数”和“最小数”字段中。(注:使用DO WHILE 循环编程)USE F02 USE F03 APPE BLAN USE F01 MIN=数据 MAX=数据 SCAN IF数据MAX MAX=数据 ENDSCAN REPL 最大数 WITH MAX,最小数 WITH MIN USEXSCJ表中数学,英语,计算机的平均值大于等于80分的计算总分,否则不计算总分 错误的做法: USE XSCJ A=(数学+英语+计算机)/3=80 REPLACE 总分 WITH 数学+英语+计算机 E

17、NDSAN正确的做法:USE XSCJ找出XSCJ表中数学成绩最高的那个学生的学号和数学成绩。 MA=数学 XH=学号 SCAN IF 数学ENDSCANMA,XH(4)循环嵌套在循环体中又包含循环,通常称为多重循环或循环嵌套. 循环中也可以嵌套选择结构。注意是嵌套,不能交叉。 问题一:打印图形打印如下图形 问题2 穷举法:穷举法就是通过把需要解决问题的所有可能情况逐一试验来找出符合条件的解的方法。这种方法特点是盲目性较大,解决时间可能时间较长。例. 有一道趣味数学题:有30个人在一家小饭店用餐,其中有男人、女人和小孩。每个男人花了3块,每个女人花了2块,每个小孩花了1块,一共花去50块。问男

18、人、女人和小孩各有几人? 分析:设有男人、女人、小孩各X,Y,Z个。 则X+Y+Z=30 3X+2Y+Z=50 它是不定方程。应采用“穷举法”去试根。FOR X=1 TO 16FOR Y=1 TO 24Z=30-X-YIF 3*X+2*Y+Z=50X,Y,Z有表D1把D1复制成DD1。有若干鸡和兔放在同一个笼子里,H表示共有多少个头,F表示共有多少只脚,在DD1中填充每条记录里鸡和兔的个数。分析:对于每一条记录设有鸡和兔各X,Y个。 则X+Y=H 2X+4Y =FCLOSE TABLES ALLUSE D1COPY TO DD1USE DD1SCAN FOR X=1 TO H-1 &X表示鸡的个数,Y表示兔的个数 Y=H-X IF X*2+Y*4=F REPLACE 鸡 WITH X REPLACE 兔 WITH Y(5)数组问题1. 给一维数组赋值 给一维数组C(10) 赋值(1) 赋有规律的数 DIMENSION C(10)C(1)=1C(2)=3C(3)=5C(9)=17C(10)=19(2) 由用户自己给值(3) 从表中取值(两种方法)表M1中只有一个字段X N(5)方法1:USE M1M=RECCOUNT() &如果改成 COUNT TO M 下面循环之前还需要加一句:GO 1DIMENSION C(M)N=1 C(N)=X方法2:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1