Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程
VFP-04-06-变量作用域、自定义函数

变量作用域、自定义函数4.5.3 内存变量的作用域变量的作用域:变量的作范围。
程序由模块(主、子程序)组成,模块中有内存变量,内存变量有作用范围。
变量的作用域,从定义变量处开始,一直向下。
1.定义全局内存变量全局变量既可以是单个变量,也可以是数组。
分别以下列格式定义。
格式1:Public <内存变量表>格式2:Public <数组名1>(上界1[,上界2[, ...])[,…]功能:定义全局变量。
①<内存变量表>中既可含普通变量,也可含数组。
②全局变量不会自动释放。
只能用release命令显式释放,或退出VFP。
③VFP命令窗口中定义的变量,默认为全局变量。
④全局数组的每个元素都是全局的。
第116页,例 4.35主程序中使用子程序中定义的全局变量。
*文件名Main.prgset talk offclearclear memory &&清除所有内存变量I=2 &&默认是私有的Do ABC?"主程序中的输出结果:"?"I="+str(I,2)+" J="+str(J,2)set talk onreturn*---------------------Procedure ABCpublic JJ=I*8J=J+5?"过程中的输出结果:"?"I="+str(I,2)+" J="+str(J,2)return小提示:要检测全局变量,请先clear memory以排除干扰。
2.定义局部内存变量(1)什么叫局部?更小的范围就是局部。
对于一个模块,更后的部分是局部。
对于主程序,子程序是局部。
(2)Private定义局部变量格式1:Private <内存变量表>格式2:Private <数组名1>(上界1[,上界2[, ...])[,…]功能:定义局部变量。
《Visual-Foxpro程序设计》教学大纲精选全文完整版

可编辑修改精选全文完整版《Visual Foxpro程序设计》教学大纲一、课程的性质和任务Microsoft Visual Foxpro关系数据库是新一代小型数据库管理系统的杰出代表。
它具有强大的性能、完整而丰富的工具、较高的处理速度、友好的界面以及完备的兼容性等特点。
是用户收集信息、查询数据、创建集成数据库系统、进行应用系统开发较为理想的工具软件。
目前在我国有广泛的应用基础和用户群。
《Visual FoxPro程序设计》课程是目前国内各高校普遍开设的一门计算机公共课程,学习本课程将有助于学生巩固、加深和拓展已有的计算机和信息技术知识;掌握基本的数据库应用技术和基于数据库的应用程序设计技术;培养逻辑思维能力,以及分析问题和解决问题的能力。
将专业知识与计算机信息管理知识和技能结合起来,使之在今后的学习和工作中适应新时代的要求。
二、课程教学目标(一)知识教学目标本课程为必修课,按照本大纲采用同一程序设计语言开课的各专业统一内容、统一要求、统一考试。
通过本课程的课堂教学与上机实训,要求学生:1、了解信息(Information)、数据(Data)、数据库(Data Base)、数据库管理系统(DBMS)和数据库系统(DBS)的基本概念,以及数据库技术在当今社会各个层面管理中应用的重要性。
2、熟悉Visual FoxPro的用户界面和运行方式,掌握Visual FoxPro的各种数据类型,以及常量、变量、表达式、函数等各种数据元素,掌握Visual FoxPro 的命令格式和主要文件类型等基础知识。
3、掌握数据表的创建方法,以及数据记录的插入、删除、修改、排序、索引、查找、统计汇总等基本操作,同时掌握多个数据表之间的关联、更新等操作。
4、掌握数据库创建与维护的方法,以及数据字典、数据视图、数据库表之间的永久关系和参照完整性等知识,掌握应用数据库技术管理大量信息的基本技能。
5、熟悉SQL结构化查询语言,了解该语言的特点;着重掌握SQL的数据定义语言、数据修改语言和数据查询语言,能够使用基本SQL命令创建、维护和查询数据库和数据表。
Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程

中国矿业大学计算机学院 李向群
10
用户自定义函数
中国矿业大学计算机学院 李向群
例2:创建一个用户自定义函数CCDOW()。功能是: 返回一个日期是星期几,如:CCDOW({^1999/3/1}) 的返回值是“星期一”。
CLEAR
cx={} @4,20 SAY "请输入一个字符型日期: " GET cx
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
过程
中国矿业大学计算机学院 李向群
中国矿业大学计算机学院 李向群
第四章 Visual FoxPro程序设计基础 第8讲 用户自定义函数和过程
1
中国矿业大学计算机学院 李向群
用户自定义函数和过程
在程序设计中,经常把完成一个特定功 能的程序编写成一个函数或过程,作为一个 独立的模块,以便在其他程序使用该功能时 调用此模块。
这种用以完成一个特定功能的程序,称 为用户自定义函数或过程。
……
CASE dx=7
title1 = "星期六"
ENDCASE
RETURN (title1)
ENDFUNC
12
中国矿业大学计算机学院 李向群
用户自定义函数举例(二)
VisualFoxPro数据库应用-自定义函数

VisualFoxPro数据库应用-自定义函数
自定义函数
Visual FoxPro 的函数分为两大类:
系统函数(内部函数)和自定义函数(外部函数)。
系统函数:是Visual FoxPro 提供的系统内部函数。
它实际上是一个预先存放在函数库中的一个子程序。
用户只需给出函数名和自变量,即可使用。
自定义函数:是用户为完成某种运算自己编写的函数。
自定义函数一旦定义,用户便可以像使用系统函数一样使用自定义函数。
自定义函数的扩展名为.PRG。
无论是系统函数还是自定义函数都是定义了一种关系,因此,函数必须返回一个值。
1、自定义函数的书写格式:
[FUNCTION <函数名>]
[PARAMETERS <内存变量名>]
函数体
RETURN <表达式>
功能:定义自定义函数。
说明:定义一个自定义函数时,最后一条命令是RETURN<表达式>。
<表达式>的值就是函数的返回值。
2、自定义函数的调用命令:
格式1:DO <文件名> [WITH <参数表>]
格式2:?<文件名> [WITH <参数表>]
格式3:<内存变量名>=<文件名>[WITH <参数表>]。
VFP过程设计课件

1、子程序
2、过程
3、参数传递 4、自定义函数
2014年11月18日
主程序:cc.prg @2,3 say “好好学习 Do p1 3 Do p2 个 Return 程 序 子程序p1.prg 文 @3,3 say “********” 件 子程序p2.prg @4,3 say “天天向上”
流程二
多个子程序
定 义 为 procedure
流程一 过程文件:存放多个过程的程序文件, 多个子程序 扩展名 .prg
打开过程文件: 义 procedure Set procdure to [过程文件名] 为 多个过程 关闭过程文件: Set procdure toΒιβλιοθήκη 存 放 于定多个过程
存 放 于
一个过程文件
定 义 为
procedure
流程一
多个过程
存 放 于
自 动 打 开
主程序后面
练习一
Clear @4,10 say “白日依山尽” 编程:输出下面唐诗,要求主程 Do p1 序aa.prg只输出第一句,其他三 Do p2 Do p3 句分别使用三个过程输出,定义 Return 的过程放在主程序后面 Procedure p1 @5,10 say “黄河入海流” 白日依山尽 Endproc Procedure p2 黄河入海流 @6,10 say “欲穷千里目” 欲穷千里目 Endproc Procedure p3 更上一层楼 @7,10 say “更上一层楼” endproc
流 程 二
改写
Clear @4,10 say “白日依山尽” Set procedure to f:\gc.prg Do p1 Do p2 Do p3 Set procedure to Return Procedure p1 @5,10 say “黄河入海流” Endproc F:\gc.prg Procedure p2 @6,10 say “欲穷千里目” Endproc Procedure p3 @7,10 say “更上一层楼” endproc
visualfoxpro程序设计第四章.ppt

王兰 2011.9.23
1
主要内容
建立表 向表中加入记录 数据的显示和修改方式 控制字段和记录的访问 数据表中记录的定位 删除和恢复表中的数据 快速修改表中的数据
2
4.1 建立表
4.1.1 定义表的结构
在 Visual FoxPro 系统中,一张二维表对应一个 数据表,称为表文件(Table)。 定义数据表的结构,就是定义数据表的字段个数、 字段名、字段类型、字段宽度及是否以该字段建立索 引等。 一张二维表由表名、表头、表的内容三部分组成, 一个数据表则由数据表名、数据表的结构、数据表的 记录三要素构成。
7
4.1.3 表的打开与关闭
打开:Use [ <表名>.dbf ] [ In <工作区号>/<别名>] [Again] [Alias <别名>] [Exclusive] / [Noupdate Shared] In<工作区号><别名>:指定打开表的工作区号; Again:可以在某一工作区中打开已在其他工作区中打开的表。 Alias<别名>:打开表的同时定义表的别名; Exclusive:以独占方式打开表; Noupdate shared:以只读方式打开表。 关闭:close all 关闭所有打开的表; close tables 关闭当前数据库中所有打开的表; close tables all 关闭所有数据库中所有打开的表及自由表。
8
4.1.4 利用表设计器修改表结构
修改表结构的操作步骤---菜单
文件 打开 表的名字 表设计器
保存
修改
删除
增加
修改表结构的操作步骤---命令
VFP实验 过程文件与自定义函数

实验4-4 过程文件与自定义函数一、实验目的加强对过程文件与自定义函数概念的理解,掌握过程文件与自定义函数在程序设计中的运用,并掌握程序之间数据传递的方法。
二、实验准备复习教材中有关子程序与自定义函数的内容,重点掌握子程序、过程与过程文件、自定义函数等概念,理解本节给出的实例。
三、实验内容1.用过程文件的形式编写程序,求1!+3!+5!+ + n!的值,n从键盘输入,阶乘计算用过程。
*1.用过程文件的形式编写程序,求1!+ 3!+ 5!+ + n!的值,n从键盘输入,阶乘计算用过程。
SET TALK OFFCLEARINPUT "n=" TO nS=0Q=""FOR J=1 TO n STEP 2T=1DO jc WITH JS=S+TQ=Q+ALLTRIM(STR(J,19))+"!+"ENDFOR?LEFT(Q,LEN(Q)-1)+"="+ALLTRIM(STR(S,19,2))SET TALK ONPROCEDURE JCPARAMETERS XFOR I=1 TO XT=T*IENDFORRETURNENDPROC2.编写自定义函数,判断X是否是素数,返回结果为逻辑值.T. 或 .F.。
*2.编写自定义函数,判断X是否是素数,返回结果为逻辑值.T. 或 .F.。
CLEARPROCEDURE SSPARAMETERS QFOR N=2 TO Q-1IF INT(Q/N)=Q/NEXITENDIFENDFORIF N>Q-1RETURN .T.ELSERETURN .F.ENDIFENDPROC3.编写程序,要求利用参数传递和过程文件求解:(m! + n!) ((m - n)!+ m^n + m^m )的值。
M,N从键盘上输入且M>N,要求使用子程序和过程文件两种方式实现。
*3.编写程序,要求利用参数传递和过程文件求解:(m! + n!) ((m - n)!+ m^n + m^m )的值。
《Visual Foxpro 6.0程序设计基础教程》教学课件 VF第4单元

Visual FoxPro 6.0 程序设计根底教程
第4单元
第4单元 数据库的根本操作
学习任务 数据库的根本操作 数据库的使用
程序设计基础教程
第4单元 数据库的根本操作
任务安排 任务4.1 掌握数据库的根本操作 任务4.2 掌握数据库的使用方法
程序设计基础教程
任务4.1 掌握数据库的根本操作
该命令的格式、功能和说明如下:
SORT TO <表文件名> ON <字段名1>[/A/D][/C][,<字段名2> /A/D] [/C] …][ASCENDING / DESCENDING] [<范围>] [FOR <条件>] [WHILE < 条件>][FIELDS <字段名表>]
命令使用本卷须知:
程序设计基础教程
ON后字段的类型不能是备注型和通用型。
/A:升序;/D:降序;/C:不区分大小写。/C可以和/A或/D同时使用, 可以写成/AC或/DC。 ON后有多个字段时,第一字段为主排序字段,第二字段为次排序字段, 依次类推。 假设每个字段都按升序或降序排列,可用ASCENDING〔升序〕或 DESCENDING〔降序〕,但/A或/D的优先级高于它们。
删除数据库:
程序设计基础教程
要删除数据库,主要有两种方法,一是使用DELETE DATABASE命令, 一是使用工程管理器。
〔1〕使用命令删除数据库
DELETE DATABASE <数据库文件名> | ? [DELETETABLES] [RECYCLE]
指定要删除的数据库。
在删除数据库文件的 同时,也删除数据库中 的表文件。默认情况下, 不删除表文件。
VFP自定义过程和函数

[课题]:自定义过程、函数与子程序[目的要求]:了解子程序、自定义过程与函数,掌握自定义过程与函数的格式、参数、调用,通过实例领会自定义过程与函数的编写。
了解有关形参与实参的概念,掌握调用过程与函数时参数的传递[重点]:过程与函数的格式、参数、调用;过程与函数的编写;参数的传递。
[难点]:解决问题能力的培养和提高。
[学时]:4学时[教学过程及内容]:导入:程序设计时,将一个大的程序按功能分解成若干相对独立的模块,一个模块用来完成一个特定的任务。
由其它模块调用的、完成某种特定功能的独立程序,叫做子程序或过程、函数。
例如求8!+6!+9!的和。
如果我们把求阶乘的程序写成一个子程序或过程或函数,那么在执行时只是参数不同罢了。
这样就大大地简化了我们的程序。
今天我们一起来了解有关于子程序、过程、函数的有关内容。
新授内容:一、子程序概念:子程序实质上是一个程序文件。
1、建立:modi comm 子程序名2、格式:与程序一样3、调用:do 子程序名 [WITH 参数]4、例:求8!+6!+9!的和&&main.prg JC.PRGSET TALK OFF SET TALK OFFCLEAR CLEARS=0 P=1N=8 FOR I=1 TO NDO JC P=P*IN=6 ENDFORDO JC S=S+PN=9 RETURNDO JCSRETURN或&&MAIN.PRG JC.RPGSET TALK OFF PARAMETERS NCLEAR P=1S=0 FOR I=1 TO NDO JC WITH 8 P=P*IDO JC WITH 6 ENDFORDO JC WITH 9 S=S+PS RETURNRETURN二、自定义过程概念:由procedure开头,endproc结尾一段代码,我们称之为过程。
1、格式:PROCEDURE 过程名[LPARAMETERS 参数列表]过程体[RETURN [TO MASTER|TO 程序名]]ENDPROC2、例CLEARS=0DO JC WHIT 8DO JC WITH 6DO JC WITH 9“8!+6!+9!的和为:”SRETURNPROCEDURE JCLPARAMETERS XP=1FOR I=1 TO XP=P*IENDFORS=S+PENDPROC3、说明:(1)过程名的定义同变量命名规则(2)参数用于接受从调用语句传过来的值(do jc with 6),各参数间用“,”分隔。
VisualFoxPro第8讲(1)

运行
保存
代码
属性
表单控件
2.
用表单向导创建表单 在Visual FoxPro系统中,除使用表单设计 器创建新的表单外,还可以使用表单向导创建 新的表单,不过由表单向导创建的只能是数据 表单。
3. 表单的运行
(1)直接使用命令。在命令窗口,直接输入命令:
DO FORM 〈表单名〉
(2)在表单设计器窗口,选择“表单”菜单中的“运行” 命令,或直接单击工具栏中的红色惊叹号。 (3)在项目管理器中,选中“文档”选项卡并指定要运 行的表单,单击“运行”按钮。
4.打开数据环境设计器
在表单设计器环境下,单击表单设计器工具栏 上的“数据环境”按钮或选择Visual.FoxPro“显 示”菜单中的“数据环境”命令,即可打开数据环 境设计器。
5.向数据环境添加表或视图 6.从数据环境移去表或视图 7.在数据环境中设置关系 8.在数据环境中编辑关系 9.向表单添加字段
2.表单事件
以下3个事件用于表单和表单集:
(1)Load事件:该事件代码从表单装入内存至表单
被释放期间仅被运行一次。 (2)UnLoad事件:在表单被释放时发生,是释放表 单或表单集的最后一个事件。 (3)Activate事件:该事件代码从表单装入内存至 表单被释放期间可被运行多次 。
3.鼠标事件 (1)Click事件:鼠标左键单击对象时发生的事件。
11.命令按钮组控件 “命令按钮组”控件是把一些命令按钮组合在一 起,作为一个控件管理。每一个命令按钮有各自的属 性、事件和方法,使用时仍需独立操作某一个指定的 命令按钮。 “命令按钮组”控件的主要属性是Buttoncount, 用来定义命令按钮组包含的命令按钮的个数。
12.页框控件 “页框”控件用来把多个不同格式的容器类对象封 装在一个页框中。一个页框中可以有多页对象,而在每 页中又可以包含若干控件。 “页框”控件的主要属性是:“页框”包含多少页、 每页的标题等。
Visual FoxPro6.0程序设计教程第四章 索引、排序与多表操作

每次表打开时自动打 索引 开,并且在表修改时 自动更新的索引文件, 通常与表同名,但扩 展名是.CDX
VFP6.0索引文件
结构复合索引文件 复合索引文件(· CDX )
包含多个索引入口的索 引文件,在使用时需明 确指定打开
非结构复合索引文件
4.2 索引
4.2.2 索引的分类
三种索引文件的比较
索引类型
4.1 排序 对表文件进行物理位置的整理
命令格式:Sort To <表文件名> On <字段名1>[/A] [/D] [/C] [,<字段名2 >[/A] [/D] [/C]…] [Ascending | Descending] [For <条件表达式>] [Fields <字段名表>]
4.1 排序
独立 .idx
描述 必须明确的打开, .idx的基本 名由用户定义 必须明确的打开,使用和表名 不同的基本名 使用和表文件名相同的文件名, 和表一起自动打开
《Visual FoxPro 6.0数据库与程序设计》课件 第4章 查询和视图(电子版)

利用查询设计器得到的查询文件是一个文本文件,用户可 以查看其内容。 打开查询设计器,选择“查询|查看SQL”命令,打开一个 只读窗口,其中显示了一条SQL语句,它包含了用户创建这个查 询的所有信息。
18
4.2.1 视图的概念
通过视图不仅可以从多个表中提取数据,还可以在改变视
图数据后,把更新结果送回到数据源表中。 视图不能以自由表文件的形式单独存在,它必须依赖于某 个数据库,并且只有在打开相关的数据库之后,才能创建和使
(6)运行查询,获得查询结果。
4
4.1.2 创建查询
1. 启动查询设计器 (1)项目管理器:选择 “查询”数据项,单击“新建”按钮, 出现“新建查询”对话框,选择“新建查询”命令,打开查询 设计器。 (2)菜单:选择“文件|新建”命令,在“新建”对话框中选 择“查询”文件类型,然后单击“新建文件”按钮。
第4章 查询和视图
2
4.1 查询
查询和视图是检索和操作数据库的两个基本手段。
两者都可以从一个或多个相关联的数据表中提取有用的信息。 查询可以根据表或视图定义,它不依赖于数据库而独立存在, 可以显示但不能更新由查询检索到的数据(查询结果是只读 的)。
视图兼有表和查询的特点,它可以更改数据源中的数据,但
例:将“学生1”表中的“学号”字段更名为“学生证编号“
ALTER TABLE 学生1 RENAME COLUMN 学号 TO 学生证编号
对“学生1”表中的“姓名”和“出生日期”字段建立主索引
ALTER TABLE 学生1 ADD PRIMARY KEY 姓名+DTOC(出生日期) TAG 姓名_生日
(3)命令:CREATE QUERY <查询文件名>
vf子程序、函数与过程

modify command main
*main.prg set talk off input "输入n:" to n s=0 do sum with n ?s set talk on return procedure sum parameters sn for k=1 to sn s=s+k endfor endproc
modify command main
*main.prg set talk off input "输入x:" to x input "输入y:" to y z=fun2(x,y) ?x,y,z set talk on return
modify command fun2
*fun2.prg parameters a,b c=a*a-b*b return c
例求组合:Cn
modify command cmn set talk off input “输入m” to m input “输入n” to n c=jc(m)/(jc(n)*jc(n-m)) ?c set talk on return
m
function jc parameters jcn f=1 for k=1 to jcn f=f*k endfor return f
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
……
CASE dx=7
title1 = "星期六"
ENDCASE
RETURN (title1)
ENDFUNC
12
中国矿业大学计算机学院 李向群
用户自定义函数举例(二)
使用形式:
函数是一个独立的程序文件,文件名即 函数名。
13
用户自定义函数
中国矿业大学计算机学院 李向群
例3:创建一个用户自定义函数CCDOW()。功能是: 返回一个日期是星期几,如: CCDOW({^1999/3/1}) 的返回值是“星期一”。
中国矿业大学计算机学院 李向群
第四章 Visual FoxPro程序设计基础 第8讲 用户自定义函数和过程
1
中国矿业大学计算机学院 李向群
用户自定义函数和过程
在程序设计中,经常把完成一个特定功 能的程序编写成一个函数或过程,作为一个 独立的模块,以便在其他程序使用该功能时 调用此模块。
这种用以完成一个特定功能的程序,称 为用户自定义函数或过程。
READ @8,20 SAY "输入的日期是: "
??CCDOW(cx)
RETURN
11
用户自定义函数
中国矿业大学计算机学院 李向群
FUNCTION CCDOW(cx)
dx = DOW(cx)
DO CASE
CASE dx=1
title1 = "星期日"
CASE dx=2
title1 = "星期一"
(2)过程文件的打开
【格式】SET PROCEDURE TO <过程文件名>
(3)过程文件的关闭
【格式】CLOSE PROCEDURE
17
中国矿业大学计算机学院 李向群
(1)用户自定义函数有两种使用形式,一是直接写在______ 中,是主程序的一个相对独立的程序段; (2)用户自定义函数还可以定义为一个独立的程序文件, _______即函数名。 (3) PARAMETERS用于定义函数中的_________,以接收主程 序中的实参数。 (4)打开默认路径下的过程文件A的命令为_____________。
&&调用函数fJC
INPUT "请输入y的值:" 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
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
过程
中国矿业大学计算机学院 李向群
定义格式
PROCEDURE <过程名> [PARAMETERS <形式参数表>] <语句行序列> RETURN
ENDPROC
调用格式
DO <过程名> [WITH <参数表>]
16
过程
中国矿业大学计算机学院 李向群
多个过程存放在一个文件中。
(1)过程文件的建立
【格式】MODIFY COMMAND <过程文件名>
7
中国矿业大学计算机学院 李向群
用户自定义函数举例(一)
使用形式:
函数直接写在主程序中,是主 程序的一个相对独立的程序段
8
用户自定义函数
中国矿业大学计算机学院 李向群
例1:利用用户自定义函数求x!+y!,要求x
和y从键盘上随机输入。
CLEAR
INPUT "请输入x的值:" TO x
s1=fJC(x)
ENDFOR ENDIF RETURN (s)
中国矿业大学计算机学院 李向群
10
用户自定义函数
中国矿业大学计算机学院 李向群
例2:创建一个用户自定义函数CCDOW()。功能是: 返回一个日期是星期几,如:CCDOW({^1999/3/1}) 的返回值是“星期一”。
CLEAR
cx={} @4,20 SAY "请输入一个字符型日期: " GET cx
(1)主程序文件,文件名为MAIN.PRG CLEAR cx={} @4,20 SAY "请输入一个字符型日期: " GET cx READ @8,20 SAY "输入的日期是: " ??CCDOW(cx) RETURN
14
用户自定义函数
中国矿业大学计算机学院 李向群
(2)用户自定义函数文件,文件名为CCDOW.prg
4
中国矿业大学计算机学院 李向群
用户自定义函数
【说明】 (3)PARAMETERS用于定义函数中的形式参数,以 接收主程序中的实参数。 (4)<语句行序列>即为函数体,由一系列代码组成, 可以完成特定的任务。简单的函数其函数体可以为空。 (5)RETURN [<表达式>]语句用于返回函数值,其 中<表达式>的值就是函数值。若<表达式>省略,则返 回的函数值为.T.。一个函数必须在程序运行结束时返 回一个函数值,这是函数的基本特点。