1、系统函数与自定义函数 系统函数为VF系统已经定义好的函数例如:Max(2,3,5)Str(23)Ltrim( ab c)Year(date() 系统函数有限,当需要特殊的函数时,需要自己定义。即自定义函数。例如: 求阶层的函数, jc(10) = 10! 自定义函数【定义格式】FUNCTION PARAMETERS RETURN 【调用格式】函数名() FUNCTION abc PARAMETERS x,y z=x+yRETURN z例如:p =abc(2,3)?p变量变量do sub1do sub1Procedure sub1Procedure sub1 变量变量 do sub2do sub
2、2ReturnReturnProcedure sub2Procedure sub2 变量变量ReturnReturnX=2X=2do sub1do sub1?x?xProcedure sub1Procedure sub1 x=5 x=5 y=3 y=3ReturnReturnProcedure sub2Procedure sub2 x=x+2 x=x+2 y=y y=y* *6 6ReturnReturn变量作用域(变量的可见区域、或变量可以使用的区域)7.执行下面程序后的运行结果为_。CLEARSTORE 2 TO i,a,bDO WHILE i=4 DO pp ?a=+STR(a,2) i
3、=i+1ENDDO?b=+STR(b,2)RETURNPROCEDURE pp a=a*2 b=b+aRETURNA. a=4,a=8,a=16,b=30 B. a=6,a=8,a=16,b=20C. a=4,a=12,a=16,b=30 D. a=4,a=12,a=16,b=20 (private) a public a local a全局变量私有变量局部变量X=2X=2do sub1do sub1?x?xProcedure sub1Procedure sub1 x=5 x=5ReturnReturnProcedure sub2Procedure sub2 x=x+2 x=x+2Return
4、ReturnX=2X=2do sub1do sub1?x?xProcedure sub1Procedure sub1 x=5 x=5ReturnReturnProcedure sub2Procedure sub2 x=x+2 x=x+2ReturnReturnX=2X=2do sub1do sub1?x?xProcedure sub1Procedure sub1 x=5 x=5ReturnReturnProcedure sub2Procedure sub2 x=x+2 x=x+2ReturnReturnPublic xPirvate xLocal x私有私有变量变量全局全局变量变量局部变量11
5、.下面的程序执行结果为_。DO pp1RETURN*pp1PROCEDURE pp1PRIVATE ss=3DO pp2?sRETURN*pp2PROCEDURE pp2s=s+8DO pp3RETURN*pp3PROCEDURE pp3LOCAL ss=5s=s+10RETURNA11 B15 C8 D3【例7】在Visual FoxPro中,有如下程序: (2009年4月)*程序名:TEST.PRGSET TALK OFFPRIVATE x,yx= 数据库y= 管理系统DO sub1?x+yRETURN*子程序:sub1LOCAL xx= 应用y= 系统x= x+yRETURN执行命令DO
6、 TEST后,屏幕显示的结果应是_。【例19】在Visual FoxPro中有如下程序: *程序名:TEST.PRG*调用方法: DO TESTSET TALK OFFCLOSE ALLCLEAR ALLmX=Visual FoxPromY=二级DO SUB1 WITH mX?mY+mXRETURN*子程序:SUB1.PRGPROCEDURE SUB1PARAMETERS mX1LOCAL mXmX= Visual FoxPro DBMS 考试mY=计算机等级+mYRETURN执行命令DO TEST后,屏幕的显示结果为_。(2003年9月)A二级Visual FoxPro B计算机等级二级Vi
7、sual FoxPro DBMS 考试C二级Visual FoxPro DBMS 考试 D计算机等级二级Visual FoxPro数组一维数组一维数组定义格式定义格式:DIMENSION 数组名(最大下标) 例如:DIMENSION a(5).f.f.f.f.f.1 2 3 4 5a(2)=9 a(3)=“你好”a你好9为元素赋值:为元素赋值:引用元素:引用元素:例如:? a(2) select where 字段=a(3) thisform.text1.value=a(2)数组.f.f.f.f.f.f.f.f.f.f.f.f.b1 2 3 41 2 3 4二维数组二维数组定义格式定义格式:DI
8、MENSION 数组名(行的最大下标,列的最大下标) 例如:DIMENSION b(3,4)为元素赋值:为元素赋值:b(2,2)=7引用元素:引用元素: thisform.text1.value=b(2,2) x=b(2,2)+107【例13】下列程序段执行时在屏幕上显示的结果是_。 (2009年9月)DIME a(6)a(1)=1a(2)=1FOR i=3 TO 6a(i)=a(i-1)+a(i-2)NEXT?a(6)查询去向为数组Select into array 数组名数组名注意:生成的数组类型由查询结果决定。例如:select 学号,姓名,成绩 from 学生 where 学号=“06022001”; into array a select 成绩 from 学生 ; into array a06022001张三8080769050a123a1234a(i) i: 13a(i) i: 14查询去向为数组例如:select 学号,姓名,成绩 from 学生 into array a06022001张三8006022001李四7606022001王五9006022001周六50a1 2 31 2 34a(i,j) i: 13 j:14