第八章程序设计基础学习教案_第1页
第八章程序设计基础学习教案_第2页
第八章程序设计基础学习教案_第3页
第八章程序设计基础学习教案_第4页
第八章程序设计基础学习教案_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1第八章程序设计第八章程序设计(chn x sh j)基础基础第一页,共64页。(1)命令方式【命令】 MODIFY COMMAND 【功能】 打开一个编辑器窗口,用于建立或修改程序文件。【例8-1】用命令方式建立能显示教师表中职称为讲师的教师记录的程序文件P1.PRG。操作步骤如下:在命令窗口中输入(shr)下列命令,进入“程序文件”编辑窗口。 MODIFY COMMAND P1.PRG在“程序文件”编辑窗口,输入(shr)下列命令,如图8-1所示。输入(shr)完成后,在“文件”菜单中选择“保存”命令,在“对话框”的“保存文档为”文本框中输入(shr)P1.PRG,保存文件。图8-1

2、 建立程序(chngx)文件P1.PRG窗口 第1页/共64页第二页,共64页。n10,50 say “”Get nRead 第2页/共64页第三页,共64页。第3页/共64页第四页,共64页。 (2 2)菜单方式)菜单方式用菜单方式的操作步骤:用菜单方式的操作步骤:如果如果(rgu)(rgu)是新建文件,在是新建文件,在“文件文件”菜单中选择菜单中选择“新建新建”命令选项,在屏幕显示的命令选项,在屏幕显示的“新建新建”对话框中选择对话框中选择“程序程序”项进入程序编辑窗口。如果项进入程序编辑窗口。如果(rgu)(rgu)是修改已有的程序文件是修改已有的程序文件,则选择,则选择“文件文件” ”

3、 菜单中选择菜单中选择“打开打开”命令选项,在屏幕显示的命令选项,在屏幕显示的“打开打开”对话框中输入或对话框中输入或选择要修改的文件名,系统自动将按输入或选择的文件名将程序文件调入内存并显示在文选择要修改的文件名,系统自动将按输入或选择的文件名将程序文件调入内存并显示在文本编辑窗口以供修改。本编辑窗口以供修改。 在程序编辑窗口逐条输入或修改程序语句。在程序编辑窗口逐条输入或修改程序语句。输入或修改完成后,在输入或修改完成后,在“文件文件”菜单中选择菜单中选择“保存保存”或或“另存为另存为”命令,保存文件命令,保存文件【例【例8-28-2】用菜单方式修改程序文件】用菜单方式修改程序文件P1.P

4、RGP1.PRG,使之显示教师表中职称为教授或副教授的,使之显示教师表中职称为教授或副教授的教师记录,并另存文件为教师记录,并另存文件为P2.PRGP2.PRG。操作步骤如下:操作步骤如下:选择选择“文件文件”菜单中的菜单中的“打开打开”命令选项,在屏幕显示的命令选项,在屏幕显示的“打开打开”对话框中输入程序对话框中输入程序文件名:文件名:P1.PRGP1.PRG。进入。进入“程序文件程序文件”编辑窗口。编辑窗口。在在“程序文件程序文件”编辑窗口,对第二条命令进行修改,如图编辑窗口,对第二条命令进行修改,如图8-28-2所示。所示。 输入完成后,在输入完成后,在“文件文件”菜单中选择菜单中选择

5、“另存为另存为”命令,在命令,在“对话框对话框”的的“保存文档保存文档为为”文本框中输入文本框中输入P2.PRGP2.PRG,保存文件。,保存文件。 图8-2 修改(xigi)程序文件P1.PRG窗口 第4页/共64页第五页,共64页。2 2执行程序文件执行程序文件执行程序文件就是依次执行程序文件中的每条命令或语句。程序文件的执行有命令和菜执行程序文件就是依次执行程序文件中的每条命令或语句。程序文件的执行有命令和菜单两种方式。单两种方式。 (1 1)命令方式)命令方式【命令】【命令】 DO DO 【功能【功能(gngnng)(gngnng)】 在命令窗口运行以在命令窗口运行以.PRG.PRG为

6、扩展名的程序文件。为扩展名的程序文件。 (2 2)菜单方式)菜单方式在在Visual FoxProVisual FoxPro系统环境下,选择系统环境下,选择“程序程序”菜单中的菜单中的“运行运行”命令选项,在显示的对命令选项,在显示的对话框中确定或输入要执行的程序文件名。话框中确定或输入要执行的程序文件名。【例【例8-38-3】用菜单方式运行程序文件】用菜单方式运行程序文件P2.PRGP2.PRG。操作步骤如下:操作步骤如下:选择选择“程序程序”菜单中的菜单中的“运行运行”命令选项,在显示的对话框中确定或输入要执行的程序命令选项,在显示的对话框中确定或输入要执行的程序文件名:文件名:P2.PR

7、GP2.PRG,然后单击对话框中的运行按钮,得到如图,然后单击对话框中的运行按钮,得到如图8-38-3所示的运行结果。所示的运行结果。 图8-3 运行程序(chngx)文件P2.PRG窗口 第5页/共64页第六页,共64页。8.1.2 8.1.2 程序中常用程序中常用(chn yn)(chn yn)的命令的命令在程序文件中常常要用到一些交互式输入、输出命令,注释命令,程序结束在程序文件中常常要用到一些交互式输入、输出命令,注释命令,程序结束专用命令及系统状态的设置命令。专用命令及系统状态的设置命令。1 1交互式输入命令交互式输入命令输入命令用于在程序的执行过程中给程序赋值。在程序文件中,交互式

8、输入输入命令用于在程序的执行过程中给程序赋值。在程序文件中,交互式输入命令有以下几种形式:命令有以下几种形式: (1 1)赋值命令)赋值命令【命令】【命令】 STORE STORE TOTO 或或 = 【功能】【功能】 给内存变量赋值。给内存变量赋值。【说明】【说明】 STORE STORE命令可以同时给多个内存变量赋值,而命令可以同时给多个内存变量赋值,而 = 命令只能给一个变量赋值。命令只能给一个变量赋值。 (2 2)字符串输入命令)字符串输入命令【命令】【命令】 ACCEPT ACCEPT TOTO 【功能】暂停程序的运行,等待用户从键盘上输入一串字符,存入指定的内【功能】暂停程序的运行

9、,等待用户从键盘上输入一串字符,存入指定的内存变量中。存变量中。【说明】【说明】 用于提示用户进行操作的信息。从键盘接受的字符串用于提示用户进行操作的信息。从键盘接受的字符串,可以加定界符也可以不加定界符,系统都将其作为字符型数据输入到内存变量中。,可以加定界符也可以不加定界符,系统都将其作为字符型数据输入到内存变量中。 第6页/共64页第七页,共64页。(3 3)单字符输入命令)单字符输入命令 【命令】【命令】 WAIT WAIT TOTO 【功能】【功能】 暂停程序暂停程序(chngx)(chngx)的运行,等待用户从键盘上输入单个字符后恢复的运行,等待用户从键盘上输入单个字符后恢复程序程

10、序(chngx)(chngx)的运行。的运行。【说明】【说明】 用于提示用户进行操作的信息,用于提示用户进行操作的信息,TOTO 是可选项是可选项,当选用时,键入的单个字符均作为字符型数据赋给,当选用时,键入的单个字符均作为字符型数据赋给 。如果只有。如果只有WAIT WAIT 命令,没有选项,则系统默认的提示信息是:命令,没有选项,则系统默认的提示信息是:PRESS ANY KEY PRESS ANY KEY TOTO CONTINUE CONTINUE (4 4)表达式输入命令)表达式输入命令【命令】【命令】 INPUT INPUT TOTO 【功能】【功能】 暂停程序暂停程序(chngx

11、)(chngx)的运行,等待用户输入表达式并将其值赋给指定的运行,等待用户输入表达式并将其值赋给指定的内存变量。的内存变量。【说明】【说明】 用于提示用户进行操作的信息,命令中用于提示用户进行操作的信息,命令中 的类的类型决定于输入数据的类型,但不能为型决定于输入数据的类型,但不能为M M型。如果键入的是表达式,本命令先计算出型。如果键入的是表达式,本命令先计算出表达式的值,再将结果赋给表达式的值,再将结果赋给 ;如果键入的是字符常量、逻辑常量和日;如果键入的是字符常量、逻辑常量和日期常量时应带定界符,既字符常量加引号,逻辑常量左右加圆点,日期常量要用期常量时应带定界符,既字符常量加引号,逻辑

12、常量左右加圆点,日期常量要用CTODCTOD()函数进行转换。()函数进行转换。第7页/共64页第八页,共64页。(5 5)定位输入命令)定位输入命令【命令】【命令】 SAY SAY GET GET READREAD【功能】【功能】 在屏幕指定的行列位置上输入数据。在屏幕指定的行列位置上输入数据。【说明】【说明】 命令中的各选项说明如下:命令中的各选项说明如下:l l 是指屏幕窗口的位置。是指屏幕窗口的位置。l SAY l SAY 给出提示信息。给出提示信息。l GET l GET 取得变量的值。其中取得变量的值。其中 可以是字段变量或内存变量,如可以是字段变量或内存变量,如果是字段变量,应先

13、打开表文件,如果是内存变量,应先赋值。果是字段变量,应先打开表文件,如果是内存变量,应先赋值。GETGET子句必须使用命令子句必须使用命令READREAD激活。在带有多个激活。在带有多个GETGET子句的命令后,必须遇到子句的命令后,必须遇到READREAD命令才能编辑命令才能编辑GETGET中的变量。当光标中的变量。当光标(un bio)(un bio)移出这些移出这些GETGET变量组成的变量组成的编辑区时,编辑区时,READREAD命令才执行结束命令才执行结束 第8页/共64页第九页,共64页。2 2输出命令输出命令输出命令用于显示程序中的输出内容和结果。下面介绍一些常用输出命令。输出命

14、令用于显示程序中的输出内容和结果。下面介绍一些常用输出命令。 (1 1)非格式输出命令)非格式输出命令 【命令】【命令】 ? 或或 ? 【功能】显示内存变量、常量或表达式的值。【功能】显示内存变量、常量或表达式的值。 【说明】【说明】 ?是在光标所在?是在光标所在(suzi)(suzi)行的下一行开始显示,而?则是在当前光标位置开行的下一行开始显示,而?则是在当前光标位置开始显示。始显示。(2 2)格式输出命令)格式输出命令 【命令】【命令】 SAY SAY 【功能】【功能】 按指定的坐标位置在屏幕上输出表达式的值。按指定的坐标位置在屏幕上输出表达式的值。 【说明】【说明】 输出输出 的位置由

15、的位置由 指定,指定, 的内容可以是数值、字符、内的内容可以是数值、字符、内存变量和字段变量。存变量和字段变量。 (3 3)文本输出命令)文本输出命令 【命令】【命令】 TEXT TEXT ENDTEXT ENDTEXT 【功能】【功能】 将将TEXTTEXT和和ENDTEXTENDTEXT之间的文本信息照原样输出。之间的文本信息照原样输出。 【说明】【说明】 TEXT TEXT与与ENDTEXTENDTEXT在程序中必须配对。在程序中必须配对。第9页/共64页第十页,共64页。3 3其他程序运行命令其他程序运行命令在程序中,有一些在程序中,有一些(yxi)(yxi)专门用于程序开始和结束时的

16、命令以及专门用于程序开始和结束时的命令以及对程序进行说明的命令,常用的有以下几个:对程序进行说明的命令,常用的有以下几个: (1 1)清屏命令)清屏命令【命令】【命令】 CLEAR CLEAR 【功能】【功能】 清除屏幕上的内容。清除屏幕上的内容。(2 2)返回命令)返回命令【命令】【命令】 RETURN RETURN 【功能】【功能】 结束当前程序的运行。结束当前程序的运行。【说明】【说明】 如果当前程序无上级程序,该命令用于结束程序的运行如果当前程序无上级程序,该命令用于结束程序的运行,返回到命令窗口。如果当前程序是一个子程序,该命令用于结束程,返回到命令窗口。如果当前程序是一个子程序,该

17、命令用于结束程序的运行,返回到调用该程序的上级程序中。序的运行,返回到调用该程序的上级程序中。(3 3)终止程序执行命令)终止程序执行命令【命令】【命令】 CANCEL CANCEL 【功能】【功能】 终止程序执行并关闭所有打开的文件,返回到系统的命终止程序执行并关闭所有打开的文件,返回到系统的命令窗口。令窗口。第10页/共64页第十一页,共64页。(4 4)退出系统命令)退出系统命令【命令】【命令】 QUIT QUIT 【功能】【功能】 终止程序运行,关闭所有打开的文件,退出终止程序运行,关闭所有打开的文件,退出Visual Visual FoxProFoxPro系统,返回到系统,返回到Wi

18、ndowsWindows环境。环境。(5 5)注释命令)注释命令【命令】【命令】 NOTE NOTE 或或 * * 或或 & & 【功能】【功能】 用于在程序中加入说明,以注明程序的名称、功能或用于在程序中加入说明,以注明程序的名称、功能或其他备忘标记。其他备忘标记。【说明】【说明】 注释命令为非执行语句。其中前两个命令格式作为独注释命令为非执行语句。其中前两个命令格式作为独立的一行语句,第三条命令放在某一个立的一行语句,第三条命令放在某一个(y )(y )语句的右边。语句的右边。 第11页/共64页第十二页,共64页。4 4环境设置命令环境设置命令为了保证程序的正常运行,需要

19、为其设置一定的运行环境。为了保证程序的正常运行,需要为其设置一定的运行环境。Visual Visual FoxProFoxPro系统提供的系统提供的SETSET命令组就是用来设置程序运行环境的。这些命令命令组就是用来设置程序运行环境的。这些命令相当于一个状态转换开关,当命令置为相当于一个状态转换开关,当命令置为“ON”“ON”时,开启指定的某种状时,开启指定的某种状态;而置为态;而置为“OFF”“OFF”时,则关闭该种状态。常用时,则关闭该种状态。常用(chn yn)(chn yn)的系统环的系统环境设置命令有以下几个:境设置命令有以下几个:(1 1)关闭对话命令)关闭对话命令【命令】【命令】

20、 SET TALK ON|OFF SET TALK ON|OFF【功能】【功能】 控制非输出性的执行结果是否在屏幕上显示或打印出来控制非输出性的执行结果是否在屏幕上显示或打印出来。【说明】【说明】 系统默认值为系统默认值为ONON。(2 2)设置跟踪命令)设置跟踪命令【命令】【命令】 SET ECHO ON|OFF SET ECHO ON|OFF【功能】【功能】 控制程序文件执行过程中的每条命令是否显示或打印出控制程序文件执行过程中的每条命令是否显示或打印出来。来。【说明】【说明】 系统默认值为系统默认值为OFFOFF。第12页/共64页第十三页,共64页。(3 3)设置打印命令)设置打印命令

21、【命令】【命令】 SET PRINTER ON|OFF SET PRINTER ON|OFF【功能】【功能】 控制程序执行的结果到打印机或显示在屏幕上。控制程序执行的结果到打印机或显示在屏幕上。【说明】【说明】 在命令格式中选择在命令格式中选择ONON表示将输出结果送到打印机,选择表示将输出结果送到打印机,选择OFFOFF则则将输出结果显示在屏幕上,系统默认值为将输出结果显示在屏幕上,系统默认值为OFFOFF。(4 4)设置定向输出命令)设置定向输出命令【命令】【命令】 SET DEVICE SET DEVICE TOTO SCREEN | SCREEN | TOTO PRINTER | PR

22、INTER | TOTO FILE FILE 【功能】【功能】 控制输出结果到屏幕、打印机或指定的文件。控制输出结果到屏幕、打印机或指定的文件。【说明】【说明】 在命令格式中选择在命令格式中选择SCREENSCREEN表示将输出结果显示在屏幕上,选表示将输出结果显示在屏幕上,选择择PRINTERPRINTER表示将输出结果送到打印机,选择表示将输出结果送到打印机,选择FILE FILE 则将输出结果则将输出结果送到指定文件。送到指定文件。(5 5)设置精确比较命令)设置精确比较命令【命令】【命令】 SET EXACT SET EXACT TOTO ON|OFF ON|OFF【功能】【功能】 在

23、进行字符比较时是否在进行字符比较时是否(sh fu)(sh fu)需要精确比较。需要精确比较。【说明】【说明】 在命令格式中选择在命令格式中选择ONON表示需要精确比较,选择表示需要精确比较,选择OFFOFF表示不需要表示不需要精确比较,系统默认值为精确比较,系统默认值为OFFOFF。第13页/共64页第十四页,共64页。(6 6)设置保护)设置保护(boh)(boh)状态命令状态命令【命令】【命令】 SET SAFETY ON|OFF SET SAFETY ON|OFF【功能】【功能】 系统在用户提出对文件重写或删除的要求时给出警告提系统在用户提出对文件重写或删除的要求时给出警告提示。示。【

24、说明】【说明】 需要提示选择需要提示选择ONON,否则选择,否则选择OFFOFF。系统默认为。系统默认为ONON。(7 7)设置删除记录标志命令)设置删除记录标志命令【命令】【命令】 SET DELETED ON|OFF SET DELETED ON|OFF【功能】【功能】 屏蔽或处理有删除标记的记录。屏蔽或处理有删除标记的记录。【说明】【说明】 在命令格式中选择在命令格式中选择ONON时,命令将不对有删除标记的记录时,命令将不对有删除标记的记录进行操作,但索引命令除外。系统默认值为进行操作,但索引命令除外。系统默认值为OFFOFF。 (8 8)设置屏幕状态命令)设置屏幕状态命令【命令】【命令

25、】 SET CONSOLE ON|OFF SET CONSOLE ON|OFF【功能】【功能】 发送或暂停输出内容到屏幕上。发送或暂停输出内容到屏幕上。【说明】【说明】 系统默认值为系统默认值为ONON。(9 9)设置缺省目录命令)设置缺省目录命令【命令】【命令】 SET DEFAULT SET DEFAULT TOTO 【功能】【功能】 用于设置系统默认的磁盘文件目录。用于设置系统默认的磁盘文件目录。 第14页/共64页第十五页,共64页。5. 5. 程序中常用的命令综程序中常用的命令综合应用合应用【 例【 例 8 - 48 - 4 】 编 写 程 序】 编 写 程 序P3.PRGP3.PR

26、G,其程序功能是在,其程序功能是在学生表中追加一条记录。学生表中追加一条记录。编写程序如图编写程序如图8-48-4所示,所示,运行程序运行程序P3.PRGP3.PRG,在如下,在如下输入界面填写输入界面填写(tinxi)(tinxi)数数据,显示结果如图据,显示结果如图8-58-5所示所示。 图8-4 程序P3.PRG的编写(binxi)窗口 图8-5 程序(chngx)P3.PRG的输出结果 第15页/共64页第十六页,共64页。【 例【 例 8 - 58 - 5 】 编 写 程 序编 写 程 序P4.PRGP4.PRG,其程序功能是在学,其程序功能是在学生表中查询某一天出生的学生表中查询某

27、一天出生的学生记录生记录(jl)(jl)。编写程序如图编写程序如图8-68-6所示,所示,运行程序运行程序P4.PRGP4.PRG,在输入了,在输入了要查询学生的出生日期之后要查询学生的出生日期之后,系统输出查询的结果。,系统输出查询的结果。图8-6 程序P4.PRG编写(binxi)窗口 第16页/共64页第十七页,共64页。第17页/共64页第十八页,共64页。第18页/共64页第十九页,共64页。【 例 8 - 6 】 编 写 程 序(chngx)P5.PRG,其程序(chngx)功能是在学生表中删除学生记录。编写程序(chngx)如图8-7所示,运行程序(chngx)P5.PRG,在输

28、入了要查询学生的姓名之后,系统显示要删除学生的记录,并确认删除。程序(chngx)运行结果的屏幕显示如下:图8-7 程序P5.PRG编写(binxi)窗口 第19页/共64页第二十页,共64页。第20页/共64页第二十一页,共64页。8.1.3 8.1.3 程序的基本结构程序的基本结构在在Visual FoxProVisual FoxPro中,结构化程序设计主要依靠系统提供的结构化语句构成中,结构化程序设计主要依靠系统提供的结构化语句构成,程序的基本结构有三种:顺序结构、分支结构和循环结构。每一种基本结构,程序的基本结构有三种:顺序结构、分支结构和循环结构。每一种基本结构可以包含一个或多个语句

29、。可以包含一个或多个语句。1 1顺序结构顺序结构顺序结构是指程序按照语句排列的先后顺序逐条的执行。它是程序中最简单顺序结构是指程序按照语句排列的先后顺序逐条的执行。它是程序中最简单、最常用的基本结构。、最常用的基本结构。Visual FoxProVisual FoxPro中,大多数命令都可以作为顺序结构中的中,大多数命令都可以作为顺序结构中的语句来实现编程。语句来实现编程。在例在例8-48-4、例、例8-58-5和例和例8-68-6的程序中都是采用顺序结构。的程序中都是采用顺序结构。2 2分支结构分支结构分支结构是在执行程序时,按照一定的条件选择不同的语句,用来解决选择分支结构是在执行程序时,

30、按照一定的条件选择不同的语句,用来解决选择、转移的问题。分支结构的基本形式有三种。、转移的问题。分支结构的基本形式有三种。 (1 1)单向分支)单向分支单向分支,即根据用户设置的条件表达式的值,决定单向分支,即根据用户设置的条件表达式的值,决定(judng)(judng)某一操作是某一操作是否执行。否执行。【语句】【语句】IF IF ENDIFENDIF【功能】【功能】 当条件表达式的值为真时,执行当条件表达式的值为真时,执行 ,否则执行,否则执行ENDIFENDIF后后面的命令。面的命令。【说明】【说明】 是关系表达式或逻辑表达式,是关系表达式或逻辑表达式,IFIF和和ENDIFENDIF必

31、须成对使必须成对使用。用。 可以由一条语句或多条语句构成。可以由一条语句或多条语句构成。第21页/共64页第二十二页,共64页。第22页/共64页第二十三页,共64页。【例8-7】 编写程序P6.PRG,其程序功能是在教师表中,将陈静教师的职称由讲师改成副教授。编写程序如图8-8所 示 , 运 行 程 序P6.PRG,先显示原数据表的内容,见图8-9,再显示修改后数据表的内容,见图8-10,对比(dub)两个数据表的内容,可看见,陈静教师的职称已由讲师改成了副教授。图8-8 程序P6.PRG编写(binxi)窗口图8-10 修改后教师(jiosh)表的内容图8-9 修改前教师表的内容第23页/

32、共64页第二十四页,共64页。nreturn第24页/共64页第二十五页,共64页。(2 2)双向分支)双向分支双向分支,即根据用户设置的条件表达式的值,选择两个操作中的一个双向分支,即根据用户设置的条件表达式的值,选择两个操作中的一个(y (y )来执行。来执行。【语句】【语句】IF IF 1ELSEELSE 2ENDIFENDIF【功能】【功能】 执行该命令时,首先判断执行该命令时,首先判断 的值,若为真,则执行的值,若为真,则执行 1,然后执行,然后执行ENDIFENDIF后的命令;若为假,则执行后的命令;若为假,则执行 2,然,然后执行后执行ENDIFENDIF后的命令。后的命令。【说

33、明】【说明】 IFELSEENDIF IFELSEENDIF 语句必须成对使用。语句必须成对使用。 1和和 2中可以嵌套中可以嵌套IFIF命令。命令。第25页/共64页第二十六页,共64页。【例8-8】 编写程序P7.PRG,其程序功能是在教师(jiosh)表中,查询陈静教师(jiosh)的记录,如果找到记录,就显示该记录,否则,显示“查无此人”。编写程序如图8-11所示。运行程序P7.PRG,由于数据表中有陈静教师(jiosh)的记录,所以在程序运行后显示了陈静教师(jiosh)的记录内容,如图8-12所示。图8-11 程序(chngx)P7.PRG编写窗口 图8-12 程序(chngx)P

34、7.PRG执行的结果 第26页/共64页第二十七页,共64页。nreturn 第27页/共64页第二十八页,共64页。 (3 3)多向分支)多向分支多向分支,即根据多个条件表达式的值,选择多个操作中的一个来执行。多向分支,即根据多个条件表达式的值,选择多个操作中的一个来执行。【语句】【语句】DO CASEDO CASECASE CASE 1 1CASE CASE 2 2. . . . CASE CASE N NOTHERWISE OTHERWISE N+1ENDCASEENDCASE【功能】【功能】 系统从多个条件中依次测试系统从多个条件中依次测试(csh)(csh) 的值,若为真,的值,若为

35、真,即执行相应即执行相应 后的后的 ;若所有的;若所有的 的值均为的值均为假,则执行假,则执行OTHERWISEOTHERWISE后面的后面的 。【说明】【说明】 DO CASE DO CASE和第一个和第一个CASECASE子句之间不能插入任何命令。子句之间不能插入任何命令。DO CASEDO CASE和和ENDCASEENDCASE必须配对使用。必须配对使用。 第28页/共64页第二十九页,共64页。【例8-9】编写程序(chngx)P8.PRG,其程序(chngx)功能是根据用户的选择,显示不同数据表的内容。编写程序(chngx)如图8-13所示,运行程序(chngx)P8.PRG,屏幕

36、显示如下提示,当输入2,将显示教师表的内容。 图8-13 程序(chngx)P8.PRG编写窗口 第29页/共64页第三十页,共64页。n use teachersn browse last第30页/共64页第三十一页,共64页。第31页/共64页第三十二页,共64页。3 3循环结构循环结构循环结构是重复执行一段命令序列若干次或重复执行一段命循环结构是重复执行一段命令序列若干次或重复执行一段命令序列直到满足某种条件为止。循环结构可以简化程序,提高程序效令序列直到满足某种条件为止。循环结构可以简化程序,提高程序效率。常用的循环语句有以下几种形式。率。常用的循环语句有以下几种形式。 (1 1)条件

37、循环)条件循环条件循环是根据条件表达式的值,决定条件循环是根据条件表达式的值,决定(judng)(judng)循环体内语循环体内语句的执行次数,也称为当型循环。句的执行次数,也称为当型循环。【语句】【语句】DO WHILE DO WHILE 1 LOOP LOOP 2 EXIT EXIT 3ENDDOENDDO【功能】【功能】 语句执行时,先判断语句执行时,先判断 的值,若为真,的值,若为真,则执行循环体内的命令,即则执行循环体内的命令,即DO DO 与与ENDDOENDDO之间的命令;若为假,则执行之间的命令;若为假,则执行ENDDOENDDO后面的命令。后面的命令。第32页/共64页第三十

38、三页,共64页。【说明】【说明】 对循环语句进行以下说明:对循环语句进行以下说明:l DO WHILE l DO WHILE 和和ENDDOENDDO子句要配对使用。子句要配对使用。l DO WHILE l DO WHILE 是循环语句的入口;是循环语句的入口;ENDDOENDDO是循环语句的是循环语句的出;中间出;中间 是重复执行的循环体。是重复执行的循环体。l LOOPl LOOP和和EXITEXIT只能在循环语句中使用,其中只能在循环语句中使用,其中LOOPLOOP是转到循环的入口是转到循环的入口语句;语句;EXITEXIT是强行退出循环的语句。是强行退出循环的语句。 l l 循环结构允

39、许嵌套,这种嵌套不仅限于循环结构自身的嵌套,循环结构允许嵌套,这种嵌套不仅限于循环结构自身的嵌套,而且而且(r qi)(r qi)还可以是和选择结构的相互嵌套。还可以是和选择结构的相互嵌套。 第33页/共64页第三十四页,共64页。【例8-10】 编写程序P9.PRG,其程序功能是统计学生表中入校总分在580分以上的学生人数。编写程序如图8-14所示,运行程序P9.PRG,屏幕(pngm)先显示学生表中入校总分在580分以上的学生记录内容,如图8-15所示,再以如下格式显示统计出的学生表中入校总分在580分以上的学生人数。 图8-14 程序P9.PRG编写(binxi)窗口 图8-15 入校总

40、分在580分以上(yshng)的学生记录 第34页/共64页第三十五页,共64页。n(yshng)的人数”n2,60 say NU第35页/共64页第三十六页,共64页。【例8-11】 编写程序P10.PRG,其程序功能是设计一个对学生表进行管理主控程序,用户通过键盘选择菜单,以实现不同的功能模块的调用或退出程序运行。编写程序如图8-16所示,运行程序P10.PRG,屏幕显示如下: 当输入(shr)5,输入(shr)的代号不在提示的范围内,系统提示重新选择,再次显示选择提示信息。 图8-16 程序P10.PRG编写(binxi)窗口 第36页/共64页第三十七页,共64页。第37页/共64页第

41、三十八页,共64页。(2 2)计数循环)计数循环计数循环是根据用户设置的循环变量的初值、终值和步长,决定循环体内语计数循环是根据用户设置的循环变量的初值、终值和步长,决定循环体内语句执行次数。句执行次数。【语句】【语句】 FOR FOR = TOTO STEP STEP 1 LOOP LOOP 2 EXIT EXIT 3ENDFOR | NEXTENDFOR | NEXT【功能】【功能】 系统执行该命令时,首先将循环初值赋给循环变量,然后判断循环系统执行该命令时,首先将循环初值赋给循环变量,然后判断循环变量的值是否超过终值,若超过则跳出循环,执行变量的值是否超过终值,若超过则跳出循环,执行EN

42、DFORENDFOR后面的命令,否则执后面的命令,否则执行循环体内的命令序列。当遇到行循环体内的命令序列。当遇到ENDFORENDFOR子句时,返回子句时,返回FORFOR命令,并将循环变量的命令,并将循环变量的值加上步长值再一次与循环终值比较,如此重复执行,直到循环变量的值超过值加上步长值再一次与循环终值比较,如此重复执行,直到循环变量的值超过循环终值。循环终值。【说明】【说明】 对循环语句进行以下说明:对循环语句进行以下说明:l l 步长值省略时,系统默认步长值省略时,系统默认(mrn)(mrn)步长值为步长值为1 1。当初值小于终值时,步长值。当初值小于终值时,步长值为正值。当初值大于终

43、值时,步长值为负值。步长值不能为为正值。当初值大于终值时,步长值为负值。步长值不能为0 0,否则造成死循环,否则造成死循环。l l 在循环体内不要随便改变循环变量的值,否则会引起循环次数发生改变。在循环体内不要随便改变循环变量的值,否则会引起循环次数发生改变。l LOOPl LOOP和和EXITEXIT命令的功能和用法与条件循环中该命令的用法相同命令的功能和用法与条件循环中该命令的用法相同 第38页/共64页第三十九页,共64页。【例8-12】 编写程序P11.PRG,其程序功能(gngnng)是用计数循环统计学生表中入校总分在580分以上的学生人数。编写程序如图8-17所示,运行程序P11.

44、PRG,屏幕以如下格式显示统计出的学生表中入校总分在580分以上的学生人数(与例8-10的结果相同)。 图8-17 程序(chngx)P11.PRG编写窗口 第39页/共64页第四十页,共64页。第40页/共64页第四十一页,共64页。(3)指针循环)指针循环指针循环是在数据表中建立的循环,它是根据用户设置的当前记录指针,对一组记录进行循指针循环是在数据表中建立的循环,它是根据用户设置的当前记录指针,对一组记录进行循环操作。环操作。【语句】【语句】 SCAN FOR WHILE LOOP EXIT ENDSCAN【功能】【功能】 该语句在指定该语句在指定(zhdng)的范围内,用记录指针来控制

45、循环次数。执行语句时,首先的范围内,用记录指针来控制循环次数。执行语句时,首先判断函数判断函数EOF() 的值,若为的值,若为“真真”,则结束循环,执行,则结束循环,执行ENDSCAN后面的语句;否则,结合后面的语句;否则,结合或或执行执行,记录指针移到指定,记录指针移到指定(zhdng)的范围和条件内的下一的范围和条件内的下一条记录,重新判断函数条记录,重新判断函数EOF()的值,直到的值,直到EOF()的值为的值为“真真”时结束循环。时结束循环。【说明】【说明】 对循环语句进行以下说明:对循环语句进行以下说明:l SCANENDSCAN循环语句中隐含函数循环语句中隐含函数EOF()和命令和

46、命令SKIP的处理。的处理。l 无无选项时,则表示对所有记录进行处理。选项时,则表示对所有记录进行处理。l LOOP和和EXIT命令的功能和用法与条件循环中该命令的用法相同。命令的功能和用法与条件循环中该命令的用法相同。第41页/共64页第四十二页,共64页。【例8-13】 编写程序P12.PRG,其程序功能是用指针(zhzhn)循环统计学生表中入校总分在580分以上的学生人数。编写程序如图8-18所示,运行程序P12.PRG,屏幕显示格式与例8-10的结果相同。 图8-18 程序P12 .PRG编写(binxi)窗口 第42页/共64页第四十三页,共64页。nclear allnset ta

47、lk on nreturn第43页/共64页第四十四页,共64页。(4 4)多重循环)多重循环多重循环是指在一个循环语句内又包含另一个循环语句,多重循环也称为循环嵌多重循环是指在一个循环语句内又包含另一个循环语句,多重循环也称为循环嵌套。下面以条件循环为例,进行说明。套。下面以条件循环为例,进行说明。【语句】【语句】 DO WHILE DO WHILE 1 11DO WHILE DO WHILE 2 21 ENDDO ENDDO 12ENDDOENDDO【功能】【功能】 在多重循环中,首先从外循环进入内循环,执行内循环的语句。当内循在多重循环中,首先从外循环进入内循环,执行内循环的语句。当内循

48、环的条件为假时,返回到外循环;当外循环的条件为真时,又进入内循环;否则,退环的条件为假时,返回到外循环;当外循环的条件为真时,又进入内循环;否则,退出循环。出循环。【说明】【说明】 对循环语句进行以下说明:对循环语句进行以下说明:循环嵌套层次循环嵌套层次(cngc)(cngc)不限,但内循环的所有语句必须完全嵌套在外层循环之不限,但内循环的所有语句必须完全嵌套在外层循环之中。否则,就会出现循环的交叉,造成逻辑上的混乱。中。否则,就会出现循环的交叉,造成逻辑上的混乱。循环结构和分支结构允许混合嵌套使用,但不允许交叉。其入口语句和相应的循环结构和分支结构允许混合嵌套使用,但不允许交叉。其入口语句和

49、相应的出口语句必须成对出现。出口语句必须成对出现。第44页/共64页第四十五页,共64页。【例8-14】 编写程序P13.PRG,其程序功能(gngnng)是使用多重循环打印一个九九乘法口诀表。编写程序P13.PRG,运行程序后屏幕显示九九乘法口诀表。程序和结果如图8-19所示。 图8-19 程序P13 .PRG编写(binxi)窗口和九九乘法口诀表屏幕显示 第45页/共64页第四十六页,共64页。nn return n第46页/共64页第四十七页,共64页。8.1.4 8.1.4 过程及过程调用过程及过程调用1 1过程概念过程概念在程序设计中,经常会遇到有些运算或程序段落在程序中多次调用的情

50、况,为了在程序设计中,经常会遇到有些运算或程序段落在程序中多次调用的情况,为了有效地解决上述重复调用,可设计相对独立并能完成特定功能的程序段,这种程序段有效地解决上述重复调用,可设计相对独立并能完成特定功能的程序段,这种程序段称为过程或子程序,用于调用程序段的程序称为主程序。称为过程或子程序,用于调用程序段的程序称为主程序。在应用系统的开发中,一般会根据实际的需要将整个系统划分成若干个模块,然在应用系统的开发中,一般会根据实际的需要将整个系统划分成若干个模块,然后在主控模块的控制下,调用各个功能模块以实现系统的各种后在主控模块的控制下,调用各个功能模块以实现系统的各种( zhn)( zhn)功

51、能操作,功能操作,通常将这些可调用的功能模块也设计成过程或子程序。通常将这些可调用的功能模块也设计成过程或子程序。2 2过程的建立与调用过程的建立与调用建立过程的方法与建立一般程序的方法相同,所不同的是在每个过程中至少要有建立过程的方法与建立一般程序的方法相同,所不同的是在每个过程中至少要有一个返回语句。一个返回语句。【返回语句】【返回语句】 RETURN RETURN | | TOTO | | TOTO MASTER MASTER【调用命令】【调用命令】 DO DO 【功能】【功能】 执行执行DODO调用命令时,将指定的过程调入内存并执行,当执行到调用命令时,将指定的过程调入内存并执行,当执

52、行到RETURNRETURN命命令时,返回到调用该子程序的主程序,并执行调用命令下的第一条可执行命令。令时,返回到调用该子程序的主程序,并执行调用命令下的第一条可执行命令。【说明】【说明】 在返回语句中,若选择可选项在返回语句中,若选择可选项 ,将表达式的值返回给调用程序,将表达式的值返回给调用程序。选择可选项。选择可选项 TOTO ,可直接返回指定的程序文件。选择可选项,可直接返回指定的程序文件。选择可选项 TOTO MASTERMASTER,则不论前面有多少级调用而直接返回到第一级主程序。,则不论前面有多少级调用而直接返回到第一级主程序。 第47页/共64页第四十八页,共64页。【例8-1

53、5】 编写程序P14.PRG,其程序功能是计算(j sun) S=X!+Y!+Z! 。编写程序如图8-20所示,运行程序P14.PRG,屏幕显示如下的输入数据和输出结果。图8-20 程序P14 .PRG主程序和过程(guchng)编写窗口 第48页/共64页第四十九页,共64页。3 3过程文件过程文件过程是作为一个文件独立地存储在磁盘上,每次运行时,必须将程序调入内存,过程是作为一个文件独立地存储在磁盘上,每次运行时,必须将程序调入内存,为减少磁盘文件的打开次数,提高系统为减少磁盘文件的打开次数,提高系统(xtng)(xtng)的运行效率,可以把多个过程写入到的运行效率,可以把多个过程写入到一

54、个过程文件中。一个过程文件由多个过程组成,过程文件的扩展名仍然是一个过程文件中。一个过程文件由多个过程组成,过程文件的扩展名仍然是.PRG.PRG。(1 1)建立过程文件)建立过程文件【命令】【命令】 MODIFY COMMAND MODIFY COMMAND 【功能】【功能】 建立过程文件。建立过程文件。过程文件的基本书写格式:过程文件的基本书写格式:PROCEDURE PROCEDURE 1 1RETURNRETURNPROCEDURE PROCEDURE 2 2RETURNRETURNPROCEDURE PROCEDURE N NRETURN RETURN 第49页/共64页第五十页,共

55、64页。(2 2)打开过程文件)打开过程文件【命令】【命令】 SET PROCEDURE SET PROCEDURE TOTO 【功能【功能(gngnng)(gngnng)】 打开指定的过程文件,将过程文件中所包含的子程序打开指定的过程文件,将过程文件中所包含的子程序全部调入内存。全部调入内存。【说明】【说明】 系统在同一时刻只能打开一个过程文件,打开新过程文件的同时系统在同一时刻只能打开一个过程文件,打开新过程文件的同时将关闭原来打开的过程文件。若要修改过程文件的内容,一定要先关闭该过程将关闭原来打开的过程文件。若要修改过程文件的内容,一定要先关闭该过程文件。文件。(3 3)执行过程文件中的

56、过程)执行过程文件中的过程【命令】【命令】 DO DO 【功能【功能(gngnng)(gngnng)】 调用过程文件中的指定过程。调用过程文件中的指定过程。(4 4)关闭过程文件)关闭过程文件【命令】【命令】 CLOSE PROCEDURE CLOSE PROCEDURE 或或 SET PROCEDURE SET PROCEDURE TOTO【功能【功能(gngnng)(gngnng)】 关闭已打开的过程文件。关闭已打开的过程文件。 第50页/共64页第五十一页,共64页。【例8-16】 编写程序P15.PRG,其程序功能是求3100之间的所有素数。注意:对一个自然数M(取值在3100之间的奇

57、数)求素数的方法是:将M依次除以3到M的算数平方根之间的所有奇数,若均不能被整除,则M即为素数,否则,M不是素数。编写程序如图8-21所示,运行程序P15.PRG,屏幕显示如下的输出(shch)结果。3100之间的所有素数:357111317192329313741434753596167717379838997 图8-21 程序P15 .PRG主程序和过程文件(wnjin)编写窗口 第51页/共64页第五十二页,共64页。nset talk on nreturn procedure x2for i=3 to n step 2 if int(m/i)=m/i return endifendfo

58、rif int(j/5)=j/5 ?Melse ?M endif j=j+1 return第52页/共64页第五十三页,共64页。第53页/共64页第五十四页,共64页。8.1.5 变量的作用域和参数调用1变量的作用域在程序设计中,特别是模块程序中,往往会用到许多内存变量,这些内存变量有的在整个程序运行过程中起作用,而有的内存变量只在某些程序模块中起作用,内存变量的这些作用范围(fnwi)称为内存变量的作用域。内存变量的作用域根据作用范围(fnwi)可分为全局变量和局部变量。(1)全局变量全局变量是指在程序的任何嵌套中及在程序执行期间始终有效的变量。程序执行完毕,它们不会在内存自动释放。全局变

59、量的定义如下:【命令】 PUBLIC 【功能】 将内存变量名表中的变量说明为全局变量。【说明】 中的变量可以是简单变量,也可以是下标变量。 第54页/共64页第五十五页,共64页。(2 2)局部变量)局部变量局部变量是指未经局部变量是指未经PUBLICPUBLIC命令定义的,只在建立它的过程及下级过程中有命令定义的,只在建立它的过程及下级过程中有效的内存变量。建立局部变量的程序执行完毕,局部变量的值将被自动清除。效的内存变量。建立局部变量的程序执行完毕,局部变量的值将被自动清除。凡是过程中未经特殊说明的内存变量,系统凡是过程中未经特殊说明的内存变量,系统(xtng)(xtng)一律认为是局部变

60、量一律认为是局部变量,这种方式称做隐含定义方式。也可以使用专门命令来定义局部变量,即显式,这种方式称做隐含定义方式。也可以使用专门命令来定义局部变量,即显式定义方式。定义方式。【命令】【命令】 PRIVATE PRIVATE ALL LINK | EXCEPTALL LINK | EXCEPT【功能】【功能】 定义选定的内存变量为局部变量。定义选定的内存变量为局部变量。【说明】【说明】 在同一过程中,用隐式或显式定义的局部变量的作用域完全相同在同一过程中,用隐式或显式定义的局部变量的作用域完全相同。在主程序或上级过程中未经。在主程序或上级过程中未经PRIVATEPRIVATE语句定义的局部变量,在下级过程中也

温馨提示

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

评论

0/150

提交评论