程序设计基础_第1页
程序设计基础_第2页
程序设计基础_第3页
程序设计基础_第4页
程序设计基础_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

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

2、现通过程序控制自动执行一系列操作,以完成指定任务。程序文件的根本操作程序文件的根本操作一、程序文件的建立和编辑一、程序文件的建立和编辑命令格式:命令格式:modi comm modi comm 功能:建立或修改指定的程序文件。功能:建立或修改指定的程序文件。说明:说明:1 1系统默认的程序文件扩展名为系统默认的程序文件扩展名为.prg.prg2 2假设用户指定了假设用户指定了 ,执行该命令时,执行该命令时,系统首先检索磁盘文件,如果此文件存在,那么翻系统首先检索磁盘文件,如果此文件存在,那么翻开该文件,假设指定文件不存在,那么建立一个新开该文件,假设指定文件不存在,那么建立一个新的空程序文件,

3、其文件名即为指定的的空程序文件,其文件名即为指定的 。二、保存命令文件二、保存命令文件(ctrl+w)(ctrl+w)三、运行命令文件三、运行命令文件(do (do 文件名文件名) )例如例如6.1 统计第一学期有考试成绩的学生人数与平均成绩统计第一学期有考试成绩的学生人数与平均成绩设置步骤设置步骤: :1 1创立文件:创立文件:modi comm MyProg1modi comm MyProg12 2编写代码编写代码3 3保存文件保存文件4 4结束编程结束编程5 5调试、运行程序,直到程序完全正确调试、运行程序,直到程序完全正确8常用命令常用命令1. 程序注释语句: 格式一:格式一:NOTE

4、 格式二:格式二:* 格式三:格式三:& 92. RETURN命令格式:命令格式:return 功能:终止本程序的执行,把程序控制权返回给本功能:终止本程序的执行,把程序控制权返回给本程序的调用者。程序的调用者。如果一个程序中没有包含如果一个程序中没有包含return命令,当执行完本程命令,当执行完本程序最后一条命令后,系统同样也把程序控制权返回序最后一条命令后,系统同样也把程序控制权返回给本程序的调用者。给本程序的调用者。3 3、输入输出命令、输入输出命令( (交互式命令交互式命令) ) 程序的正确运行,必然需要操作人员与内程序的正确运行,必然需要操作人员与内存变量之间进行信息交流。

5、存变量之间进行信息交流。VFP提供了许多进提供了许多进行这类数据交流的命令。行这类数据交流的命令。ACCEPT语句语句语句格式:语句格式:ACCEPT ACCEPT to to 执行该命令时,暂停程序的运行,显示命令中执行该命令时,暂停程序的运行,显示命令中的字符表达式作为提示信息,等待用户从键盘输入字的字符表达式作为提示信息,等待用户从键盘输入字符串。系统将接受的字符串存入指定的内存变量,程符串。系统将接受的字符串存入指定的内存变量,程序继续运行。序继续运行。功能说明:功能说明:系统将用户的输入一律作为字符串,输入时不必加系统将用户的输入一律作为字符串,输入时不必加定界符,以回车结束输入;定

6、界符,以回车结束输入;可选的提示信息可以是字符型常量、变量或表达式。可选的提示信息可以是字符型常量、变量或表达式。如果是字符串常量,那么必须使用字符串定界符。如果是字符串常量,那么必须使用字符串定界符。例如例如: :查询指定学生的信息文件名例查询指定学生的信息文件名例6-16-1INPUT语句语句语句格式:语句格式:INPUT INPUT to to 功能注释:功能注释:用户输入的数据可以是数值型、逻辑型、日期型、用户输入的数据可以是数值型、逻辑型、日期型、日期时间型或字符型,以回车结束输入;日期时间型或字符型,以回车结束输入;输入字符串时必须加定界符;输入逻辑型常量时输入字符串时必须加定界符

7、;输入逻辑型常量时要用圆点定界,如要用圆点定界,如.T., .F.T., .F.;输入日期型常量时要;输入日期型常量时要用大括号,如用大括号,如1962/06/121962/06/12;INPUTINPUT命令一般是用来输入数值型数据。命令一般是用来输入数值型数据。例如例如: :查询指定年份出生的学生的信息查询指定年份出生的学生的信息( (文件名例文件名例6-2)6-2)13常用命令常用命令4. 4. 设置是否输出非显示命令的执行结果设置是否输出非显示命令的执行结果 命令格式:命令格式:SETSETTALKTALKONONOFFOFF 功能:功能:VFPVFP在执行一些非显示命令如在执行一些非

8、显示命令如SELESELE命令命令时,将把执行结果等信息送到时,将把执行结果等信息送到VFPVFP主窗口、状态栏或主窗口、状态栏或用户自定义窗口里。可使用开关用户自定义窗口里。可使用开关SET TALK ON/OFF SET TALK ON/OFF 显示或关闭这些提示信息。显示或关闭这些提示信息。 如在例如在例6.16.1的程序的第一行加上命令的程序的第一行加上命令 SET TALK SET TALK ONON,比照其运行结果。,比照其运行结果。结构化程序的根本结构结构化程序的根本结构一、顺序结构一、顺序结构 分析书例分析书例6.3(myprog2)6.3(myprog2)二、选择结构二、选择

9、结构三、循环结构三、循环结构 6.2 6.2 选择结构选择结构1 1、条件语句、条件语句IFENDIFIFENDIF2 2、IFFIFF函数函数3 3、IFIF语句的嵌套语句的嵌套4 4、分支语句、分支语句(DO CASEENDCASE)(DO CASEENDCASE)1 1、条件语句、条件语句语句格式:语句格式: IF IF 1 ELSE ELSE 2 ENDIF ENDIF 是逻辑表达式。当程序执行到是逻辑表达式。当程序执行到IFIF语句时,语句时,首先判断首先判断 是否成立。如果是否成立。如果 为为“真时,真时,那么执行那么执行 1语句,否那么即语句,否那么即 为为“假执行假执行 2。I

10、FIF语句执行完毕后,再语句执行完毕后,再执行执行ENDIFENDIF后面的语句。后面的语句。选择结构中可以没有选择结构中可以没有ELSE局部。这样的话,当程序局部。这样的话,当程序执行到执行到IF语句时,首先判断语句时,首先判断是否成立。如果是否成立。如果为为“真时,那么执行真时,那么执行语句,否那么语句,否那么直接转向直接转向ENDIF后面的语句去执行。后面的语句去执行。IF和和ENDIF必须成对出现,必须成对出现,IF是该结构的入口,是该结构的入口,ENDIF是该结构的出口。是该结构的出口。IF语句只能在程序中使用,不能在命令窗口中使用语句只能在程序中使用,不能在命令窗口中使用为了使程序

11、的结构层次清晰、减少编写错误,增加为了使程序的结构层次清晰、减少编写错误,增加程序的可读性,一般按缩进程序的可读性,一般按缩进(锯齿形锯齿形)格式书写。即将该格式书写。即将该结构的入口和出口语句写在同一纵坐标位置上,而将结构的入口和出口语句写在同一纵坐标位置上,而将嵌套其中的其他结构语句向右缩假设干格。嵌套其中的其他结构语句向右缩假设干格。IF语句举例语句举例1CLEARinput 请输入一个数:请输入一个数: TO xIF MOD(x,2)=0 THEN y= 是偶数。是偶数。 ELSE y= 是奇数。是奇数。 ENDIF ? STR(x)+yRETURN判断从键盘输入的任何一个整数的奇偶。

12、假设不判断从键盘输入的任何一个整数的奇偶。假设不是整数,那么取整判断。是整数,那么取整判断。2 2、IFFIFF函数函数格式:格式:IIF(IIF(,2说明说明: 是逻辑表达式。当是逻辑表达式。当 为为“真时,真时,该表达式的返回值为该表达式的返回值为 1,否那么,否那么, ,该表达式该表达式的返回值为的返回值为, 2 。 如:如:z=IIF(x=y, x, y)z=IIF(x=y, x, y), 将返回将返回x x与与y y中的较中的较大者作为函数的返回值,并赋给大者作为函数的返回值,并赋给z z。 IIF函数的功能和函数的功能和IF-ELSE-ENDIF语句非常相似,可语句非常相似,可以用

13、以用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 3、IFIF语句的嵌套语句的嵌套 VFP对选择结构中的命令或语句没有特别的规对选择结构中的命令或

14、语句没有特别的规定或限制,只要是合法的定或限制,只要是合法的VFP命令或语句就行。命令或语句就行。IF语句也是合法的语句也是合法的VFP语句,因此,在语句,因此,在IF语句内部也语句内部也可以包含可以包含IF语句,这就是语句,这就是IF语句的嵌套。语句的嵌套。 IF的嵌套语句举例的嵌套语句举例CLEARinput 请输入一个数:请输入一个数: TO xIF INT(X)=X IF MOD(x,2)=0 THEN y= 是偶数。是偶数。 ELSE y= 是奇数。是奇数。 ENDIF ? STR(x)+yELSE ? 输入的数不是整数。输入的数不是整数。 ENDIFRETURN判断从键盘输入的任何

15、一个数的奇偶判断从键盘输入的任何一个数的奇偶性。假设不是整数,那么显示性。假设不是整数,那么显示“输入输入的数不是整数。的数不是整数。4 4、分支语句、分支语句语句格式:语句格式: DO CASE DO CASE CASE CASE 1 1 CASE CASE 2 2 CASE CASE N N OTHERWISE OTHERWISE N+1 ENDCASE ENDCASE功能:功能:根据根据n个条件表个条件表达式的逻辑值,达式的逻辑值,选择执行选择执行n+1个个语句序列中的一语句序列中的一个。个。说明:说明:1当系统执行当系统执行DO CASEENDCASE语句时,依次判语句时,依次判断断C

16、ASE后面的条件是否成立,当发现某个后面的条件是否成立,当发现某个CASE条件条件成立时,就执行该成立时,就执行该CASE与下一个与下一个CASE之间的语句序之间的语句序列,然后跳出列,然后跳出DO CASE结构,转去执行结构,转去执行ENDCASE后后面的语句。如果所有面的语句。如果所有CASE条件都不成立条件都不成立,那么执行那么执行OTHERWISE与与ENDCASE之间语句序列,然后执行之间语句序列,然后执行ENDCASE后面的语句。后面的语句。2DO CASE结构中可以没有结构中可以没有OTHERWISE局部。这样局部。这样的话,当所有的话,当所有CASE条件都不成立时,就直接跳出条

17、件都不成立时,就直接跳出DO CASE结构,转去执行结构,转去执行ENDCASE后面的语句后面的语句.3不管有几个不管有几个CASE条件成立,只有最先成立的那条件成立,只有最先成立的那个个CASE条件后的语句序列被执行。条件后的语句序列被执行。4DO CASE和和ENDCASE必须成对出现,必须成对出现,DO CASE是该结构的入口,是该结构的入口,ENDCASE是该结构的出口。是该结构的出口。DO CASE与第一个与第一个CASE项之间不能有任何语句。项之间不能有任何语句。5与与IF语句一样,语句一样,DO CASE语句只能在程序中使用,语句只能在程序中使用,不能在命令窗口中使用。不能在命令

18、窗口中使用。6DO CASE结构一般按缩进格式书写。结构一般按缩进格式书写。CASE语句举例语句举例CLEARinput 请输入一个数:请输入一个数: TO xDO CASE CASE INT(X)!=X ? 输入的数不是整数输入的数不是整数 CASE MOD(x,2)=0 ? 该数是偶数。该数是偶数。 CASE MOD(x,2)=0 y= 该数是奇数。该数是奇数。 ENDCASERETURN判断从键盘输入的任何一个数的奇偶判断从键盘输入的任何一个数的奇偶性。假设不是整数,那么显示性。假设不是整数,那么显示“输入输入的数不是整数。的数不是整数。6.3 循环结构循环结构 循环是程序设计中的一种重

19、要的方法。循环就是循环是程序设计中的一种重要的方法。循环就是程序在执行的过程中,其中的某段代码被重复执行程序在执行的过程中,其中的某段代码被重复执行假设干次。被重复执行的这段代码称为循环体。假设干次。被重复执行的这段代码称为循环体。 VFP中支持循环结构的语句包括:中支持循环结构的语句包括: 1DO WHILE-ENDDO 2FOR-ENDFOR 3SCAN-ENDSCANDO WHILE语句格式:语句格式: DO WHIL DO WHIL 1 LOOP LOOP 2 EXIT EXIT 3 ENDDO ENDDO 当系统执行进入当系统执行进入DO WHILE结构时,首先判结构时,首先判断循环

20、条件是否成立。如果循环条件成立,那么执断循环条件是否成立。如果循环条件成立,那么执行行DO WHILE与与ENDDO之间语句序列即循环之间语句序列即循环体。当执行到体。当执行到ENDDO时,返回到时,返回到DO WHILE,再次判断循环条件是否成立,以确定是否再次执行再次判断循环条件是否成立,以确定是否再次执行循环体,如此循环,直到循环条件不成立,结束该循环体,如此循环,直到循环条件不成立,结束该循环语句,执行循环语句,执行ENDDO后面的语句。后面的语句。 循环体中可以使用两条特殊的命令:循环体中可以使用两条特殊的命令:LOOP命命令和令和EXIT命令。命令。 如果循环体包含有如果循环体包含

21、有LOOP命令,那么当执行到命令,那么当执行到LOOP命令时,就结束本次循环如同执行到命令时,就结束本次循环如同执行到ENDDO一样,即不再执行一样,即不再执行LOOP到到ENDDO之之间的语句,返回间的语句,返回DO WHILE处再判断循环条件是处再判断循环条件是否成立。否成立。 如果循环体包含有如果循环体包含有EXIT命令,那么当执行到命令,那么当执行到EXIT命令时,就立即结束该循环语句,执行命令时,就立即结束该循环语句,执行ENDDO后面的语句。后面的语句。说明:说明:1ENDDO必须与必须与DO WHILE成对出现,缺一不可成对出现,缺一不可2LOOP命令和命令和EXIT命令只能用在

22、循环结构中,通命令只能用在循环结构中,通常出现在循环体内嵌套的选择语句中。常出现在循环体内嵌套的选择语句中。3防止陷入防止陷入“死循环。循环体中必须包含能对死循环。循环体中必须包含能对产生影响的命令,否那么,假设产生影响的命令,否那么,假设的值永的值永远为真远为真.T.,循环将不会结束。这种现象称为,循环将不会结束。这种现象称为“死循环。死循环。4为了增加程序的可读性,一般按缩进格式书为了增加程序的可读性,一般按缩进格式书写。写。5与与IF语句一样,语句一样,DO WHILE语句只能在程序中语句只能在程序中使用,不能在命令窗口中使用。使用,不能在命令窗口中使用。DO WHILE语句举例语句举例

23、1例例 计算计算1+2+3+1001+2+3+100的结果的结果 clear clear s=0 s=0 i=1 i=1 do while i=100 do while i=100 s=s+i s=s+i i=i+1 i=i+1 enddo enddo ? ?s=s=,s,s return return循环过程的分析循环过程的分析:第第1次次:(条件条件i=1满足循环满足循环) S=1 i=2第第2次次:(条件条件i=2满足循环条件满足循环条件) S=3 i=3第第100次次:(条件条件i=100满足循环条件满足循环条件) S=5050 i=101第第101次次:(条件条件i=101,不满足循

24、环条不满足循环条件件,退出退出) 计算计算1+3+99clearclears=0s=0i=1i=1do while i=100do while i=100 s=s+i s=s+i i=i+2 i=i+2enddo enddo 二、二、 FOR-ENDFOR FOR-ENDFOR循环语句循环语句 如果事先可以决定循环的次数如果事先可以决定循环的次数,使用使用FOR- ENDFOR语句更加清晰、方便。语句更加清晰、方便。语句格式:语句格式:FOR FOR = TO TO STEP STEP 1 LOOP LOOP 2 EXIT EXIT 3 ENDFOR/NEXT ENDFOR/NEXT 当系统执

25、行进入当系统执行进入FOR循环结构时,首先将初值赋循环结构时,首先将初值赋给循环变量,再将循环变量的值与终值比较,判断循给循环变量,再将循环变量的值与终值比较,判断循环条件是否成立。如果循环变量的值在初值与终值范环条件是否成立。如果循环变量的值在初值与终值范围内,表示循环条件成立,那么执行围内,表示循环条件成立,那么执行FOR与与ENDFOR之间的语句序列即循环体,然后循环之间的语句序列即循环体,然后循环变量的值增加一个增量,并再次判断循环条件是否成变量的值增加一个增量,并再次判断循环条件是否成立,以确定是否再次执行循环体。假设循环变量的值立,以确定是否再次执行循环体。假设循环变量的值已超出初

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

27、也可以是负值,即递减。当增量为1时,时,STEP可以省掉。假设增量为正值,那么当循环变量的值小可以省掉。假设增量为正值,那么当循环变量的值小于等于终值时,循环条件成立;假设增量为负值,那于等于终值时,循环条件成立;假设增量为负值,那么当循环变量的值大于等于终值时,循环条件成立么当循环变量的值大于等于终值时,循环条件成立5可以在循环体内改变循环变量的值,但循环次数可以在循环体内改变循环变量的值,但循环次数也随之改变。也随之改变。FOR语句举例语句举例例例 计算计算1+2+3+1001+2+3+100的结果的结果 clear clear s=0 s=0for i=1 to 100for i=1 t

28、o 100 s=s+i s=s+i endfor endfor ? ?s=s=,s,s return 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-ENDSCANSCAN-ENDSCAN 如果需要对数据表指定的假设干记录依次执行相同如果需要对数据表指定的假设干记录依次执行相同的操作,使用的操作,使用SCAN-ENDSCANSCAN-ENDSCAN语句更加清晰、方便。语句更加清晰、方便。语句格式:语句格式:SCAN SCAN FORFORWHILE WHILE 语句行序列语句行序列 LOOP LOOP 语句行序列语句行序列 EXIT EXIT 语句行序列语句行序列ENDSCANENDSCAN 当系统执行进入当系统执行进入SCAN循环结构时,记录指针自循环结构时,记录指针自动、依次地在当前数据表的指定范围内满足条件的动、依次地在当前数据表的指定范围内满足条件的记录上移动,对每一条记录执行语句序列即循环记录上移动,对每

温馨提示

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

评论

0/150

提交评论