Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
READ @8,20 SAY "输入的日期是: "
??CCDOW(cx)
RETURN
11
用户自定义函数
中国矿业大学计算机学院 李向群
FUNCTION CCDOW(cx)
dx = DOW(cx)
DO CASE
CASE dx=1
title1 = "星期日"
CASE dx=2
title1 = "星期一"
中国矿业大学计算机学院 李向群
第四章 Visual FoxPro程序设计基础 第8讲 用户自定义函数和过程
1
中国矿业大学计算机学院 李向群
用户自定义函数和过程
在程序设计中,经常把完成一个特定功 能的程序编写成一个函数或过程,作为一个 独立的模块,以便在其他程序使用该功能时 调用此模块。
这种用以完成一个特定功能的程序,称 为用户自定义函数或过程。
(1)主程序文件,文件名为MAIN.PRG CLEAR cx={} @4,20 SAY "请输入一个字符型日期: " GET cx READ @8,20 SAY "输入的日期是: " ??CCDOW(cx) RETURN
14
用户自定义函数
中国矿业大学计算机学院 李向群
(2)用户自定义函数文件,文件名为CCDOW.prg
&&调用函数fJC
INPUT "请输入y的Hale Waihona Puke Baidu:" TO y
s2=fJC(y)
&&调用函数fJC
?STR(x,4),"!+",STR(y,4),"!=",STR(s1+s2,8)
RETURN
9
用户自定义函数
*函数fJC的定义 FUNCTION fJC
PARAMETERS n s=1 IF n>=1
FOR i=1 TO n s=s*i
ENDFOR ENDIF RETURN (s)
中国矿业大学计算机学院 李向群
10
用户自定义函数
中国矿业大学计算机学院 李向群
例2:创建一个用户自定义函数CCDOW()。功能是: 返回一个日期是星期几,如:CCDOW({^1999/3/1}) 的返回值是“星期一”。
CLEAR
cx={} @4,20 SAY "请输入一个字符型日期: " GET cx
2
用户自定义函数
中国矿业大学计算机学院 李向群
一、定义格式
FUNCTION <用户自定义函数名>
[PARAMETERS <形式参数表>]
<语句行序列> RETURN [<表达式>] ENDFUNC
函数体
返回值, 缺省为.T.
3
中国矿业大学计算机学院 李向群
用户自定义函数
【说明】 (1)FUNCTION是函数的标识符,其后是函数名。 如果该函数是个独立的程序文件,则其扩展名默认 为.prg,并且可以在命令窗口中使用MODIFY COMMAND <函数名>来建立或编辑该用户自定义函 数。 (2)用户自定义函数的函数名不能和Visual FoxPro 系统函数同名,也不能和内存变量同名。
5
中国矿业大学计算机学院 李向群
用户自定义函数
两种使用形式:
(1)直接写在主程序中,是主程序的一个相对独 立的程序段;
(2)一个独立的程序文件,文件名即函数名。
6
用户自定义函数
中国矿业大学计算机学院 李向群
二、调用格式 函数名([<参数表>]) 【功能】用户自定义函数可以出现在主程序的任何 表达式中,当程序执行到该用户自定义函数时,会将 主程序中的参数(实参数)传递给用户自定义函数中 由PARAMETERS所定义的形式参数,并执行函数体,直 到遇到RETURN语句,即将函数的值返回到主程序的调 用部分。
FUNCTION CCDOW(cx)
dx = DOW(cx)
DO CASE
CASE dx=1
title1 = "星期日"
CASE dx=2
title1 = "星期一"
……
CASE dx=7
title1 = "星期六"
ENDCASE
RETURN (title1)
ENDFUNC
15
过程
中国矿业大学计算机学院 李向群
4
中国矿业大学计算机学院 李向群
用户自定义函数
【说明】 (3)PARAMETERS用于定义函数中的形式参数,以 接收主程序中的实参数。 (4)<语句行序列>即为函数体,由一系列代码组成, 可以完成特定的任务。简单的函数其函数体可以为空。 (5)RETURN [<表达式>]语句用于返回函数值,其 中<表达式>的值就是函数值。若<表达式>省略,则返 回的函数值为.T.。一个函数必须在程序运行结束时返 回一个函数值,这是函数的基本特点。
(2)过程文件的打开
【格式】SET PROCEDURE TO <过程文件名>
(3)过程文件的关闭
【格式】CLOSE PROCEDURE
17
中国矿业大学计算机学院 李向群
(1)用户自定义函数有两种使用形式,一是直接写在______ 中,是主程序的一个相对独立的程序段; (2)用户自定义函数还可以定义为一个独立的程序文件, _______即函数名。 (3) PARAMETERS用于定义函数中的_________,以接收主程 序中的实参数。 (4)打开默认路径下的过程文件A的命令为_____________。
7
中国矿业大学计算机学院 李向群
用户自定义函数举例(一)
使用形式:
函数直接写在主程序中,是主 程序的一个相对独立的程序段
8
用户自定义函数
中国矿业大学计算机学院 李向群
例1:利用用户自定义函数求x!+y!,要求x
和y从键盘上随机输入。
CLEAR
INPUT "请输入x的值:" TO x
s1=fJC(x)
定义格式
PROCEDURE <过程名> [PARAMETERS <形式参数表>] <语句行序列> RETURN
ENDPROC
调用格式
DO <过程名> [WITH <参数表>]
16
过程
中国矿业大学计算机学院 李向群
多个过程存放在一个文件中。
(1)过程文件的建立
【格式】MODIFY COMMAND <过程文件名>
……
CASE dx=7
title1 = "星期六"
ENDCASE
RETURN (title1)
ENDFUNC
12
中国矿业大学计算机学院 李向群
用户自定义函数举例(二)
使用形式:
函数是一个独立的程序文件,文件名即 函数名。
13
用户自定义函数
中国矿业大学计算机学院 李向群
例3:创建一个用户自定义函数CCDOW()。功能是: 返回一个日期是星期几,如: CCDOW({^1999/3/1}) 的返回值是“星期一”。