Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程

合集下载

VFP-04-06-变量作用域、自定义函数

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程序设计》教学大纲精选全文完整版

可编辑修改精选全文完整版《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讲 用户自定义函数和过程

Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程
ENDFOR ENDIF RETURN (s)
中国矿业大学计算机学院 李向群
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数据库应用-自定义函数

VisualFoxPro数据库应用-自定义函数
自定义函数
Visual FoxPro 的函数分为两大类:
系统函数(内部函数)和自定义函数(外部函数)。

系统函数:是Visual FoxPro 提供的系统内部函数。

它实际上是一个预先存放在函数库中的一个子程序。

用户只需给出函数名和自变量,即可使用。

自定义函数:是用户为完成某种运算自己编写的函数。

自定义函数一旦定义,用户便可以像使用系统函数一样使用自定义函数。

自定义函数的扩展名为.PRG。

无论是系统函数还是自定义函数都是定义了一种关系,因此,函数必须返回一个值。

1、自定义函数的书写格式:
[FUNCTION <函数名>]
[PARAMETERS <内存变量名>]
函数体
RETURN <表达式>
功能:定义自定义函数。

说明:定义一个自定义函数时,最后一条命令是RETURN<表达式>。

<表达式>的值就是函数的返回值。

2、自定义函数的调用命令:
格式1:DO <文件名> [WITH <参数表>]
格式2:?<文件名> [WITH <参数表>]
格式3:<内存变量名>=<文件名>[WITH <参数表>]。

VFP过程设计课件

VFP过程设计课件
5.6 过程程序设计
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

visualfoxpro程序设计第四章.ppt
第4章 自由表的建立与操作
王兰 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实验 过程文件与自定义函数

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程序设计基础教程》教学课件 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]
指定要删除的数据库。
在删除数据库文件的 同时,也删除数据库中 的表文件。默认情况下, 不删除表文件。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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.。一个函数必须在程序运行结束时返 回一个函数值,这是函数的基本特点。
相关文档
最新文档