第7章结构化程序设计_第1页
第7章结构化程序设计_第2页
第7章结构化程序设计_第3页
第7章结构化程序设计_第4页
第7章结构化程序设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 结构化程序设计一、 程序与程序文件1、 何谓程序?程序设计就是为了使计算机能够完成某一具体任务而编写一序列指令的过程。VFP程序就是一序列VFP命令的有序集合,按一定的结构顺序存放在被称为程序文件或命令文件的文本文件中。例:编写程序,从键盘输入圆的半径,求其面积。2、 程序文件的建立、修改和执行(1) 建立新程序1) 文件新建2) MODIFY COMMAND 程序文件名(2) 修改旧程序1) 文件打开(选取程序文件)2) MODIFY COMMAND 程序文件名(3) 执行程序1) 程序运行2) DO 程序文件名 (可以不带扩展名prg)3、 简单的输入输出命令(1) 字符串输入 A

2、CCEPT 字符表达式 TO 内存变量例:查询student表中某院系学生的信息(2) 表达式输入 INPUT 字符表达式 TO 内存变量例:求指定半径的圆的面积u 两者的区别: INPUT可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,如果输入的是字符型数据,则需要加定界符;ACCEPT该命令只接受字符型数据,输入的字符串不需要加定界符(3)单字符输入语句:WAIT 提示信息 TO 内存变量 WINDOWS AT 行,列 TIMEOUT 数(4)命令注释 以NOTE或*开头的代码为注释行,命令后也可以加注视行,以符号&开头。二 、分支结构程序设计顺序结构、分支结构和循环结构1、

3、 顺序结构自始至终按照语句序列的排列顺序,依次逐条执行的简单程序。例:2、 分支结构(1) 简单分支程序 IF 条件表达式 命令组ENDIF例:在Visual FoxPro中,运行下面程序后,屏幕显示的结果为_。X=4Y=5-X*2IF XY T=X X=Y Y=TENDIF ?X,YRETURN A)4 5 B)-3 4 C)3 4 D)4 3例: 有如下程序: INPUT TO a IF a=10 s=0 ENDIF s=1 ?s假定从键盘输入的a的值一定是数值型,那么上面条件选择程序的执行结果是( )。A) 0 B) 1 C) 由 a 的值决定 D) 程序出错(2) 分支条件语句 IF

4、条件表达式命令组1 ELSE 命令组2 ENDIF 例:计算变量VAR的绝对值并存入变量ABSVAR。 例:从键盘输入一个数,判断是奇数还是偶数。 例: 判断某一年是否是闰年。闰年的条件是:年份能被400整除,或者年份能被4整除但不能同时被100整除。(3)分支语句的嵌套 例 求 X (X=2) S= X2 (-2=X2) |x| (x=2 ELSE IF S= X*X ELSE ENDIF【例 7.10】教材P165(4)多分支语句DO CASE CASE CASE CASE OTHERWISE ENDCASE从DO CASE入口顺序判断各个CASE子句的条件,执行最先满足条件的CASE语句

5、序列。执行完成后,无论后面的条件是否为真,都直接跳出ENDCASE语句序列,直接执行ENDCASE后面的语句。如果任何条件都不满足,则执行OTHERWISE下的语句序列,然后执行ENDCASE后面的语句,如果没有OTHERWISE子句,则直接跳出本结构。例:上题利用DO CASE 来实现。例:以下程序段执行的结果是 X=85DO CASE CASE X60 ?”及格” CASE X80 ?”良好” OTHERWISE ?”不及格”ENDCASE三、 循环结构 概念:循环结构也称重复结构,是指程序在执行的过程中,其中的某段代码被重复执行若干次。被重复执行的代码段,通常称为循环体。Visual F

6、oxPro支持循环结构的语句包括:DO WHILEENDDO、FORENDFOR和SCANENDSCAN(一)DO WHILEENDDO条件真循环体ENDDO后面的语句假语句格式:DO WHILE LOOP EXIT ENDDO说明:程序的走向(?)先判断DO WHILE处的循环条件是否成立,如果条件为真,则执行循环体,当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,若为真再次执行循环体.若条件为假,则结束该循环语句,执行ENDDO后面的语句.循环变量(体外赋初始值,体内修改)例:编写程序:输出1+2+3+100的结果提示:引进内存变量S和i。S用来保存累加的结果,初值

7、为0;i作为控制循环条件是否成立的变量,初值为1;重复执行命令S=S+i和i=i+1拓展:求s=1*2*3*4100求S=1+3+5+7+101例:编写程序TEST3:逐条显示SC表中成绩高于75分的所有记录预备知识: EOF()函数,LOCATE 的使用。CLEARUSE SCDO WHILE NOT EOF() if 成绩75 DISPLAY WAIT 按任意键继续! endif SKIP ENDDO特例:循环控制子句:LOOP,EXIT在循环体中遇到LOOP时终止本次循环,直接转回到DO WHILE处重新判断循环条件。在循环体中遇到EXIT时直接退出循环而去执行ENDDO后面的语句。例:

8、在STUDENT表中可以反复查询不同院系的学生的信息。use studentdo while .t.accept 请输入待查询的院系号: to xlocate for 院系号=xif found()select * from student where 院系号=xelse ?对不起,找不到你要查询的院系号!endifwait 还查询其他的院系吗? to yif upper(y)=Y loopelse exitendifenddoclose all例:在 DO WHILEENDDO循环结构中,LOOP命令的作用是()A)退出过程,返回程序开始处B)转移到 DO WHILE语句行,开始下一个判断和

9、循环C)终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行D)终止程序执行例:在DO WHILEENDDO循环结构中,EXIT命令的作用是()A) 退出过程,返回程序开始处 B) 转移到DO WHILE语句行,开始下一个判断和循环 C) 终止循环,将控制转移到本循环结构ENDDO后面的第一条语句继续执行 D)终止程序执行(二)FORENDDO步长循环 格式:FOR = TO STEP /循环体 ENDFOR 注解: 1、 称为循环变量,、和都是数值型表达式;2、 如果没有STEP子句,则步长为1; 3、 执行该语句时,先将初值赋值给循环变量,通过比较循环变量值与终值来决定是否执行。如果循环变量的值没有超出范围,则执行。执行到ENDFOR,循环变量值按自动增加或减少(当步长值为负数时),然后返回到FOR重新与终值比较。如果循环变量的值大于终值,执行ENDFOR后面的语句。例:求10!思考:循环变量?初值,终值,步长值?循环条件?程序结束时,I的值等于多少? 例:有如下程序:FOR I=1 TO 10?II=I+1ENDFOR该程序的结果?执行这个程序时,循环体共执行了多少次 ? (三)SCANENDSCANSCAN FOR ENDSCANSCAN循环针对当前表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论