Visual Foxpro程序设计第四章第8讲 用户自定义函数和过程
- 格式:ppt
- 大小:1.30 MB
- 文档页数:19
变量作用域、自定义函数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程序设计》教学大纲一、课程的性质和任务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命令创建、维护和查询数据库和数据表。
VisualFoxPro数据库应用-自定义函数
自定义函数
Visual FoxPro 的函数分为两大类:
系统函数(内部函数)和自定义函数(外部函数)。
系统函数:是Visual FoxPro 提供的系统内部函数。
它实际上是一个预先存放在函数库中的一个子程序。
用户只需给出函数名和自变量,即可使用。
自定义函数:是用户为完成某种运算自己编写的函数。
自定义函数一旦定义,用户便可以像使用系统函数一样使用自定义函数。
自定义函数的扩展名为.PRG。
无论是系统函数还是自定义函数都是定义了一种关系,因此,函数必须返回一个值。
1、自定义函数的书写格式:
[FUNCTION <函数名>]
[PARAMETERS <内存变量名>]
函数体
RETURN <表达式>
功能:定义自定义函数。
说明:定义一个自定义函数时,最后一条命令是RETURN<表达式>。
<表达式>的值就是函数的返回值。
2、自定义函数的调用命令:
格式1:DO <文件名> [WITH <参数表>]
格式2:?<文件名> [WITH <参数表>]
格式3:<内存变量名>=<文件名>[WITH <参数表>]。
实验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 )的值。
[课题]:自定义过程、函数与子程序[目的要求]:了解子程序、自定义过程与函数,掌握自定义过程与函数的格式、参数、调用,通过实例领会自定义过程与函数的编写。
了解有关形参与实参的概念,掌握调用过程与函数时参数的传递[重点]:过程与函数的格式、参数、调用;过程与函数的编写;参数的传递。
[难点]:解决问题能力的培养和提高。
[学时]: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),各参数间用“,”分隔。