计算机二级VF培训中心课件:第10章_第1页
计算机二级VF培训中心课件:第10章_第2页
计算机二级VF培训中心课件:第10章_第3页
计算机二级VF培训中心课件:第10章_第4页
计算机二级VF培训中心课件:第10章_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1、第10章 Visual FoxPro程序设计基础,第10章 Visual FoxPro程序设计基础,知识要点: 1程序与程序文件的基本概念; 2简单的输入输出命令; 3程序的三种基本结构; 4多模块程序设计及变量的作用域。,10.1 程序文件的建立与执行,10.1.1 程序的基本概念 程序 是能够完成一定任务的命令的有序集合。 程序文件(命令文件) 存放程序的文本文件。(.PRG),建立程序文件的优点: (1)运行程序文件,会自动执行程序文件中的各条命令 (2)程序文件中的命令可以长期保存,并且可以多次运行,10.1 程序文件的建立与执行,程序文件建立方法: 1、利用菜单:文件|新建|程序 2

2、、利用命令:MODIFY COMMAND ,程序文件执行方法: 1、菜单方式:程序|运行 2、利用命令:DO ,别忘了保存CTRL+W,10.1.2 程序文件的建立与执行,10.1 程序文件的建立与执行,10.1 程序文件的建立与执行,四种命令的功能: CANCEL:终止程序的执行,清除所有的私有变量,返回到命令窗口; DO:调用执行另一个程序; RETURN:结束程序,返回到调用它的上级程序继续运行,若无上级程序则返回到命令窗口; QUIT:结束程序的执行,并退出Visual FoxPro系统,返回到操作系统。,10.1 程序文件的建立与执行,10.1.3 简单的输入输出命令 WAIT AC

3、CEPT INPUT,10.1 程序文件的建立与执行,1.简单的输入输出命令( WAIT ) 格式: WAIT “提示信息” TO WINDOW AT, TIMEOUT 功能: 显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时,程序继续运行,10.1 程序文件的建立与执行,简单的输入输出命令( WAIT ),10.1 程序文件的建立与执行,简单的输入输出命令( WAIT ),(1)WAIT命令只接收单个字符,输入字符时,不需要加定界符,系统将输入的字符赋值给;若用户是按回车键或者单击鼠标左键,系统将空串赋值给; (2)若省略,则显示默认的提示信息“按任意键继续”;否则要加字符串定界符

4、; (3)通常,显示在Visual FoxPro主窗口或当前用户自定义窗口中,如果指定了WINDOW子句,则在主窗口的右上角会出现一个WAIT提示窗口,用来显示提示信息,也可以用AT短语指定窗口的显示位置; (4)若选用NOWAIT短语,系统将不等待用户按键,继续向下执行程序; (5)TIMEOUT子句用来设定等待的时间,以秒数为单位。超过此时间系统将不再等待用户按键,自动往下执行程序。,注 意,10.1 程序文件的建立与执行,2.简单的输入输出命令( ACCEPT ) 格式: accept “提示信息” to 功能: 显示提示信息,等待用户从键盘输入字符串,并将该字符串存入内存变量中,10.

5、1 程序文件的建立与执行,简单的输入输出命令( ACCEPT ),(1)ACCEPT命令只接收字符串,输入字符串时,不需要加定界符; (2)可省略,否则要加字符串定界符; (3)可以不输入内容而直接按回车,系统会把空串赋给指定的; (4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。,注 意,10.1 程序文件的建立与执行,3.简单的输入输出命令(INPUT) 格式: input “提示信息” to 功能: 显示提示信息,等待用户从键盘输入数据,并将输入值存入内存变量中,用户可以输入任何合法的表达式。,10.1 程序文件的建立与执行,简单的输入输出命令(INPUT),(1)

6、用户从键盘输入的数据可是各种类型的常量、变量或者表达式,但不能不输入内容而直接按回车键; (2)可省略,否则要加字符串定界符; (3)从键盘输入各种类型数据时,需要加相应的定界符; (4)此命令根据用户需要既可以输入到命令窗口中执行,也可以编写在程序中。,注 意,10.1 程序文件的建立与执行,INPUT、ACCEPT和WAIT的区别 input:可接受各种类型数据 accept:只接受字符串 wait:只接受单个字符,10.2 程序结构,10.2.1 顺序结构 10.2.2 选择结构 10.2.3 循环结构,10.2 程序结构,10.2.1 顺序结构 按命令在程序中出现的先后次序执行。,10

7、.2 程序结构,10.2.2 选择结构 在程序执行时,根据不同的条件,选择执行不同的程序语句执行。,条件语句,分支语句,选 择 结 构,单向条件语句,双向条件语句,10.2 程序结构,10.2.2 选择结构(条件语句),1单向条件语句,语句格式: IF条件表达式 语句序列 ENDIF,10.2 程序结构,10.2.2 选择结构(条件语句),关闭或打开状态信息,1单向条件语句,Eg1:求圆的面积 (半径0),10.2 程序结构,10.2.2 选择结构(条件语句),2双向条件语句,语句功能: 该语句首先计算条件表达式的值,当条件表达式的值为真时,执行语句序列1中的命令;否则,执行语句序列2中的命令

8、;执行完语句序列1或语句序列2后都将执行ENDIF后面的第一条命令。,10.2 程序结构,10.2.2 选择结构(条件语句),2双向条件语句,Eg2:求圆的面积 (半径0),10.2 程序结构,10.2.2 选择结构(条件语句),10.2 程序结构,10.2.2 选择结构(条件语句),2双向条件语句,Eg3:编写密码 校验程序,设密 码为“ABC”,10.2 程序结构,10.2.2 选择结构(分支语句),根据多个条件表达式的值,选择一个执行 。,语句格式: DO CASE CASE条件表达式1 CASE条件表达式2 CASE条件表达式N OTHERWISE ENDCASE,10.2 程序结构,

9、10.2.2 选择结构(分支语句),Eg4:求分段函数 0 (x5) F(x)= 2x2-x (-1=x1) x (1=x5),10.2 程序结构,10.2.2 选择结构,1)IF ENDIF和DO CASE ENDCASE 必须成对使用。 2)条件表达式可以是各种表达式或函数的组合,其值必须是逻辑值。 3)语句序列可以由一条或多条命令组成。 4)DO CASE ENDCASE 命令,每次最多只能执行一个语句序列。在多个CASE项的条件表达式值为真时,只执行第一个条 件表达式值为真的语句序列,然后执行 ENDCASE的后面的第一条命令。,注 意,10.2 程序结构,10.2.3 循环结构 有一

10、部分程序被反复地执行。,循 环 结 构,当型循环:do while enddo 计数循环:for endfor 数据库扫描:scan endscan,不知道循环次数,己知循环次数,处理表中数据,10.2 程序结构,10.2.3 循环结构(当型循环) (1)不带有LOOP和EXIT语句的当型循环,10.2 程序结构,10.2.3 循环结构(当型循环),i=1=100 s=s+i=0+1=1 i=1+1=2,i=2=100 s=s+i=1+2=3 i=2+1=3,i=3=100 s=s+i=3+3=6 i=3+1=4,i=101=100 .F.,i=100 s=s+i=s+100 i=100+1=

11、101,10.2 程序结构,10.2.3 循环结构(当型循环),逐条输出1982年出生的学生记录,10.2 程序结构,10.2.3 循环结构(当型循环) (2)带有LOOP和EXIT语句的当型循环,LOOP语句:强行返回到循环开始语句。 EXIT语句:强行跳出循环,接着执行ENDDO后的语句,10.2 程序结构,10.2.3 循环结构(当型循环),编写程序,显示“学生”表中的前8条出生在88年之前的学生记录,10.2 程序结构,10.2.3 循环结构(计数循环),FOR - ENDFOR语句,10.2 程序结构,10.2.3 循环结构(计数循环),i=1=100 s=s+i=0+1=1 i=1

12、+1=2,i=2=100 s=s+i=s+2 i=2+1=3,i=100=100 s=s+i=s+100 i=100+1=101,i=101=100 .F.,10.2 程序结构,10.2.3 循环结构(计数循环),i的值是: A、7 2 B、6 1 C、8 3 D、7 4,10.2 程序结构,10.2.3 循环结构(数据库扫描循环),SCAN ENDSCAN语句,10.2 程序结构,10.2.3 循环结构(数据库扫描循环),编写程序,输出1980年以后(包含1980年)出生的男同学的姓名、出生日期和专业,10.2 程序结构,10.2.3 循环结构(数据库扫描循环),10.2 程序结构,10.2

13、.3 循环结构(数据库扫描循环),编写程序,统计学生表中的男、女同学人数。,10.2 程序结构,思考题: 1.求 1+2+3+ +n的和不大于1000的n的最大值。 2.给学生成绩表增加一个“状态”字段,根据计算机的分数填充“优秀”、“良好”、“及格”和“不及格”字样。,10.2 程序结构,3.读程序,写结果 假如输入962 input 请输入一个整数: to x do while x0 ?x%10 x=int(x/10) enddo,10.3 模块化程序设计,引例,输出如下所示的信息。 * Hello World! *,10.3 模块化程序设计,10.3.1过程文件的建立 1、过程的定义,P

14、ROCEDURE RETURN ENDPROC,PROCEDURE命令表示一个过程的开始,并为过程命名。 ENDPROC表示一个过程的结束,过程也可以以RETURN语句终止。 RETURN语句表示将控制返回到调用程序中调用命令的下一语句,并返回表达式的值,若RETURN命令不带,则返回逻辑真.T.。,10.3 模块化程序设计,10.3.1过程文件的建立 2、打开过程文件 3、关闭过程文件,SET PROCEDURE TOADDITIVE,SET PROCEDURE TO CLOSE PROCEDURE,10.3 模块化程序设计,10.3.2 过程文件的调用 或 例10.21 有如下程序,说出此

15、程序的运行结果。 X=0 DO P1 ?X PROCEDURE P1&过程文件P1 X=1 RETURN ENDPROC 该程序运行的结果为: 1,DO WITH ,(),10.3 模块化程序设计,带参数的调用,格式1(程序见下方备注):,10.3 模块化程序设计,带参数的调用,格式2(程序见下方备注):,10.3 模块化程序设计,10.3.3 过程调用中的参数传递 1、发送参数(即调用过程) 主程序调用子程序或过程时,在主程序中使用发送参数语句传递参数。 格式为:,格式1:DO | WITH 格式2:| (),10.3 模块化程序设计,10.3.3过程调用中的参数传递 2、接收参数 在子程序

16、、过程或自定义函数中使用接收参数语句接收参数。 格式为: 对参数传递的说明如下: (1)PARAMETERS|LPARAMETERS必须是被调用程序的第一条语句; (2)PARAMETERS定义的形参变量是私有变量;LPARAMETERS定义的形参变量是局部变量; (3)实参可以是常量、变量和一般形式表达式,调用模块程序时,把实参传递给对应的形参;形参数目大于等于实参数目,多余的形参取.F.。,格式1:PARAMETERS 格式2:LPARAMETERS ,10.3 模块化程序设计,10.3.3过程调用中的参数传递 3、参数传递方式,按值传递,形参变量值的改变不会影响实参变量的值,即新值不返回

17、;,当形参变量的值改变时,实参变量值也随之改变,即新值返回。,按地址传递(也称按引用传递),10.3 模块化程序设计,10.3.3过程调用中的参数传递,采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,则按值传递;如果实参是变量,这时传递的是变量的地址,即按地址传递。 采用格式2调用模块程序时,默认情况下是按值方式传递参数。如果实参是变量,可以通过SET UDFPARMS命令重新设置参数的传递方式。 格式为: SET UDFPARMS TO VALUE|REFERENCE TO VALUE:按值传递。 TO REFERENCE:按地址传递。 此命令不能改变用DOWITH格式调用过程时

18、的参数传递方式。 如果将实参用括号括住,则实参变成一般形式的表达式,这时强制参数传递以按值传递方式进行。,10.3 模块化程序设计,值传递与地址传递,100,100,x2,y2,100,x1,y1,2008年4月 下列程序段执行以后,内存变量X和Y的值是 Clear Store 3 to x Store 5 to y Plus(x),y) ?x,y Procedure plus Parameters a1,a2 a1=a1+a2 a2=a1+a2 Endproc 提示:该格式默认情况为按值传递,C,10.3 模块化程序设计,A)813B)313 C)35D)85,2009年9月 下列程序段执行

19、时在屏幕上显示的结果是 X1=20 X2=30 Set udfparms to value Do test with x1,x2 ?x1,x2 Procedure test Parameters a,b x=a a=b b=x Endproc,B,10.3 模块化程序设计,A)3030B)3020 C)2020D)2030,10.3 模块化程序设计,10.3.4 用户自定义函数 函数定义的语法格式: FUNCTION PARAMETER RETURN 函数调用的语法格式: 函数名(),10.3 模块化程序设计,例,计算阶层 调用形式:?CF(5),10.4 变量的作用域,变量分类:,公共变量(public) 私有变量(private) 局部变量(local),先定义后使用。,在任何模块中都可以使用,不用定义,直接使用,在本模块和下级模块中用,先定义后使用,在本模

温馨提示

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

评论

0/150

提交评论