书签 分享 收藏 举报 版权申诉 / 80
上传文档赚钱

类型VFP程序设计课件7.ppt.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2775727
  • 上传时间:2022-05-25
  • 格式:PPT
  • 页数:80
  • 大小:485KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VFP程序设计课件7.ppt.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VFP 程序设计 课件 ppt
    资源描述:

    1、 VFPFP提供一种程序执行方式,这种方式就是预先把提供一种程序执行方式,这种方式就是预先把需要执行的多条命令按一定的结构组成一个有机序列以需要执行的多条命令按一定的结构组成一个有机序列以文件的形式存储在磁盘上,这个文件就称为文件的形式存储在磁盘上,这个文件就称为程序文件程序文件,这个序列的设计、编码和调试的过程就是这个序列的设计、编码和调试的过程就是程序设计程序设计。9.1 程序设计基础程序设计基础 9.1.1 9.1.1 程序设计的概念程序设计的概念 9.1.2 9.1.2 程序的控制结构程序的控制结构 任何复杂的程序都由3种基本控制结构组成。它们是顺序结构、选择结构和循环结构。 图9.1

    2、程序的控制结构 9.1.3 9.1.3 结构化程序设计方法结构化程序设计方法 结构化程序设计采用自顶向下、逐步求精和模块化的分析方法。 自顶向下是指对设计的系统要有一个全面的理解,从问题的全局入手,把一个复杂问题分解成若干个相互独立的子问题 。逐步求精是指程序设计的过程是一个渐进的过程,先把一个子问题用一个程序模块来描述,再把每个模块的功能逐步分解细化为一系列的具体步骤 。模块化是结构化程序的重要原则。所谓模块化就是把大程序按照功能分为较小的程序。 9.1.4 9.1.4 程序文件的建立与执行程序文件的建立与执行 1 1命令方式建立或修改程序文件命令方式建立或修改程序文件命令格式:命令格式:

    3、MODIFY COMMAND MODIFY COMMAND ? MODIFY.FILE.文件名文件名? 功能:启动功能:启动VFPVFP提供的文本编辑器来建立或编辑程序提供的文本编辑器来建立或编辑程序文件。文件。2 2菜单方式建立编辑程序文件菜单方式建立编辑程序文件 命令格式:命令格式: DODO 程序文件名程序文件名 功功 能能 : 将程序文件从磁盘调入内存将程序文件从磁盘调入内存, , 编译成编译成.FXP.FXP目目标文件后并执行标文件后并执行。3.3.程序文件的执行程序文件的执行 菜单方式:菜单方式:. .CANCELCANCEL:终止程序运行,清除所有的私:终止程序运行,清除所有的私

    4、有变量,返回命令窗口。有变量,返回命令窗口。. .RETURNRETURN:结束程序执行,返回调用它的上级程序,:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口。若无上级程序则返回命令窗口。. .QUITQUIT:结束程序执行并退出:结束程序执行并退出Visual.FoxProVisual.FoxPro系统,返系统,返回操作系统。回操作系统。 9.2 9.2 顺序结构程序顺序结构程序 顺序结构是最简单、最基本的一种程序结构。在顺序结构程序中,各命令按照各自出现的先后顺序,依次执行。 9.2.1 9.2.1 程序文件中的辅助命令程序文件中的辅助命令 一输入类语句一输入类语句 格格

    5、 式式1 1: STORESTORE 表达式表达式 TOTO 内存变量名表内存变量名表 格格 式式2 2: 内存变量内存变量 表达式表达式 功功 能:给内存变量赋值。能:给内存变量赋值。. . 赋值语句赋值语句. . 交互式语句交互式语句/ /键盘输入命令键盘输入命令 1. 1. 字符串数据输入命令字符串数据输入命令格式:格式: ACCEPTACCEPT TOTO 功能:在屏幕上显示提示信息,等待用户从键盘输入,功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。再把输入内容赋值给指定的内存变量。 注:注:ACCEPTACCEPT命令只能接受字符型常量,输入时不需

    6、加命令只能接受字符型常量,输入时不需加定界符。定界符。 键盘输入命令主要用于程序执行过程中原始数据的输入键盘输入命令主要用于程序执行过程中原始数据的输入。例例9-1:要求用户从键盘上输入用户名,然后把输入的要求用户从键盘上输入用户名,然后把输入的用户名显示出来。用户名显示出来。ACCEPT “请输入用户名:请输入用户名:” TO NAME?NAME格式:格式:INPUTINPUT TO TO 2. 2. 数据输入命令数据输入命令功能:在屏幕上显示提示信息,等待用户从键盘输入,功能:在屏幕上显示提示信息,等待用户从键盘输入,再把输入内容赋值给指定的内存变量。再把输入内容赋值给指定的内存变量。 注

    7、:注:INPUTINPUT命令能接受任何类型的表达式:命令能接受任何类型的表达式: 输入输入C 型数据时,要使用型数据时,要使用 或或 “ ” 作为定界符;作为定界符; 输入输入L 型数据时,型数据时,.T. 和和 .F. ,两边的,两边的 . 不能省;不能省; 输入输入D 型数据时,要用型数据时,要用 或或CTOD( ) 将字符串转成将字符串转成日期型变量。日期型变量。例例9-2:求任意两数之和。求任意两数之和。INPUT “INPUT “请输入一个数请输入一个数x x:” ” TO XTO X?X+YX+YINPUT “INPUT “请输入另一个数请输入另一个数y y:” ” TO YTO

    8、 Y J=2800 J=2800 INPUT INPUT “输入输入 J+200 J+200 :” ” TOTO A A ACCEPTACCEPT “ “输入输入 J+200 J+200 :” ” TOTO B B ?“A=”A=”,A A ? “B=” ? “B=”,B B 注:注:执行时,先后两次输入同样的内容:执行时,先后两次输入同样的内容:J+200J+200例例9-39-3: 给出下列给出下列A A、B B的结果的结果格式:格式:WAITWAIT TO TO TIMEOUT TIMEOUT 3. 3. 只能输入一个字符的命令只能输入一个字符的命令功能:当程序执行某一处需要暂停时使用此

    9、命令。功能:当程序执行某一处需要暂停时使用此命令。 注:注:WAIT命令响应速度快,它只接受一个字符,不命令响应速度快,它只接受一个字符,不需用户键入回车键。需用户键入回车键。* * * * * 数据表操作命令菜单数据表操作命令菜单 * * * * *1.1. 打开工作数据表打开工作数据表2.2. 增加数据表记录增加数据表记录3.3. 删除数据表记录删除数据表记录4.4. 修改数据表记录修改数据表记录5.5. 打印数据表记录打印数据表记录6.6. 关闭工作数据表关闭工作数据表? “您选择的是第您选择的是第” + CHOICE + “个选项个选项”WAIT “请选择相应代码:请选择相应代码:”

    10、TO CHOICE例例9-4:格式:格式: SAYSAY GET GET RANGERANGE 1, 2 READREAD4. 4. 格式输入语句格式输入语句功能:在屏幕指定的坐标位置上显示提示或输入数据。功能:在屏幕指定的坐标位置上显示提示或输入数据。 READ 一般与一般与GET 联合起来用:联合起来用:当有当有READ时,时, GET 的内容可以从键盘上修改;的内容可以从键盘上修改;没有没有READ时,时,GET 后的变量只能显示内容,不能修改;后的变量只能显示内容,不能修改;一个一个READ可以修改它前面的多个可以修改它前面的多个GET项的内容,但它可以项的内容,但它可以由由CLEAR

    11、GETS命令隔断。命令隔断。 注:注: :该变量应在其前面定义过:该变量应在其前面定义过 ( 赋初值赋初值 ) 。 8, 18 SAY “* 数据表操作命令菜单数据表操作命令菜单 *” 9, 18 SAY “ 1.1.打开工作数据表打开工作数据表 ” 10, 18 SAY “ 2. 增加数据表记录增加数据表记录 ” 11, 18 SAY “ 3. 删除数据表记录删除数据表记录 ” 12, 18 SAY “ 4. 修改数据表记录修改数据表记录 ” 13, 18 SAY “ 5. 打印数据表记录打印数据表记录 ” 14, 18 SAY “ 6. 关闭工作数据表关闭工作数据表 ” 18, 28 SA

    12、Y “您选择的是您选择的是:” + LTRIM(STR(CHOICE) 16, 28 SAY “ 请选择相应代码:请选择相应代码:” GET CHOICEREAD例例9-5:二输出类语句二输出类语句1. 1. 非格式输出语句非格式输出语句 格式格式1 1: ? 内存变量名表内存变量名表格式格式2: ? 内存变量名表内存变量名表注:注:语句语句1 1 是在光标所在行的下一行开始显示,是在光标所在行的下一行开始显示, 语句语句2 2 则是在当前光标位置开始显示。则是在当前光标位置开始显示。功功 能:显示内存变量、常量或表达式的值。能:显示内存变量、常量或表达式的值。格式:格式: SAYSAY FU

    13、NCTIONFUNCTION PICTUREPICTURE 2. 2. 格式输出语句格式输出语句功能:按指定的坐标位置在屏幕上输出表达式的值。功能:按指定的坐标位置在屏幕上输出表达式的值。 注:注: 若选用若选用PICTUREPICTURE、 FUNCTIONFUNCTION子句,则按一定的格式子句,则按一定的格式输出输出 ,分别见教材,分别见教材P131P131的表的表6.16.1、6.26.2。格式:格式: TEXTTEXT ENDTEXT ENDTEXT 3. 3. 文本输出语句文本输出语句功能:在屏幕上原样显示功能:在屏幕上原样显示TEXTTEXT和和ENDTEXTENDTEXT之间的

    14、内容。之间的内容。 注:注: TEXTTEXT、ENDTEXTENDTEXT是一条子句,不能省略其中任一条是一条子句,不能省略其中任一条子句子句。* 数据表操作命令菜单数据表操作命令菜单 * * * * *1.1. 打开工作数据表打开工作数据表2.2. 增加数据表记录增加数据表记录3.3. 删除数据表记录删除数据表记录4.4. 修改数据表记录修改数据表记录5.5. 打印数据表记录打印数据表记录6.6. 关闭工作数据表关闭工作数据表? “您选择的是第您选择的是第” + CHOICE + “个选项个选项”WAIT “请选择相应代码:请选择相应代码:” TO CHOICE例例6-6TEXTENDTE

    15、XT三三. . 设置会话状态语句设置会话状态语句语句格式语句格式2 2: SET TALK OFFSET TALK OFF功能功能 语句语句1 1:设置会话状态开通。:设置会话状态开通。 语句语句2 2:设置会话状态关闭。:设置会话状态关闭。语句格式语句格式1 1: SET TALK ONSET TALK ON四四. . 清屏与注释语句清屏与注释语句语句格式:语句格式: CLEARCLEAR1. 1. 清屏语句清屏语句功功 能能 :清除屏幕上所有显示内容,光标回到屏幕左:清除屏幕上所有显示内容,光标回到屏幕左上角上角。2. 2. 注释语句注释语句语句格式语句格式2 2: * * 注:注:语句语

    16、句1 1、2 2、3 3 在程序中,系统不执行。在程序中,系统不执行。语句格式语句格式1 1: NOTE NOTE 功功 能能 : 在程序中加入说明性语句。在程序中加入说明性语句。语句格式语句格式3 3: & 五五. . RETURNRETURN命令命令注:注:一般一般RETURNRETURN出现于程序末尾。出现于程序末尾。格式:格式: RETURN RETURN /TO MASTER/TO /TO MASTER/TO 功能功能 : 结束一个程序的执行。结束一个程序的执行。六六. . 终止程序执行语句终止程序执行语句语句格式语句格式2 2: QUITQUIT注注: : 语句语句1 1:在终止程

    17、序执行后,返回到:在终止程序执行后,返回到VFPVFP命令状态;命令状态; 语句语句2 2:返回到操作系统状态。:返回到操作系统状态。语句格式语句格式1 1: CANCELCANCEL功能:终止程序执行,关闭所有打开的命令文件。功能:终止程序执行,关闭所有打开的命令文件。顺序结构程序顺序结构程序:按语句的:按语句的先后顺序组织的程序,即把处先后顺序组织的程序,即把处理过程的各个步骤按执行的先理过程的各个步骤按执行的先后顺序列出。后顺序列出。其流程图如右图所示。其流程图如右图所示。顺序结构程序设计顺序结构程序设计 A B C N图中箭头表示程序执行的图中箭头表示程序执行的方向,方框代表不同的可执

    18、行方向,方框代表不同的可执行语句。语句。 例例9-7 变量的初始化和变量的赋值变量的初始化和变量的赋值。SET TALK OFF STORE 0 TO X,Y,ZA=3B=A+1C=A*B? X, Y, Z? A, B, CSET TALK ON 例例9-8 执行以下命令序列,问答问题:执行以下命令序列,问答问题:最后显示的值是:最后显示的值是:A.A. 所有职工的平均工资;所有职工的平均工资;B.B. 所有工资在所有工资在10001000元以元以上的职工的平均工资;上的职工的平均工资;C.C. 所有工资在所有工资在10001000元以元以上的职工人数;上的职工人数;D.D. 所有职工人数所有

    19、职工人数 。USEUSEzgbzgbSUM SUM 基本工资基本工资 FOR FOR 基本工资基本工资1000 1000 TO TO SGZSGZCOPY FOR COPY FOR 基本工资基本工资1000 1000 TO GZK2TO GZK2USE GZK2USE GZK2num=reccountnum=reccount( )( )ave=sgzave=sgz/num/num? ave? ave在计算机应用的许多场合,要求程序根据不同的在计算机应用的许多场合,要求程序根据不同的条件采用不同的处理方法。如果条件满足,则执行某条件采用不同的处理方法。如果条件满足,则执行某一些语句;如果条件不满

    20、足,则执行另一些语句。这一些语句;如果条件不满足,则执行另一些语句。这些需要根据判断条件来控制程序走向的程序设计称为些需要根据判断条件来控制程序走向的程序设计称为选择结构选择结构程序设计,又称程序设计,又称分支结构分支结构程序设计。程序设计。Visual FoxProVisual FoxPro提供提供双分支选择语句双分支选择语句、多分支选多分支选择语句择语句两种选择结构。两种选择结构。 ENDIFENDIF后的语句后的语句语句序列语句序列1 1 ENDIFENDIF后的语句后的语句语句格式:语句格式:IFIF 条件条件 语句序列语句序列1 1ENDIFENDIF 条件条件9.3.1 9.3.1

    21、 双分支选择语句双分支选择语句( (选择判断语句选择判断语句) ) 条件条件.T.F.语句序列语句序列1 1.Y.N.语句序列语句序列2 2 ELSEELSE 语句序列语句序列2 2 注:注:(1) IF和ENDIF必须配对使用,而ELSE可选。(2) IF、ELSE、ENDIF必须各占一行。(3) 可以为关系表达式、逻辑表达式。(4)在语句序列1和语句序列2中可以嵌套IF语句。执行过程执行过程:如果成立,就执行语句序列1;如果不成立,执行语句序列2。 例例 请改用分支结构语句编程计算电费请改用分支结构语句编程计算电费: : 不超过不超过5050度度, , 每度每度0.520.52元元; ;

    22、超过超过5050度时度时, , 超出部分每度超出部分每度0.750.75元。元。SET TALK OFFSET TALK OFFINPUT “INPUT “请输入所用电量请输入所用电量: : TO DLTO DLDF=DF=IIFIIF(DL=50DL=50,0.520.52* *DLDL,0.520.52* *50+0.7550+0.75* *(DL-50)(DL-50))? “? “应缴电费为应缴电费为:” + LTRIM(STR(DF,10,2) + :” + LTRIM(STR(DF,10,2) + 元元 SET TALK ONSET TALK ONRETURN RETURN SET

    23、TALK OFF INPUT 请输入行李重量请输入行李重量: TO WIF 1 YF=0.22*W ELSE YF= 0.22*40 + 1ENDIF ? 应交托运费为应交托运费为:+LTRIM(STR(YF,10,2)+元元SET TALK ONRETURN 例例 火车托运行李火车托运行李: : 每人不超过每人不超过4040公斤公斤, ,每公斤每公斤0.220.22元;超过元;超过4040公斤时公斤时, , 超出部分每公斤超出部分每公斤0.400.40元。填空完成以下程序。元。填空完成以下程序。W 40(W-40) * 0.4SET SET TALK OFF TALK OFFSet defa

    24、 to f:jfvfpprgSet defa to f:jfvfpprgUSE zgbUSE zgbACCEPT “ACCEPT “请输入要查找人的姓名请输入要查找人的姓名: ” : ” TO NTO NLOCATE ALL FOR XM=NLOCATE ALL FOR XM=NIFIF FOUND( ) FOUND( ) DISPDISP ELSEELSE ? ? 查无此人查无此人 ENDIFENDIFUSEUSESET TALK ONSET TALK ONRETURNRETURN例例 编程:在编程:在ZGB.DBFZGB.DBF中查找某人。中查找某人。9.3.2 9.3.2 多分支选择语句

    25、多分支选择语句( (选择语句选择语句| |情况语句情况语句) )说明说明:DO CASEDO CASE和第一个和第一个CASECASE子句之间不能插入任何子句之间不能插入任何语句。语句。DO CASEDO CASE和和ENDCASEENDCASE必必须配对使用,且须配对使用,且DO CASEDO CASE,CASECASE,OTHERWISEOTHERWISE和和ENDCASEENDCASE各子句必须各占各子句必须各占一行。一行。在语句序列中可在语句序列中可嵌套情况语句。嵌套情况语句。 语句格式语句格式: : DO CASE DO CASE CASECASE 条件表达式条件表达式1 1 语句序

    26、列语句序列1 1 CASECASE 条件表达式条件表达式2 2 语句序列语句序列2 2 CASECASE 条件表达式条件表达式n n 语句序列语句序列n n OTHERWISEOTHERWISE 语句序列语句序列n+1n+1 ENDCASEENDCASE 功能:系统依次测试语句中各个条件表达式的值功能:系统依次测试语句中各个条件表达式的值: : 若为真,若为真,即执行相应条件表达式后的语句序列即执行相应条件表达式后的语句序列, , 然后脱离情然后脱离情况语句况语句, ,执行执行ENDCASEENDCASE的下一语句。若所有的条件表达式的值的下一语句。若所有的条件表达式的值均为假,则执行均为假,

    27、则执行OTHERWISEOTHERWISE后面的语句序列后面的语句序列, , 然后脱离情况然后脱离情况语句语句, ,执行执行ENDCASEENDCASE下一语句下一语句 。 开始判断开始判断语句序列语句序列1 1序列序列2 2序列序列n n序列序列n+1n+1ENDCASEENDCASE后面的语句后面的语句条件条件1条件条件2条件条件n其它其它例例 已知cjb.dbf中包含xingming,avcj等字段。试用avcj来判断该生成绩属于优(90)、良(80)、及格(60)或不及格(60)。USE cjbACCEPT 请输入姓名: TO xmLOCATE FOR ALLTRIM(xingming

    28、)=ALLTRIM(xm)navcjDO CASE CASE n=90 dj=优 CASE n=80 dj=良 CASE n=60 dj=及格 OTHERWISE dj=不及格ENDCASE5,10 SAY xingming+同学的成绩等级为:+ djA=3000A=3000DO CASEDO CASE CASECASE A1000 A=1000 A=1000 B=A B=A CASECASE A=2000 A=2000 B=2 B=2* *A A CASE CASE A=3000 A=3000 B=3 B=3* *A AENDCASEENDCASE? B? B例例 阅读下列程序段,写出运行结

    29、果: Set talk offSet talk offSet defa to f:yyfoxSet defa to f:yyfoxclearclearchocho=0=0 8, 18 SAY “* 数据表操作命令菜单数据表操作命令菜单 *” 9, 18 SAY “ 1. 打开工作数据表打开工作数据表 ” 10, 18 SAY “ 2. 增加数据表记录增加数据表记录 ” 11, 18 SAY “ 3. 删除数据表记录删除数据表记录 ” 12, 18 SAY “ 4. 修改数据表记录修改数据表记录 ” 14, 18 SAY “ 5. 关闭工作数据表关闭工作数据表 ” 15, 28 SAY “ 请选

    30、择相应代码:请选择相应代码:” GET choReadDo case case cho=1 accept “请输入表文件名请输入表文件名:” to bm use &bm例例 利用利用CASECASE语句实现简单的菜单功能语句实现简单的菜单功能 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 “ 15, 28 SAY “ 选择代码错选择代码错! !” endcaseSet talk

    31、on return 循环,就是按给定的条件连续地重复执行一段特循环,就是按给定的条件连续地重复执行一段特定功能的程序。循环结构也称为重复结构。定功能的程序。循环结构也称为重复结构。 Visual FoxProVisual FoxPro给出了三种循环结构:给出了三种循环结构:条件循环条件循环(DO WHILEDO WHILEENDDOENDDO)计算循环计算循环(FORFORENDFORENDFOR)扫描循环扫描循环(SCANSCANENDSCANENDSCAN)语句格式:语句格式: DO WHILE DO WHILE LOOPLOOP EXITEXIT ENDDOENDDO 循环体循环体 EN

    32、DDOENDDO后的语句后的语句条件条件.T.F.条件循环结构流程图条件循环结构流程图一、条件循环一、条件循环循环体循环体功能:有条件连续地重复执行功能:有条件连续地重复执行DO WHILEDO WHILE与与ENDDOENDDO之间的语句序列,直到之间的语句序列,直到 为为假或因执行假或因执行EXITEXIT语句而结束。语句而结束。条件条件(2 2)循环体中的)循环体中的LOOPLOOP是可选项。遇到是可选项。遇到LOOPLOOP时,不再执行后面的语句,时,不再执行后面的语句,转回转回DO WHILEDO WHILE处重新判断。其作用相当于一个特殊的处重新判断。其作用相当于一个特殊的“短路短

    33、路”返回控返回控制。制。(3 3)循环体中的)循环体中的EXITEXIT也是可选项。遇到它时便无条件地退出循环,转也是可选项。遇到它时便无条件地退出循环,转到到ENDDOENDDO后面的语句。其作用相当于一个紧急出口。后面的语句。其作用相当于一个紧急出口。(4 4)通常)通常LOOPLOOP或或EXITEXIT出现在循环体内嵌套的分支语句中,根据条件来出现在循环体内嵌套的分支语句中,根据条件来决定是决定是LOOPLOOP回去,还是回去,还是EXITEXIT出去。出去。功能说明:功能说明:(1 1)系统执行该语句时,先判断循环开始)系统执行该语句时,先判断循环开始DO WHILEDO WHILE

    34、的条件是否成立,的条件是否成立, 如果条件为真,则执行循环体中的语句序列。当执行到如果条件为真,则执行循环体中的语句序列。当执行到ENDDOENDDO时,返回时,返回到到DO WHILEDO WHILE,再次判断条件是否为真,以确定是否再次执行循环体。,再次判断条件是否为真,以确定是否再次执行循环体。若条件为假,则结束循环若条件为假,则结束循环 ,执行,执行ENDDOENDDO后面的语句。后面的语句。 如果第一次判断如果第一次判断条件时,条件即为假,则循环体一次都不执行,这就是称为条件时,条件即为假,则循环体一次都不执行,这就是称为“先判断先判断后执行后执行”的语句。的语句。SET TALK

    35、OFF SET TALK ONRETURNCLEAR?OK?OK?OK例例 在屏幕上换行显示字符串在屏幕上换行显示字符串“OK”20OK”20次次i=1? OKi=i+1ENDDODO WHILESET TALK OFF SET TALK ONRETURNCLEARi=20循环次数循环次数循环前循环前i值值循环后循环后i值值112223202021&设置循环变量初值&修改循环变量例例 在屏幕上换行显示字符串在屏幕上换行显示字符串OK20OK20次次? OK DO WHILE DO WHILE 语句之前一定要有语句之前一定要有设置循环变量初设置循环变量初 值值的语句。的语句。 在以循环变量作为循

    36、环控制参数的条件循环中在以循环变量作为循环控制参数的条件循环中 循环体内一定要有循环体内一定要有修改循环变量修改循环变量的语句,否则的语句,否则 就会出现就会出现死循环死循环。注意注意例例 求自然数求自然数1 1至至4 4的和。的和。 分析算法分析算法: :s= s+i s= s+i ; ;i= i+1 i= i+1 ; ;1. 1. i=1 , s=0 i=1 , s=0 ; ;2.2. 累加第累加第 i i 个数个数3.3. 累加次数加累加次数加1 1 4.4. 当当 i= 4 i= 4 重复做重复做2 2 ;5.5. ? s ? s 。例例 求自然数求自然数1 1至至4 4的和。的和。

    37、SET TALK OFFS=0 &定义一个变量表示和,并初始化&指定以循环次数作判断条件 S=S+i&把S的值加上i后再赋给S,即求和&修改循环变量i=1DO WHILE i=4i=i+1ENDDO? S&输出求和的结果 SET TALK ON RETURN&设置循环变量的初值程序流程图程序流程图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 若求自然数若求自然数1

    38、 1至至N N的和呢?的和呢? 程序程序: :求自然数求自然数1 1至至4 4的和的和 SET TALK OFFS=0 i=1INPUT INPUT 请输入请输入N N的值的值: : TO N TO N DO WHILE i=4 S=S+ii=i+1ENDDO?S SET TALK ON RETURNi=Ni=N推广推广1 若求自然数若求自然数1 1至至N N的积呢?的积呢? 程序程序: :求自然数求自然数1 1至至N N的和的和 SET TALK OFFS=0 i=1INPUT INPUT 请输入请输入N N的值的值: : TO N TO N DO WHILE i=N S =S + ii =

    39、i + 1ENDDO?S SET TALK ON RETURN推广推广2S=1S=1S=SS=S* *i i例例 阅读程序,并说出程序的运行结果阅读程序,并说出程序的运行结果IF i=3 LOOPENDIF程序结果程序结果23456程序结果程序结果2456 RETURN SET TALK ONSET TALK OFFi=1DO WHILE i=5 i=i+1 ENDDO ? i? “E”EE例例 求求1100以内所有奇数的和。以内所有奇数的和。 SET TALK OFFS=0I=0Do while I100 I = I + 1 If int(I/2) = I/2 Loop endif S =

    40、S + IEnddo? “1 1到到100100的奇数和的奇数和 S= ”, SSET TALK ONReturn以循环变量作为控以循环变量作为控制参数控制循环。制参数控制循环。S=0I=1Do while I 720 EXITENDIF例例 求求1,1001,100内所有能被内所有能被3 3或被或被5 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? ? 满足条件的数的个数为满足条件的数的个数

    41、为, ,N NSET TALK ON RETURN? i&显示满足条件的这个数语句格式语句格式: FOR X XA A TO B B STEP C C LOOP EXIT ENDFOR | NEXT 二、计数循环二、计数循环循环体循环体功能:将功能:将FORFORENDFORENDFOR循环中的循环中的 执行指定的次数。执行指定的次数。循环变量循环变量循环初值循环初值步长值步长值循环终值循环终值例例 求求1100之和。之和。 SET TALK OFFSET TALK OFFClear Clear S=0S=0forfor I=1 I=1 toto 100 100 S = S + IS = S

    42、+ IEndforEndfor? “S = ”, S? “S = ”, SSET TALK ONSET TALK ONReturnReturn 若求若求100100的阶乘呢?的阶乘呢?思考思考1例例 求求1100之奇数和。之奇数和。 SET TALK OFFSET TALK OFFClear Clear S=0S=0forfor I=1 I=1 to to 100 100 stepstep 2 2 S = S + IS = S + INext Next ? “S = ”, S? “S = ”, SSET TALK ONSET TALK ONReturnReturn 若求若求1 1100100的

    43、偶数和呢?的偶数和呢?思考思考2例例 阅读程序,写出程序运行结果阅读程序,写出程序运行结果 SET TALK ONSET TALK OFFS=0 FOR K=1 TO 10 STEP 2 S=S+K ENDFOR ? S RETURNIF K=7LOOPENDIF思考思考3 3若改成若改成EXITEXIT呢?呢?语句格式语句格式: SCAN FOR LOOP EXIT ENDSCAN 三、表文件扫描循环三、表文件扫描循环循环体循环体功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。功能:在指定的范围内,扫描满足给定条件的记录,执行相应的语句。SET SET TALK OFF TAL

    44、K OFFUSE zgbUSE zgbACCEPT “ACCEPT “请输入要查找人的姓名请输入要查找人的姓名: ” : ” TO NTO NSCAN SCAN FOR XM=N FOR XM=N DISPDISP WAIT “ WAIT “按任意键继续,按按任意键继续,按ESCESC键退出键退出”ENDSCANENDSCANUSEUSE?“查找结束查找结束”SET TALK ONSET TALK ONRETURNRETURN例例 用用SCANSCAN语句语句编程:在编程:在zgb.dbf中查找某人。中查找某人。对数据表扫描时三种循环的等价格式对数据表扫描时三种循环的等价格式表文件扫描循环表文

    45、件扫描循环: SCAN FOR ENDSCAN条件循环条件循环: DO WHILEDO WHILE .NOT. EOF() .NOT. EOF()SKIPSKIP ENDDO ENDDO计数循环计数循环: n=RECCOUNT()n=RECCOUNT() FOR i=1 TO n FOR i=1 TO n GO i GO i ENDFOR ENDFOR循环嵌套循环嵌套 循环体内又设置循环的情况称为多重循环,又称为循环嵌套。 内外循环的层次必须分明,不允许有交叉现象出现。 循环结构可以与分支结构嵌套,同样不允许有交叉现象出现。 以下交叉情形不允许出现:以下交叉情形不允许出现: FOR IF FO

    46、R SCAN DO WHILE DO CASE ENDFOR ENDIF ENDFOR ENDSCAN ENDDO ENDCASE 图6.7 嵌套不允许交叉 例例 已知已知S S1 1=1=1,S S2 2=1+2=1+2,S S3 3=1+2+3=1+2+3, S Sn n=1+2+3+=1+2+3+N+N,编程求,编程求S S1 1+S+S2 2+ +S+S100100的和。的和。s=0n=1Do while n=100 i=1 sub=0 Do while i800S800时退出,求此时最小的时退出,求此时最小的S S值值!1!21!111ns(4 4)求)求ny21132112111(

    47、5 5)求)求9.5 9.5 程序的模块化程序的模块化 9.5.1 9.5.1 子程序、过程和函数子程序、过程和函数 1.子程序(1).子程序的结构子程序与其他程序文件的惟一区别是其末尾或返回处必须有返回语句。命令格式:RETURN.RETURN.TO.MASTERTO.MASTERTO.TO.程序文程序文件名表达式件名表达式 (2).子程序的调用 子程序调用命令与主程序执行命令相同,其格式都是:DODO程序文件名过程名程序文件名过程名WITH.WITH.参参数表数表(3).子程序的嵌套调用 主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。实际上,子程序和主程序都是

    48、相对的,任何一个程序可以调用其他程序,也可以被其他程序调用。每个被调用程序的末尾或返回处都要加上RETURN命令。 2.自定义函数(1).自定义函数的结构 FUNCTION.FUNCTION.函数名函数名PARAMETERS.PARAMETERS.参数表参数表命令组命令组 RETURN.RETURN.表达式表达式(2).自定义函数的调用 调用格式是: 函数名函数名( (自变量表自变量表) ) 3.3.过程与过程文件过程与过程文件(1).(1).过程的结构过程的结构 过程的一般格式是:过程的一般格式是:PROCEDUREPROCEDURE过程名过程名PARAMETERSPARAMETERS参数表

    49、参数表命令组命令组 RETURNRETURN (2).(2).过程文件过程文件 一个过程可以以文件形式单独存在,也可以将多个过一个过程可以以文件形式单独存在,也可以将多个过程合并到一个文件中,这个文件称为过程文件。在过程文程合并到一个文件中,这个文件称为过程文件。在过程文件中,每个过程仍然是独立的,可以单独调用。件中,每个过程仍然是独立的,可以单独调用。 (3).过程文件的打开与关闭 打开过程文件命令格式是: SET.PROCEDURE.TO.SET.PROCEDURE.TO.过程文件名过程文件名关闭过程文件命令格式是:SET.PROCEDURE.TOSET.PROCEDURE.TO或者或者C

    50、LOSE.PROCEDURECLOSE.PROCEDURE 9.5.2 9.5.2 内存变量的作用域内存变量的作用域 1.全局内存变量定义全局变量的命令格式:命令格式1:PUBLICPUBLIC内存变量表内存变量表ALLALLALL LINKALL LINK通配符通配符ALL ALL EXCEPTEXCEPT通配符通配符命令格式2:PUBLIC.PUBLIC.ARRAYARRAY数组名数组名( (下标上界下标上界1 1, ,下标下标上界上界2 2) ), ,数组名数组名( (下标上界下标上界1 1, ,下标上界下标上界2 2),),功能:定义全局内存变量或数组。 2.局部内存变量 局部内存变量

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VFP程序设计课件7.ppt.ppt
    链接地址:https://www.163wenku.com/p-2775727.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库