




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第9章章 第第9 9章章9.1.2 9.1.2 程序的控制构造程序的控制构造 任何复杂的程序都由任何复杂的程序都由3 3种根本控制构种根本控制构造组成。它们是顺序构造、选择构造和循造组成。它们是顺序构造、选择构造和循环构造。环构造。 图图9.19.1程序的控制构造程序的控制构造 第第9 9章章9.1.3 构造化程序设计方法 构造化程序设计采用自顶向下、逐渐求精和模块化的分析方法。 自顶向下是指对设计的系统要有一个全面的了解,从问题的全局入手,把一个复杂问题分解成假设干个相互独立的子问题 。逐渐求精是指程序设计的过程是一个渐进的过程,先把一个子问题用一个程序模块来描画,再把每个模块的功能逐渐分
2、解细化为一系列的详细步骤 。模块化是构造化程序的重要原那么。所谓模块化就是把大程序按照功能分为较小的程序。 第第9 9章章9.1.4 9.1.4 程序文件的建立与执行程序文件的建立与执行 1 1命令方式建立或修正程序文件命令方式建立或修正程序文件命令格式:命令格式: MODIFY COMMAND MODIFY COMMAND ? ? MODIFY.FILE.MODIFY.FILE.文件名文件名? ? 功能:启动功能:启动VFPVFP提供的文本编辑器来建立或提供的文本编辑器来建立或编辑程序文件。编辑程序文件。2 2菜一方式建立编辑程序文件菜一方式建立编辑程序文件 第第9 9章章命令格式:命令格式
3、: DO DO 程序文件名程序文件名 功功 能能 : 将程序文件从磁盘调入内存将程序文件从磁盘调入内存, , 编译编译成成.FXP.FXP目的文件后并执行。目的文件后并执行。3.3.程序文件的执行程序文件的执行 菜一方式:菜一方式:.CANCEL.CANCEL:终止程序运转,去除一:终止程序运转,去除一切的私有变量,前往命令窗口。切的私有变量,前往命令窗口。.RETURN.RETURN:终了程序执行,前往调用它的上级:终了程序执行,前往调用它的上级程序,假设无上级程序那么前往命令窗口。程序,假设无上级程序那么前往命令窗口。.QUIT.QUIT:终了程序执行并退出:终了程序执行并退出Visual
4、.FoxProVisual.FoxPro系统,前往操作系统。系统,前往操作系统。 第第9 9章章9.2 顺序构造程序 顺序构造是最简单、最根本的一种程序构顺序构造是最简单、最根本的一种程序构造。在顺序构造程序中,各命令按照各自出造。在顺序构造程序中,各命令按照各自出现的先后顺序,依次执行。现的先后顺序,依次执行。第第9 9章章9.2.1 9.2.1 程序文件中的程序文件中的辅助命令辅助命令 一输入类语句一输入类语句 格格 式式1 1: STORE STORE 表达式表达式 TO TO 内存变量名表内存变量名表 格格 式式2 2: 内存变量内存变量 表达式表达式 功功 能:给内存变量赋值。能:给
5、内存变量赋值。. . 赋值语句赋值语句第第9 9章章. . 交互式语句交互式语句/ /键盘输入命令键盘输入命令 1. 1. 字符串数据输入命令字符串数据输入命令格式:格式: ACCEPT ACCEPT TO TO 功能:在屏幕上显示提示信息,等待用户从功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存键盘输入,再把输入内容赋值给指定的内存变量。变量。 注:注:ACCEPTACCEPT命令只能接受字符型常量,输入时不需加命令只能接受字符型常量,输入时不需加定界符。定界符。 键盘输入命令主要用于程序执行过程中原始数据的输入。键盘输入命令主要用于程序执行过程中原始数据的输入
6、。第第9 9章章例例9-1:要求用户从键盘上输入用户名,然后:要求用户从键盘上输入用户名,然后把输入的用户名显示出来。把输入的用户名显示出来。ACCEPT “请输入用户名:请输入用户名: TO NAME?NAME第第9 9章章格式:格式:INPUT INPUT TO TO 2. 2. 数据输入命令数据输入命令功能:在屏幕上显示提示信息,等待用户从键盘输入,功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。再把输入内容赋值给指定的内存变量。 注:注:INPUTINPUT命令能接受任何类型的表达式:命令能接受任何类型的表达式: 输入输入C C 型数据时,要运用型数据
7、时,要运用 或或 “ 作为定界符;作为定界符; 输入输入L L 型数据时,型数据时,.T. .T. 和和 .F. .F. ,两边的,两边的 . . 不不能省;能省; 输入输入D D 型数据时,要用型数据时,要用 或或CTOD( ) CTOD( ) 将字符串转将字符串转成日期型变量。成日期型变量。第第9 9章章例例9-2:求恣意两数之和。:求恣意两数之和。?X+YX+YINPUT INPUT “请输入另一个数请输入另一个数y y: TO Y TO YINPUT INPUT “请输入另一个数请输入另一个数x x: TO x TO x第第9 9章章 J=2800 J=2800 INPUT INPUT
8、 “输入输入 J+200 J+200 : TO A TO A ACCEPT ACCEPT “输入输入 J+200 J+200 : TO B TO B ?“A=A=,A A ? ? “B=B=,B B 注:执行时,先后两次输入同样的内容:注:执行时,先后两次输入同样的内容:J+200J+200例例9-39-3: 给出以下给出以下A A、B B的结果的结果第第9 9章章格式:格式:WAIT WAIT TO TO TIMEOUT TIMEOUT 3. 3. 只能输入一个字符的命令只能输入一个字符的命令功能:当程序执行某一处需求暂停时运用此命令。功能:当程序执行某一处需求暂停时运用此命令。 注:注:W
9、AIT命令呼应速度快,它只接受一个字符,不命令呼应速度快,它只接受一个字符,不需用户键入回车键。需用户键入回车键。第第9 9章章* * * * * 数据表操作命令菜单数据表操作命令菜单 * * * * *翻开任务数据表翻开任务数据表添加数据表记录添加数据表记录删除数据表记录删除数据表记录修正数据表记录修正数据表记录打印数据表记录打印数据表记录封锁任务数据表封锁任务数据表? “您选择的是第您选择的是第 + CHOICE + “个选项个选项WAIT “请选择相应代码:请选择相应代码: TO CHOICE例例9-4:第第9 9章章格式:格式: SAY SAY GET GET RANGE RANGE
10、1, 2 READ READ4. 4. 格式输入语句格式输入语句功能:在屏幕指定的坐标位置上显示提示或输入数据。功能:在屏幕指定的坐标位置上显示提示或输入数据。 READ 普通与普通与GET 结合起来用:结合起来用:当有当有READ时,时, GET 的内容可以从键盘上修正;的内容可以从键盘上修正;没有没有READ时,时,GET 后的变量只能显示内容,不能修正;后的变量只能显示内容,不能修正;一个一个READ可以修正它前面的多个可以修正它前面的多个GET项的内容,但它可以项的内容,但它可以由由CLEARGETS命令隔断。命令隔断。 注:注: :该变量应在其前面定义过:该变量应在其前面定义过 (
11、赋初值赋初值 ) 。第第9 9章章 8, 18 SAY “* 数据表操作命令菜单数据表操作命令菜单 * 9, 18 SAY “ 1.翻开任务数据表翻开任务数据表 10, 18 SAY “ 2. 添加数据表记录添加数据表记录 11, 18 SAY “ 3. 删除数据表记录删除数据表记录 12, 18 SAY “ 4. 修正数据表记录修正数据表记录 13, 18 SAY “ 5. 打印数据表记录打印数据表记录 14, 18 SAY “ 6. 封锁任务数据表封锁任务数据表 18, 28 SAY “您选择的是您选择的是: + LTRIM(STR(CHOICE) 16, 28 SAY “ 请选择相应代码
12、:请选择相应代码: GET CHOICEREAD例例9-5:第第9 9章章二输出类语句二输出类语句1. 1. 非格式输出语句非格式输出语句 格式格式1 1: ? 内存变量名表内存变量名表格式格式2: ? 内存变量名表内存变量名表注:语句注:语句1 1 是在光标所在行的下一行开场显示,是在光标所在行的下一行开场显示, 语句语句2 2 那么是在当前光标位置开场显示。那么是在当前光标位置开场显示。功功 能:显示内存变量、常量或表达式的值。能:显示内存变量、常量或表达式的值。第第9 9章章格式:格式: SAY SAY FUNCTION FUNCTION PICTURE PICTURE 2. 2. 格式
13、输出语句格式输出语句功能:按指定的坐标位置在屏幕上输出表达式的值。功能:按指定的坐标位置在屏幕上输出表达式的值。 注:注: 假设选用假设选用PICTURE、 FUNCTION子句,那么按一子句,那么按一定的格式输出定的格式输出 ,分别见教材,分别见教材P131的表的表6.1、6.2。第第9 9章章格式:格式: TEXT TEXT ENDTEXT ENDTEXT 3. 3. 文本输出语句文本输出语句功能:在屏幕上原样显示功能:在屏幕上原样显示TEXTTEXT和和ENDTEXTENDTEXT之间的内容。之间的内容。 注:注: TEXT、ENDTEXT是一条子句,不能省略其中任是一条子句,不能省略其
14、中任一条子句。一条子句。第第9 9章章* 数据表操作命令菜单数据表操作命令菜单 *翻开任务数据表翻开任务数据表添加数据表记录添加数据表记录删除数据表记录删除数据表记录修正数据表记录修正数据表记录打印数据表记录打印数据表记录封锁任务数据表封锁任务数据表? “您选择的是第您选择的是第 + CHOICE + “个选项个选项WAIT “请选择相应代码:请选择相应代码: TO CHOICE例例6-6TEXTENDTEXT第第9 9章章三三. . 设置会话形状语句设置会话形状语句语句格式语句格式2 2: SET TALK OFF SET TALK OFF功能功能 语句语句1 1:设置会话形状开通。:设置会
15、话形状开通。 语句语句2 2:设置会话形状封锁。:设置会话形状封锁。语句格式语句格式1 1: SET TALK ON SET TALK ON第第9 9章章四四. . 清屏与注释语句清屏与注释语句语句格式:语句格式: CLEAR CLEAR1. 1. 清屏语句清屏语句功功 能能 :去除屏幕上一切显示内容,光标回到屏幕左:去除屏幕上一切显示内容,光标回到屏幕左上角。上角。第第9 9章章2. 2. 注释语句注释语句语句格式语句格式2 2: * * 注:语句注:语句1 1、2 2、3 3 在程序中,系统不执行。在程序中,系统不执行。语句格式语句格式1 1: NOTE NOTE 功功 能能 : 在程序中
16、参与阐明性语句。在程序中参与阐明性语句。语句格式语句格式3 3: & & 第第9 9章章五五. RETURN. RETURN命令命令注:普通注:普通RETURNRETURN出现于程序末尾。出现于程序末尾。格式:格式: RETURN RETURN /TO MASTER/TO /TO MASTER/TO 功能功能 : 终了一个程序的执行。终了一个程序的执行。第第9 9章章六六. . 终止程序执行语句终止程序执行语句语句格式语句格式2 2: QUIT QUIT注注: : 语句语句1 1:在终止程序执行后,前往到:在终止程序执行后,前往到VFPVFP命令形状;命令形状; 语句语句2 2:前往到操作系统
17、形状。:前往到操作系统形状。语句格式语句格式1 1: CANCEL CANCEL功能:终止程序执行,封锁一切翻开的命令文件。功能:终止程序执行,封锁一切翻开的命令文件。第第9 9章章顺序构造程序:按语句的顺序构造程序:按语句的先后顺序组织的程序,即把处先后顺序组织的程序,即把处置过程的各个步骤按执行的先置过程的各个步骤按执行的先后顺序列出。后顺序列出。其流程图如右图所示。其流程图如右图所示。顺序构造程序设计顺序构造程序设计 A B C N图中箭头表示程序执行的图中箭头表示程序执行的方向,方框代表不同的可执行方向,方框代表不同的可执行语句。语句。 第第9 9章章例例9-7 变量的初始化和变量的赋
18、值。变量的初始化和变量的赋值。SET TALK OFF STORE 0 TO X,Y,ZA=3B=A+1C=A*B? X, Y, Z? A, B, CSET TALK ON 第第9 9章章例例9-8 执行以下命令序列,问答问题:执行以下命令序列,问答问题:最后显示的值是:最后显示的值是:一切职工的平均工资;一切职工的平均工资;一切工资在一切工资在10001000元以上的职元以上的职工的平均工资;工的平均工资;一切工资在一切工资在10001000元以上的职元以上的职工人数;工人数;一切职工人数一切职工人数 。USEUSEzgbzgbSUM SUM 根本工资根本工资 FOR FOR 根本工资根本工
19、资1000 TO SGZ1000 TO SGZCOPY FOR COPY FOR 根本工资根本工资1000 TO GZK21000 TO GZK2USE GZK2USE GZK2num=reccount( )num=reccount( )ave=sgz/numave=sgz/num? ave? ave第第9 9章章在计算机运用的许多场所,要求程序根据不同的在计算机运用的许多场所,要求程序根据不同的条件采用不同的处置方法。假设条件满足,那么执行条件采用不同的处置方法。假设条件满足,那么执行某一些语句;假设条件不满足,那么执行另一些语句某一些语句;假设条件不满足,那么执行另一些语句。这些需求根据判
20、别条件来控制程序走向的程序设计。这些需求根据判别条件来控制程序走向的程序设计称为选择构造程序设计,又称分支构造程序设计。称为选择构造程序设计,又称分支构造程序设计。Visual FoxProVisual FoxPro提供双分支选择语句、多分支选提供双分支选择语句、多分支选择语句两种选择构造。择语句两种选择构造。第第9 9章章 ENDIF后的语句语句序列语句序列1 1 ENDIF后的语句语句格式:语句格式:IF IF 条件条件 语句序列语句序列1 1ENDIF ENDIF 条件条件9.3.1 9.3.1 双分支选择语句双分支选择语句( (选择判别语句选择判别语句) ) 条件条件.T.F.语句序列
21、语句序列1 1.Y.N.语句序列语句序列2 2 ELSE ELSE 语句序列语句序列2 2 第第9 9章章注:注:(1) IF(1) IF和和ENDIFENDIF必需配对运用,而必需配对运用,而ELSEELSE可选。可选。(2) IF(2) IF、ELSEELSE、ENDIFENDIF必需各占一行。必需各占一行。(3) (3) 可以为关系表达式、逻辑表达式。可以为关系表达式、逻辑表达式。(4)(4)在语句序列在语句序列1 1和语句序列和语句序列2 2中可以嵌套中可以嵌套IFIF语句。语句。执行过程:执行过程:假设假设 成立,就执行语句序列成立,就执行语句序列1 1;假设假设 不成立,执行语句序
22、列不成立,执行语句序列2 2。 第第9 9章章例例 请改用分支构造语句编程计算电费请改用分支构造语句编程计算电费: : 不超越不超越5050度度, , 每度每度0.520.52元元; ; 超越超越5050度时度时, , 超出部分每度超出部分每度0.750.75元。元。SET TALK OFFSET TALK OFFINPUT INPUT “请输入所用电量请输入所用电量: TO DL: TO DLDF=IIFDF=IIFDL=50DL=50,0.520.52* *DLDL,0.520.52* *50+0.7550+0.75* *(DL-50)(DL-50)? ? “应缴电费为应缴电费为: : +
23、 LTRIM(STR(DF,10,2) + + LTRIM(STR(DF,10,2) + 元元 SET TALK ONSET TALK ONRETURN RETURN 第第9 9章章SET TALK OFF INPUT 请输入行李分量请输入行李分量: TO WIF 1 YF=0.22*W ELSE YF= 0.22*40 + 1ENDIF ? 应交托运费为应交托运费为:+LTRIM(STR(YF,10,2)+元元SET TALK ONRETURN 例例 火车托运转李火车托运转李: 每人不超越每人不超越40公斤公斤,每公斤每公斤0.22元;超越元;超越40公斤时公斤时, 超出部分每公斤超出部分每
24、公斤0.40元。填空完成以下程序。元。填空完成以下程序。W 40(W-40) * 0.4第第9 9章章SET TALK OFFSET TALK OFFSet defa to f:jfvfpprgSet defa to f:jfvfpprgUSE zgbUSE zgbACCEPT ACCEPT “请输入要查找人的姓名请输入要查找人的姓名: : TO N TO NLOCATE ALL FOR XM=NLOCATE ALL FOR XM=NIF FOUND( )IF FOUND( ) DISP DISP ELSE ELSE ? ? 查无此人查无此人 ENDIFENDIFUSEUSESET TALK
25、ONSET TALK ONRETURNRETURN例例 编程:在编程:在ZGB.DBF中查找某人。中查找某人。第第9 9章章9.3.2 9.3.2 多分支选择语句多分支选择语句( (选择语句选择语句| |情况语句情况语句) )阐明:阐明:DO CASEDO CASE和第一个和第一个CASECASE子句之间不能插入任何子句之间不能插入任何语句。语句。DO CASEDO CASE和和ENDCASEENDCASE必必需配对运用,且需配对运用,且DO CASEDO CASE,CASECASE,OTHERWISEOTHERWISE和和ENDCASEENDCASE各子句必需各占各子句必需各占一行。一行。在
26、语句序列中可在语句序列中可嵌套情况语句。嵌套情况语句。 语句格式语句格式: : DO CASE DO CASE CASE CASE 条件表达条件表达式式1 1 语语句序列句序列1 1 CASE CASE 条件表达条件表达式式2 2 语语句序列句序列2 2 CASE CASE 条件表达条件表达式式n n 语语句序列句序列n n OTHERWISE OTHERWISE 语语句序列句序列n+1n+1 ENDCASE ENDCASE 第第9 9章章功能:系统依次测试语句中各个条件表达式的值功能:系统依次测试语句中各个条件表达式的值: : 假设为真,假设为真,即执行相应条件表达式后的语句序列即执行相应条
27、件表达式后的语句序列, , 然后脱离情然后脱离情况语句况语句, ,执行执行ENDCASEENDCASE的下一语句。假设一切的条件表达式的的下一语句。假设一切的条件表达式的值均为假,那么执行值均为假,那么执行OTHERWISEOTHERWISE后面的语句序列后面的语句序列, , 然后脱离然后脱离情况语句情况语句, ,执行执行ENDCASEENDCASE下一语句下一语句 。 开场判别开场判别语句序列语句序列1 1序列序列2 2序列序列n n序列序列n+1n+1ENDCASEENDCASE后面的语句后面的语句条件条件1条件条件2条件条件n其它其它第第9 9章章例例 知知cjb.dbf中包含中包含xi
28、ngming,avcj等字段。试用等字段。试用avcj来判别来判别该生成果属于优该生成果属于优(90)、良、良(80)、及格、及格(60)或不及格或不及格(60)。USE cjbACCEPT 请输入姓名: TO xmLOCATE FOR ALLTRIM(xingming)=ALLTRIM(xm)navcj第第9 9章章DO CASE CASE n=90 dj=优 CASE n=80 dj=良 CASE n=60 dj=及格 OTHERWISE dj=不及格ENDCASE5,10 SAY xingming+同窗的成果等级为:+ dj第第9 9章章A=3000DO CASE CASE A=1000
29、 B=A CASE A=2000 B=2*A CASE A=3000 B=3*AENDCASE? B例例 阅读以下程序段,写出运转结果:阅读以下程序段,写出运转结果: 第第9 9章章Set talk offSet talk offSet defa to f:yyfoxSet defa to f:yyfoxclearclearcho=0cho=0 8, 18 SAY 8, 18 SAY “* * * * * 数据表操作命令菜单数据表操作命令菜单 * * * * * 9, 18 SAY 9, 18 SAY “ 1. 1. 翻开任翻开任务数据表务数据表 10, 18 SAY 10, 18 SAY “
30、 2. 2. 添加数据添加数据表记录表记录 11, 18 SAY 11, 18 SAY “ 3. 3. 删除数据删除数据表记录表记录 12, 18 SAY 12, 18 SAY “ 4. 4. 修正数据修正数据表记录表记录 14, 18 SAY 14, 18 SAY “ 5. 5. 封锁任务封锁任务数据表数据表 15, 28 SAY 15, 28 SAY “ 请选择相应代码:请选择相应代码: GET GET chochoReadReadDo caseDo case case cho=1 case cho=1 accept accept “请输入表文件名:请输入表文件名: to bm to bm
31、 use &bm use &bm例例 利用利用CASECASE语句实现简单的菜单功能语句实现简单的菜单功能 第第9 9章章 case cho=2 append case cho=3 input “请输入要删除的记录号:请输入要删除的记录号: to jlh go jlh dele case cho=4 browse case cho=5 use otherwise 15, 28 SAY “ 选择代码错选择代码错! endcaseSet talk on return第第9 9章章 循环,就是按给定的条件延续地反复执行一段特循环,就是按给定的条件延续地反复执行一段特定功能的程序。循环构造也称为反复构
32、造。定功能的程序。循环构造也称为反复构造。 Visual FoxPro给出了三种循环构造:给出了三种循环构造:条件循环条件循环DO WHILEENDDO计算循环计算循环FORENDFOR扫描循环扫描循环SCANENDSCAN第第9 9章章语句格式:语句格式: DO WHILE DO WHILE 1 LOOPLOOP 2 EXITEXIT 3 ENDDO ENDDO 循环体循环体 ENDDO后的语句条件条件.T.F.条件循环构造流程图条件循环构造流程图一、条件循环一、条件循环循环体循环体功能:有条件延续地反复执行功能:有条件延续地反复执行DO WHILEDO WHILE与与ENDDOENDDO之
33、间的语句序列,直到之间的语句序列,直到 为为假或因执行假或因执行EXITEXIT语句而终了。语句而终了。条件条件第第9 9章章2 2循环体中的循环体中的LOOPLOOP是可选项。遇到是可选项。遇到LOOPLOOP时,不再执行后面的语句,时,不再执行后面的语句,转回转回DO WHILEDO WHILE处重新判别。其作用相当于一个特殊的处重新判别。其作用相当于一个特殊的“短路前往控制。短路前往控制。3 3循环体中的循环体中的EXITEXIT也是可选项。遇到它时便无条件地退出循环,转也是可选项。遇到它时便无条件地退出循环,转到到ENDDOENDDO后面的语句。其作用相当于一个紧急出口。后面的语句。其
34、作用相当于一个紧急出口。4 4通常通常LOOPLOOP或或EXITEXIT出如今循环体内嵌套的分支语句中,根据条件来出如今循环体内嵌套的分支语句中,根据条件来决议是决议是LOOPLOOP回去,还是回去,还是EXITEXIT出去。出去。功能阐明:功能阐明:1 1系统执行该语句时,先判别循环开场系统执行该语句时,先判别循环开场DO WHILEDO WHILE的条件能否成立,的条件能否成立, 假设条件为真,那么执行循环体中的语句序列。当执行到假设条件为真,那么执行循环体中的语句序列。当执行到ENDDOENDDO时,前时,前往到往到DO WHILEDO WHILE,再次判别条件能否为真,以确定能否再次
35、执行循环体。,再次判别条件能否为真,以确定能否再次执行循环体。假设条件为假,那么终了循环假设条件为假,那么终了循环 ,执行,执行ENDDOENDDO后面的语句。后面的语句。 假设第一次假设第一次判别条件时,条件即为假,那么循环体一次都不执行,这就是称为判别条件时,条件即为假,那么循环体一次都不执行,这就是称为“先先判别后执行的语句。判别后执行的语句。第第9 9章章SET TALK OFF SET TALK ONRETURNCLEAR?OK?OK?OK例例 在屏幕上换行显示字符串在屏幕上换行显示字符串“OKOK2020次次第第9 9章章i=1? OKi=i+1ENDDODO WHILESET T
36、ALK OFF SET TALK ONRETURNCLEARi=20循环次数循环次数循环前循环前i值值循环后循环后i值值112223202021&设置循环变量初值&修正循环变量例例 在屏幕上换行显示字符串在屏幕上换行显示字符串OK20OK20次次? OK第第9 9章章 DO WHILE DO WHILE 语句之前一定要有设置循环变量初语句之前一定要有设置循环变量初 值的语句。值的语句。 在以循环变量作为循环控制参数的条件循环中在以循环变量作为循环控制参数的条件循环中 循环体内一定要有修正循环变量的语句,否那么循环体内一定要有修正循环变量的语句,否那么 就会出现死循环。就会出现死循环。留意留意第
37、第9 9章章例 求自然数1至4的和。 分析算法分析算法: :s= s+i ;s= s+i ;i= i+1 ;i= i+1 ;1. i=1 , s=0 ;1. i=1 , s=0 ;2. 2. 累加第累加第 i i 个数个数3. 3. 累加次数加累加次数加1 1 4. 4. 当当 i= 4 i= 4 反复做反复做2 2 ;5. ? s 5. ? s 。第第9 9章章例 求自然数1至4的和。 SET TALK OFFS=0 &定义一个变量表示和,并初始化&指定以循环次数作判别条件 S=S+i&把S的值加上i后再赋给S,即求和&修正循环变量i=1DO WHILE i=4i=i+1ENDDO? S&输
38、出求和的结果 SET TALK ON RETURN&设置循环变量的初值第第9 9章章程序流程图程序流程图S=0i=11=4S=0+1i=1+1.T.2=4S=1+2i=2+13=4S=3+3i=3+14=4S=6+4i= 4+15=4.F.? 10SET TALK OFFS=0i=1DO WHILE i=4 S=S+i i=i+1ENDDO? SSET TALK ONRETURN第第9 9章章 假设求自然数假设求自然数1 1至至N N的和呢?的和呢? 程序:求自然数1至4的和SET TALK OFFS=0 i=1INPUT INPUT 请输入请输入N N的值的值: : TO N TO N DO
39、 WHILE i=4 S=S+ii=i+1ENDDO?S SET TALK ON RETURNi=Ni=N第第9 9章章 假设求自然数假设求自然数1 1至至N N的积呢?的积呢? 程序:求自然数1至N的和SET TALK OFFS=0 i=1INPUT INPUT 请输入请输入N N的值的值: : TO N TO N DO WHILE i=N S =S + ii =i + 1ENDDO?S SET TALK ON RETURNS=1S=1S=SS=S* *i i第第9 9章章例例 阅读程序,并说出程序的运转结果阅读程序,并说出程序的运转结果IF i=3 LOOPENDIF程序结果程序结果234
40、56程序结果程序结果2456 RETURN SET TALK ONSET TALK OFFi=1DO WHILE i=5 i=i+1 ENDDO ? i? “EEE第第9 9章章例例 求求1100以内一切奇数的和。以内一切奇数的和。 SET TALK OFFS=0I=0Do while I100 I = I + 1 If int(I/2) = I/2 Loop endif S = S + IEnddo? “1到到100的奇数和的奇数和 S= , SSET TALK ONReturn以循环变量作为控以循环变量作为控制参数控制循环。制参数控制循环。S=0I=1Do while I 720 EXIT
41、ENDIF第第9 9章章例 求1,100内一切能被3或被5整除的数的个数。i=1DO WHILE i=100i=i+1ENDDO IF MOD(i,3)=0 .OR. MOD(i,5)=0N=N+1ENDIFN= 0&定义一个变量表示个数,并初始化&总个数添加1 SET TALK OFF? ? 满足条件的数的个数为满足条件的数的个数为,N,NSET TALK ON RETURN? i&显示满足条件的这个数第第9 9章章语句格式:语句格式: FOR XA TO B STEP C LOOP EXIT ENDFOR | NEXT 二、计数循环二、计数循环循环体循环体功能:将功能:将FORENDFOR
42、FORENDFOR循环中的循环中的 执行指定的次数。执行指定的次数。循环变量循环变量循环初值循环初值步长值步长值循环终值循环终值第第9 9章章例例 求求1100之和。之和。 SET TALK OFFSET TALK OFFClear Clear S=0S=0for I=1 to 100 for I=1 to 100 S = S + I S = S + IEndforEndfor? ? “S = S = , S, SSET TALK ONSET TALK ONReturnReturn 假设求假设求100100的阶乘呢?的阶乘呢?第第9 9章章例例 求求1100之奇数和。之奇数和。 SET TAL
43、K OFFSET TALK OFFClear Clear S=0S=0for I=1 to 100 step 2for I=1 to 100 step 2 S = S + I S = S + INext Next ? ? “S = S = , S, SSET TALK ONSET TALK ONReturnReturn 假设求假设求1 1100100的偶数和呢?的偶数和呢?第第9 9章章例例 阅读程序,写出程序运转结果阅读程序,写出程序运转结果 SET TALK ONSET TALK OFFS=0 FOR K=1 TO 10 STEP 2 S=S+K ENDFOR ? S RETURNIF K
44、=7LOOPENDIF思索思索3 3假设改成假设改成EXITEXIT呢?呢?第第9 9章章语句格式:语句格式: SCAN FOR LOOP EXIT ENDSCAN 三、表文件扫描循环三、表文件扫描循环循环体循环体功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。第第9 9章章SET TALK OFFSET TALK OFFUSE zgbUSE zgbACCEPT ACCEPT “请输入要查找人的姓名请输入要查找人的姓名: : TO N TO NSCAN FOR XM=N SCAN FOR XM=N DISP DISP
45、WAIT WAIT “按恣意键继续,按按恣意键继续,按ESCESC键退出键退出ENDSCANENDSCANUSEUSE?“查找终了查找终了SET TALK ONSET TALK ONRETURNRETURN例例 用用SCAN语句编程:在语句编程:在zgb.dbf中查找某人。中查找某人。第第9 9章章对数据表扫描时三种循环的等价钱式对数据表扫描时三种循环的等价钱式表文件扫描循环:表文件扫描循环: SCAN FOR ENDSCAN条件循环:条件循环: DO WHILE .NOT. EOF() DO WHILE .NOT. EOF()SKIPSKIP ENDDO ENDDO计数循环:计数循环: n=
46、RECCOUNT() n=RECCOUNT() FOR i=1 TO n FOR i=1 TO n GO i GO i ENDFOR ENDFOR第第9 9章章循环嵌套循环体内又设置循环的情况称为多重循环,又称为循环嵌循环体内又设置循环的情况称为多重循环,又称为循环嵌套。套。内外循环的层次必需清楚,不允许有交叉景象出现。内外循环的层次必需清楚,不允许有交叉景象出现。循环构造可以与分支构造嵌套,同样不允许有交叉景象出循环构造可以与分支构造嵌套,同样不允许有交叉景象出现。现。 以下交叉情形不允许出现:以下交叉情形不允许出现: F O R I F F O R S C A N D O W H I L
47、E D O C A S E E N D F O R E N D I F E N D F O R E N D S C A N E N D D O E N D C A S E 图6 . 7 嵌 套 不 允 许 交 叉 第第9 9章章例例 知知S1=1,S2=1+2,S3=1+2+3, Sn=1+2+3+N,编程求,编程求S1+S2+S100的和。的和。s=0n=1Do while n=100 i=1 sub=0 Do while i800S800时退出,求此时最小的时退出,求此时最小的S S值值!1!21!111ns4 4求求ny211321121115 5求求第第9 9章章9.5 程序的模块化
48、9.5.1 子程序、过程和函数 1.子程序(1).子程序的构造子程序与其他程序文件的独一区别是其末尾或前往处必需有前往语句。命令格式:RETURN.TO.MASTERTO.程序文件名表达式 第第9 9章章 (2). (2).子程序的调用子程序的调用 子程序调用命令与主程序执行命令一样,其格式都子程序调用命令与主程序执行命令一样,其格式都是:是:DODO程序文件名过程名程序文件名过程名WITH.WITH.参参数表数表(3).(3).子程序的嵌套调用子程序的嵌套调用 主程序可以调用子程序,子程序还可以调用另外的主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。实践上,子程
49、子程序,这就是子程序的嵌套调用。实践上,子程序和主程序都是相对的,任何一个程序可以调用其序和主程序都是相对的,任何一个程序可以调用其他程序,也可以被其他程序调用。每个被调用程序他程序,也可以被其他程序调用。每个被调用程序的末尾或前往处都要加上的末尾或前往处都要加上RETURNRETURN命令。命令。 第第9 9章章2.2.自定义函数自定义函数(1).(1).自定义函数的构造自定义函数的构造 FUNCTION.FUNCTION.函数名函数名PARAMETERS.PARAMETERS.参数表参数表命令组命令组 RETURN.RETURN.表达式表达式(2).(2).自定义函数的调用自定义函数的调用
50、 调用格式是:调用格式是: 函数名函数名( (自变量表自变量表) ) 第第9 9章章3.过程与过程文件(1).过程的构造 过程的普通格式是:PROCEDURE过程名PARAMETERS参数表命令组 RETURN (2).过程文件 一个过程可以以文件方式单独存在,也可以将多个过程合并到一个文件中,这个文件称为过程文件。在过程文件中,每个过程依然是独立的,可以单独调用。 第第9 9章章(3).(3).过程文件的翻开与封锁过程文件的翻开与封锁 翻开过程文件命令格式是:翻开过程文件命令格式是: SET.PROCEDURE.TO.SET.PROCEDURE.TO.过程文件名过程文件名封锁过程文件命令格式
51、是:封锁过程文件命令格式是:SET.PROCEDURE.TOSET.PROCEDURE.TO或者或者CLOSE.PROCEDURE CLOSE.PROCEDURE 第第9 9章章9.5.2 内存变量的作用域 1.1.全局内存变量全局内存变量定义全局变量的命令格式:定义全局变量的命令格式:命令格式命令格式1 1:PUBLICPUBLIC内存变量表内存变量表ALLALLALL LINKALL LINK通配符通配符ALL ALL EXCEPTEXCEPT通配符通配符命令格式命令格式2 2:PUBLIC.PUBLIC.ARRAYARRAY数组名数组名( (下标上界下标上界1 1, ,下标下标上界上界2 2) ), ,数组名数组名( (下标上界下标上界1 1, ,下标上界下标上界2 2),),功能:定义全局内存变量或数组。功能:定义全局内存变量或数组。 第第9 9章章2.2.部分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025上海市建筑安全员-C证考试(专职安全员)题库及答案
- 深圳技术大学《高分子材料助剂及配方设计》2023-2024学年第二学期期末试卷
- 河南信息统计职业学院《纳税筹划与实务》2023-2024学年第二学期期末试卷
- 2024-2025学年河南省开封市五县联考高二上学期第二次月考(期中)历史试卷
- 山西国际商务职业学院《给排水管道工程》2023-2024学年第二学期期末试卷
- 鹤壁能源化工职业学院《营养与食品卫生学2》2023-2024学年第二学期期末试卷
- 2025青海省建筑安全员-C证(专职安全员)考试题库
- 2025黑龙江省安全员B证考试题库及答案
- 福建卫生职业技术学院《组织胚胎学》2023-2024学年第二学期期末试卷
- 大连财经学院《VisualBasic程序设计》2023-2024学年第二学期期末试卷
- 高速公路改扩建工程路基标准化
- 水泥搅拌桩记录表格范本
- DL∕T 458-2020 板框式旋转滤网
- GB∕T 8163-2018 输送流体用无缝钢管
- Windows Azure云平台基本操作手册
- 短视频:策划制作与运营课件
- T∕ASC 17-2021 电动汽车充换电设施系统设计标准
- 水闸设计步骤计算书(多表)
- PowerPoint使用技巧培训课件(共35张)
- SMA沥青路面的设计与施工
- 肾内科相关基础知识学习教案
评论
0/150
提交评论