XXXX年第6章程序设计基础.ppt_第1页
XXXX年第6章程序设计基础.ppt_第2页
XXXX年第6章程序设计基础.ppt_第3页
XXXX年第6章程序设计基础.ppt_第4页
XXXX年第6章程序设计基础.ppt_第5页
已阅读5页,还剩40页未读, 继续免费阅读

下载本文档

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

文档简介

1、程序设计基础,第六章,本章要点,6.1 程序 6.2 选择结构 6.3 循环结构,程序设计的概念,VFP有两种工作方式:交互方式和程序方式。 交互方式是在命令窗口中直接输入命令或通过选择菜单来执行VFP命令。但在实际应用中,许多任务是要执行一组命令来完成的。如果采用在命令窗口中逐条输入命令的方式进行,不仅效率不高,而且容易出错。特别是当该任务要反复执行,或者当处理的问题较复杂时,这种交互方式几乎是不可行的,应当采用程序方式。,6.1 程序,程序是能够完成指定任务的命令序列。将这组命令序列以文件形式保存,该文件称为程序文件或命令文件。 在运行程序时,系统将按照一定的次序自动执行其中的各条命令,从

2、而实现通过程序控制自动执行一系列操作,以完成指定任务。,程序文件的基本操作,一、程序文件的建立和编辑 命令格式:modi comm 功能:建立或修改指定的程序文件。 说明: (1)系统默认的程序文件扩展名为.prg (2)若用户指定了,执行该命令时,系统首先检索磁盘文件,如果此文件存在,则打开该文件,若指定文件不存在,则建立一个新的空程序文件,其文件名即为指定的。,二、保存命令文件(ctrl+w) 三、运行命令文件(do 文件名),例如6.1 统计第一学期有考试成绩的学生人数与平均成绩,设置步骤: (1)创建文件:modi comm MyProg1 (2)编写代码 (3)保存文件 (4)结束编

3、程 (5)调试、运行程序,直到程序完全正确,8,常用命令,1. 程序注释语句: 格式一:NOTE 格式二:* 格式三:& ,9,2. RETURN 命令格式:return 功能:终止本程序的执行,把程序控制权返回给本程序的调用者。 如果一个程序中没有包含return命令,当执行完本程序最后一条命令后,系统同样也把程序控制权返回给本程序的调用者。,3、输入输出命令(交互式命令) 程序的正确运行,必然需要操作人员与内存变量之间进行信息交流。VFP提供了许多进行这类数据交流的命令。,ACCEPT语句,语句格式:ACCEPT to 执行该命令时,暂停程序的运行,显示命令中的字符表达式作为提示信息,等待

4、用户从键盘输入字符串。系统将接受的字符串存入指定的内存变量,程序继续运行。 功能说明: 系统将用户的输入一律作为字符串,输入时不必加定界符,以回车结束输入; 可选的提示信息可以是字符型常量、变量或表达式。如果是字符串常量,则必须使用字符串定界符。 例如:查询指定学生的信息(文件名例6-1),INPUT语句,语句格式:INPUT to 功能注释: 用户输入的数据可以是数值型、逻辑型、日期型、日期时间型或字符型,以回车结束输入; 输入字符串时必须加定界符;输入逻辑型常量时要用圆点定界,如(.T., .F.);输入日期型常量时要用大括号,如1962/06/12; INPUT命令一般是用来输入数值型数

5、据。 例如:查询指定年份出生的学生的信息(文件名例6-2),13,常用命令,4. 设置是否输出非显示命令的执行结果 命令格式:SETTALKONOFF 功能:VFP在执行一些非显示命令(如SELE命令)时,将把执行结果等信息送到VFP主窗口、状态栏或用户自定义窗口里。可使用开关SET TALK ON/OFF 显示或关闭这些提示信息。 如在例6.1的程序的第一行加上命令 SET TALK ON,对比其运行结果。,结构化程序的基本结构,一、顺序结构 分析书例6.3(myprog2) 二、选择结构 三、循环结构,6.2 选择结构 1、条件语句(IFENDIF) 2、IFF函数 3、IF语句的嵌套 4

6、、分支语句(DO CASEENDCASE),1、条件语句 语句格式: IF ELSE ENDIF 是逻辑表达式。当程序执行到IF语句时,首先判断是否成立。如果为“真”时,则执行语句,否则(即为“假”)执行。IF语句执行完毕后,再执行ENDIF后面的语句。,选择结构中可以没有ELSE部分。这样的话,当程序执行到IF语句时,首先判断是否成立。如果为“真”时,则执行语句,否则直接转向ENDIF后面的语句去执行。 IF和ENDIF必须成对出现,IF是该结构的入口,ENDIF是该结构的出口。 IF语句只能在程序中使用,不能在命令窗口中使用 为了使程序的结构层次清晰、减少编写错误,增加程序的可读性,一般按

7、缩进(锯齿形)格式书写。即将该结构的入口和出口语句写在同一纵坐标位置上,而将嵌套其中的其他结构语句向右缩若干格。,IF语句举例1,CLEAR input 请输入一个数: TO x IF MOD(x,2)=0 THEN y= 是偶数。 ELSE y= 是奇数。 ENDIF ? STR(x)+y RETURN,判断从键盘输入的任何一个整数的奇偶。若不是整数,则取整判断。,2、IFF函数 格式:IIF(,) 说明:是逻辑表达式。当为“真”时,该表达式的返回值为,否则,该表达式的返回值为, 。 如:z=IIF(x=y, x, y), 将返回x与y中的较大者作为函数的返回值,并赋给z。,IIF函数的功能

8、和IF-ELSE-ENDIF语句非常相似,可以用IF语句取代IIF函数,如IIF(x=y, x, y)可用如下IF语句取代。 IF x=y z=x ELSE z=y ENDIF 有些IF语句也可以用IIF函数代替,但不是所有的。,如,判断数的奇偶性程序中的IF语句 IF MOD(x,2)=0 THEN y= 是偶数。 ELSE y= 是奇数。 ENDIF 相当于 IIF(mod(x,2)=0,”是偶数”,“是奇数”),3、IF语句的嵌套 VFP对选择结构中的命令或语句没有特别的规定或限制,只要是合法的VFP命令或语句就行。IF语句也是合法的VFP语句,因此,在IF语句内部也可以包含IF语句,这

9、就是IF语句的嵌套。,IF的嵌套语句举例,CLEAR input 请输入一个数: TO x IF INT(X)=X IF MOD(x,2)=0 THEN y= 是偶数。 ELSE y= 是奇数。 ENDIF ? STR(x)+y ELSE ? 输入的数不是整数。 ENDIF RETURN,判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。,4、分支语句 语句格式: DO CASE CASE CASE CASE OTHERWISE ENDCASE,功能: 根据n个条件表达式的逻辑值,选择执行n+1个语句序列中的一个。,说明: 1当系统执行DO CASEENDCASE语句

10、时,依次判断CASE后面的条件是否成立,当发现某个CASE条件成立时,就执行该CASE与下一个CASE之间的语句序列,然后跳出DO CASE结构,转去执行ENDCASE后面的语句。如果所有CASE条件都不成立,则执行OTHERWISE与ENDCASE之间语句序列,然后执行ENDCASE后面的语句。 2DO CASE结构中可以没有OTHERWISE部分。这样的话,当所有CASE条件都不成立时,就直接跳出DO CASE结构,转去执行ENDCASE后面的语句.,3不管有几个CASE条件成立,只有最先成立的那个CASE条件后的语句序列被执行。 4DO CASE和ENDCASE必须成对出现,DO CAS

11、E是该结构的入口,ENDCASE是该结构的出口。DO CASE与第一个CASE项之间不能有任何语句。 5与IF语句一样,DO CASE语句只能在程序中使用,不能在命令窗口中使用。 6DO CASE结构一般按缩进格式书写。,CASE语句举例,CLEAR input 请输入一个数: TO x DO CASE CASE INT(X)!=X ? 输入的数不是整数 CASE MOD(x,2)=0 ? 该数是偶数。 CASE MOD(x,2)=0 y= 该数是奇数。 ENDCASE RETURN,判断从键盘输入的任何一个数的奇偶性。若不是整数,则显示“输入的数不是整数”。,6.3 循环结构,循环是程序设计

12、中的一种重要的方法。循环就是程序在执行的过程中,其中的某段代码被重复执行若干次。被重复执行的这段代码称为循环体。 VFP中支持循环结构的语句包括: (1)DO WHILE-ENDDO (2)FOR-ENDFOR (3)SCAN-ENDSCAN,DO WHILE,语句格式: DO WHIL LOOP EXIT ENDDO,当系统执行进入DO WHILE结构时,首先判断循环条件是否成立。如果循环条件成立,则执行DO WHILE与ENDDO之间语句序列(即循环体)。当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否成立,以确定是否再次执行循环体,如此循环,直到循环条件不成立,结束该循

13、环语句,执行ENDDO后面的语句。,循环体中可以使用两条特殊的命令:LOOP命令和EXIT命令。 如果循环体包含有LOOP命令,那么当执行到LOOP命令时,就结束本次循环(如同执行到ENDDO一样),即不再执行LOOP到ENDDO之间的语句,返回DO WHILE处再判断循环条件是否成立。 如果循环体包含有EXIT命令,那么当执行到EXIT命令时,就立即结束该循环语句,执行ENDDO后面的语句。,说明: 1ENDDO必须与DO WHILE成对出现,缺一不可 2LOOP命令和EXIT命令只能用在循环结构中,通常出现在循环体内嵌套的选择语句中。 3避免陷入“死循环”。循环体中必须包含能对产生影响的命

14、令,否则,若的值永远为真(.T.),循环将不会结束。这种现象称为“死循环”。,4为了增加程序的可读性,一般按缩进格式书写。 5与IF语句一样,DO WHILE语句只能在程序中使用,不能在命令窗口中使用。,DO WHILE语句举例1,例 计算1+2+3+100的结果 clear s=0 i=1 do while i=100 s=s+i i=i+1 enddo ?”s=”,s return,循环过程的分析:,第1次: (条件i=1满足循环) S=1 i=2,第2次: (条件i=2满足循环条件) S=3 i=3,第100次: (条件i=100满足循环条件) S=5050 i=101,第101次: (

15、条件i=101,不满足循环条件,退出),计算1+3+99,clear s=0 i=1 do while i=100 s=s+i i=i+2 enddo,二、 FOR-ENDFOR循环语句 如果事先可以决定循环的次数,使用FOR- ENDFOR语句更加清晰、方便。 语句格式: FOR = TO STEP LOOP EXIT ENDFOR/NEXT,当系统执行进入FOR循环结构时,首先将初值赋给循环变量,再将循环变量的值与终值比较,判断循环条件是否成立。如果循环变量的值在初值与终值范围内,表示循环条件成立,则执行FOR与ENDFOR之间的语句序列(即循环体),然后循环变量的值增加一个增量,并再次判

16、断循环条件是否成立,以确定是否再次执行循环体。若循环变量的值已超出初值与终值范围,表示循环条件不成立,则结束该循环结构,执行ENDFOR后面的语句。,说明: 1ENDFOR和NEXT是等价的。 2FOR、ENDFOR或NEXT成对出现,缺一不可。 3、都可以是数值表达式,但它们仅在控制进入循环结构时被计算一次,而在整个循环语句的执行过程中不再改变。 4是描述循环快慢的量,可以是正值,即递增,也可以是负值,即递减。当增量为1时,STEP可以省掉。若增量为正值,则当循环变量的值小于等于终值时,循环条件成立;若增量为负值,则当循环变量的值大于等于终值时,循环条件成立 5可以在循环体内改变循环变量的值

17、,但循环次数也随之改变。,FOR语句举例,例 计算1+2+3+100的结果 clear s=0 for i=1 to 100 s=s+i endfor ?”s=”,s return,循环过程的分析:,第1次: (i=1满足i100循环条件) S=1 i=2,第2次: (i=2满足i100循环条件) S=3 i=3,第100次: (i=100满足循环条件) S=5050 i=101,第101次: i=101,不满足循环条件,退出循环,执行?”s=”,s语句,三、循环语句SCAN-ENDSCAN 如果需要对数据表指定的若干记录依次执行相同的操作,使用SCAN-ENDSCAN语句更加清晰、方便。 语

18、句格式: SCAN FORWHILE (语句行序列) LOOP (语句行序列) EXIT (语句行序列) ENDSCAN,当系统执行进入SCAN循环结构时,记录指针自动、依次地在当前数据表的指定范围内满足条件的记录上移动,对每一条记录执行语句序列(即循环体)。 说明: 1的默认值为ALL。 2SCAN、ENDSCAN成对出现,缺一不可。,SCAN语句举例1,例 逐条显示教师表的每一条记录 clear use 教师 scan display endscan use return,SCAN语句举例2,例 逐条显示教师表中女教师的每一条记录 clear use 教师 scan for 性别=女 display endscan use return,在SCAN语句中加LOOP子句改写上述例子,clear use 教师 scan if 性别=女

温馨提示

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

评论

0/150

提交评论