第02章程序设计基础课件

上传人:沈*** 文档编号:241669314 上传时间:2024-07-14 格式:PPT 页数:91 大小:723KB
返回 下载 相关 举报
第02章程序设计基础课件_第1页
第1页 / 共91页
第02章程序设计基础课件_第2页
第2页 / 共91页
第02章程序设计基础课件_第3页
第3页 / 共91页
点击查看更多>>
资源描述
第2章VisualFoxPro程序设计基础2.1常量与变量常量与变量VFP的基本的数据类型包括:(1)数值型数值型N数值型数据表示数量,由正(+)负(-)号、数字和小数点组成。(2)货币型货币型Y用于表示货币数据时,使用货币型。(3)字符型字符型C数值型数据由任意字符和汉字组成,用于表示姓名、专业、地址、名称等符号信息,数值性质的信息也可用字符表示。(4)日期型日期型D日期型用于存储日期数据。日期数据可进行各种数值运算。(5)日期时间型日期时间型T日期时间型数据同时保存日期和时间,可放入两者的任一个.(6)逻辑型逻辑型L逻辑型数据的值只有真、假两个值。2.1.1常量常量常量是在程序运行过程中保持不变的量。(1)数值型数值型常量是平常的数值常数,它由正号(+)、负号(-)、数字(09)和小数点组成,如-6.78。为了表示很大或很小的数值型常量,也可以使用科学记数法形式书写,例如1.6E-12表示1.610-12(2)货币型货币型常量用来表示货币值。表示货币型常量时,需在数字前加上美元符号($)。例如$123。货币数据在存储和计算时,采用4位小数。如果一个货币型常量多于4位小数,那么系统会自动将多余的小数位四舍五入。例如,常量$123.456789将存储为。$123.4568(3)字符型字符型常量是由单引号、双引号和方括号括起来的一串字符,这些字符可以是ASCII字符,也可以是汉字。例如计算机,”123”,数据。这里将单引号、双引号和方括号称为定界符。字符串常量的定界符必须成对匹配。注意:不包含任何字符的字符串(“”)叫空串。空串与包含空格的字符串(“”)不同。【例例2.1】显示几个字符型常量在命令窗口键入以下两条命令:?”计算机”,123,数据,ABX”abc”?”学习”,字符串,”,表示方法显示结果如下:计算机123数据ABX”abc”学习字符串表示方法(4)日期型日期型常量有严格的日期格式和传统的日期格式两种,其定界符都是一对花括号。花括号内包括年、月、日三部分内容,各部分内容之间用分隔符分隔。常用的分隔符有斜杠(/)、连字符(-)、句点(.)和空格符。严格的日期格式yyyy-mm-dd第一个字第一个字符必须是符必须是脱字符脱字符年份必须是年份必须是4位位(如(如2001、1999)注意:年月日的次序不能颠倒,不能缺省!注意:年月日的次序不能颠倒,不能缺省!例如例如2009-04-17月,日均为月,日均为2位位传统的日期格式传统日期格式中的月、日各为2位数字,而年份可以是2位数字,也可以是4位数字。10/08/01、10-08-01、10082001这种格式的日期型常量要受到语句SETDATETO和SETCENTURYTO设置的影响。(5)日期时间型日期时间型常量包括日期和时间两部分内容,数据两端用花括号括起,日期时间型常量的格式为年/月/日时:分:秒上午|下午。2009-04-17,11:30AM(6)逻辑型.T.、.t.、.Y.、.y.表示逻辑型常量的真。.F.、.f.、.N.、.n.表示逻辑型常量的假。注意:前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。2.1.2变量变量名由字符(字母、汉字、_和数字)组成,不能以数字打头。变量名不能使用系统保留字。变量有字段变量及内存变量两种。每个变量都有一个名字,可以通过变量名访问变量。当出现内存变量与字段变量同名时,若简单地用变量名访问,则系统默认为字段变量。如果要访问内存变量,则必须在变量名前加上前缀M.(或M-),例如M.姓名。(2008年4月真题)如果内存变量和字段变量均有变量名“姓名”,那么引用内存变量的正确方法是()。A)M.姓名B)M-姓名C)姓名D)A)和B)都可以D2.1.2变量 1.变量赋值变量赋值 格式:格式:变量名=值STORE值TO变量名表两个变量赋值的语句的差别是前者一次只能将一个值赋给一个变量,后者一次可以将一个值赋给多个变量。【例例2.2】变量赋值。r=10s=3.14159*r*rSTORE“面积”TOs1,s2?r,s,s1,s2&?为显示后面的内容(2008年4月真题)在VisualFoxPro中,有如下内存变量赋值语句:X=2001-07-2810:15:20PMY=.F.M=$123.45N=123.45Z=123.24执行上述赋值语句之后,内存变量X、Y、M、N和Z的数据类型分别是()。A)D、L、Y、N、CB)T、L、Y、N、CC)T、L、M、N、CD)T、L、Y、N、SB2.1.2变量 2.显示变量显示变量 格式格式1:DISPLAYMEMORYLIKETOPRINTERPROMPT|TOFILE 格式格式2:LISTMEMORYLIKETOPRINTERPROMPT|TOFILE显示内存变量名和当前信息。*表示任意多个字符,?表示任意一个字符。TOPRINTER:显示记录送打印机打印。带PROMPT项,打开打印对话框,在该对话框中对打印机进行设置。TOFILE文件名:显示记录送到指定的文件中保存,扩展名为.txt。2.1.2变量 格式格式:RELEASE变量名表|ALLLIKE变量名描述|EXCEPT变量名描述 格式格式:CLEARMEMORY前者清除命令中描述的内存变量,后者清除所有的内存变量。3.内存变量的释放内存变量的释放(2006年9月真题)从内存中清除内存变量的命令是()。A)ReleaseB)DeleteC)EraseD)DestroyA2.1.3数组 数组的定义数组的定义数组就是变量名相同而下标不同的一组变量。格式:格式:DIMENSION(,),DECLARE(,),例如,命令DIMENSIONx(5),y(2,3)定义了两个数组:一维数组x含5个元素:x(1)、x(2)、x(3)、x(4)、x(5)。二维数组y含6个元素:y(1,1)、y(1,2)、y(1,3)、y(2,1)、y(2,2)、y(2,3)。数组创建后,系统自动给每个数组元素赋以逻辑值数组创建后,系统自动给每个数组元素赋以逻辑值.F.可以用一维数组的形式访问二维数组。例如命令DIMENSIONy(2,3)定义了一个二维数组y,含6个元素:y(1,1)、y(1,2)、y(1,3)、y(2,1)、y(2,2)、y(2,3)。用一维数组的形式可依次表示为:y(1)、y(2)、y(3)、y(4)、y(5)、y(6),其中y(4)与y(2,1)是同一变量。2.1.3数组(2006年4月真题)执行下列命令序列后,最后一条命令的显示结果是DIMENSIONM(2,2)()M(1,1)=10M(1,2)=20M(2,1)=30M(2,2)=40?M(2)A)变量未定义的提示B)10C)20D).F.C2.2 表达式表达式表达式是由数据元素和操作符适当连接而成的式子。1.数值表达式数值表达式数值表达式用于进行数值运算。操作符功能+,-正负号*,幂*,/,%乘,除,取余+,-加减优先级从高到低为:+,-号*,*,/,%+,-。2.2 表达式表达式 2.字符表达式字符表达式 字符表达式用于进行字符运算。操作符操作符功功 能能+前后两个字符串首位连接形成一个新的字符串-连接前后两个字符串,将前字符串的尾部空格移到合并后的新字符串尾部$判左侧字符串是否包含在右侧字符串中 优先级从高到低为:+,-$。2.2 表达式表达式 3.日期时间表达式日期时间表达式日期时间表达式用于进行日期运算。格式格式结果及果及类型型+日期型。指定若干天后的日期。+日期型。指定若干天后的日期。-日期型。指定若干天前的日期。-数值型。指定两个日期相差的天数。+日期时间型。指定若干秒后的日期时间。+日期时间型。指定若干秒后的日期时间。-日期时间型。指定若干秒前的日期时间。-数值型。指定两个日期相差的秒数。(2006年4月真题)表达式2005-10-31000-2005-10-3900的数据类型是。数值型(N)2.2 表达式表达式4.关系表达式关系表达式关系操作符用于进行关系运算操作符操作符 功功 能能大于=等于,#,!=不等于=大于等于=字符串精确等于比较关系操作符没有优先级。2.2 表达式表达式(1)数值型、货币型数值型、货币型按其数值论大小。(2)字符型字符型字符按在字符序列中的排列顺序论大小。VFP中可分为三种情况:Machine字符序列从小到大为:空格大写字母小写字母一级汉字(按拼音排序)。PinYin字符序列汉字按拼音排序;对于西文字符从小到大为:空格小写字母大写字母。Stroke字符序列汉字按笔画排序;对于西文字符从小到大为:空格大写字母小写字母。2.2 表达式表达式 (3)日期型日期型按日期论大小,日期或时间越往前越小。例如,2009-04-012009-05-01(4)逻辑型假小于真。即.F.T.2.2 表达式表达式 5.逻辑表达式逻辑表达式逻辑表达式用于进行逻辑运算操作符操作符功功 能能.NOT.或!逻辑非.AND.逻辑与.OR.逻辑或优先级从高到低为:.NOT.,!.AND.OR.(2006年4月真题)设X=“11”,Y=“1122”,下列表达式结果为假的是()。A)NOT(X=Y)AND(XY)B)NOT(XY)OR(Y)C)NOT(X=Y)D)NOT(XY)D2.2 表达式表达式 6.综合表达式的运算优先级综合表达式的运算优先级首先执行:数值运算符,字符运算符,日期运算符其次执行:关系运算符最后执行:逻辑运算符2.3常用函数1.数值函数数值函数INT(n)取数值n的整数部分。CEILING(n)返回大于或等于数值n的最小整数。FLOOR(n)返回小于或等于数值n的最大整数。SQRT(n)求n的算术平方根。ABS(n)返回的绝对值。MAX(n1,n2,)求n1,n2,中数值最大的。MIN(n1,n2,)求n1,n2,中数值最小的。MOD(n1,n2)求n1/n2的余数。ROUND(n1,n2)将n1的值按n2位四舍五入。MOD(n1,n2)求n1/n2的余数其中:n1是被除数,n2是除数。余数的正负号与除数相同。如果被除数与除数同号,那么函数值即为两数相除的余数;如果被除数与除数异号,则函数值为两数相除的余数再加上除数的值。2.3常用函数常用函数2.3常用函数常用函数【例例2.3】数值函数应用。?INT(680.34)&显示680?SQRT(9)&显示3.00?MAX(2,4.5,-100)&显示4.5?MOD(26,10),MOD(23,-5)&显示6-2?ROUND(1536.2854,3)&显示1536.285?ROUND(1536.2854,2)&显示1536.29?ROUND(1536.2854,0)&显示1536?ROUND(1536.2854,-1)&显示15402.3常用函数常用函数2.字符函数字符函数LEN(c)返回字符串c的长度(字符数)SPACE(n)返回n个空格的字符串。LEFT(s,n)取字符串s左边n个字符。RIGHT(s,n)取字符串s右边n个字符。SUBSTR(s,n1,n2)取字符串s第n1个字符开始n2个字符。TRIM(s)去掉字符串s右边的空格字符。LTRIM(s)去掉字符串s左边的空格字符。ALLTRIM(s)去掉字符串s左右两边的空格字符。AT(s1,s2,n)返回字符串s1在字符串s2中第n次出现的位置。没有定位到则返回0。STUFF(s1,n1,n2,s2)用s2替换s1中从第n1位开始,长度为n2的一个子串。【例例2.4】STOREGOODBYE!TOs1STOREMORNINGTOs2?STUFF(s1,6,3,s2),STUFF(s1,1,4,s2)GOODMORNINGMORNINGBYE!2.3常用函数常用函数1.(2008年9月真题)LEFT(“12345.6789”,LEN(“子串”)的计算结果是。2.(2008年4月真题)有如下赋值语句:a=“计算机”,b=“微型”,结果为“微型机”的表达式是()。A)b+LEFT(a,3)B)b+RIGHT(a,1)C)b+LEFT(a,5,3)D)b+RIGHT(a,2)3.(2008年4月真题)下列程序段执行后,内存变量s1的值是()。s1=networks1=stuff(s1,4,4,BIOS)?s1A)networkB)netBIOSC)netD)BIOS1234DB4.(2007年9月真题)命令?LEN(SPACE(3)-SPACE(2)的结果是A)1()B)2C)3D)5D5.(2007年4月真题)?AT(“EN”,RIGHT(“STUDENT”,4)的执行结果是。2 2.3常用函数3.日期函数日期函数DATE()返回当前日期。TIME()返回当前时间字符串“hh:mm:ss”。DATETIME()返回当前日期时间。YEAR(d)返回日期d年的数值。MONTH(d)返回日期d月的数值。DAY(d)返回日期d日的数值。HOUR(t)返回日期时间t的小时部分(24小时制)。MINUTE(t)返回日期时间t的分钟部分。SEC(t)返回日期时间t的秒数部分。2.3常用函数4.数据类型转换函数数据类型转换函数CTOD(s)将日期字符串s转换为日期。CTOT(s)将时间字符串s转换为时间。DTOC(d)将日期d转换为日期字符串。TTOC(t)将时间t转换为时间字符串。&.替换出字符型变量的内容。6.(2006年4月真题)在VisualFoxPro中,宏替换可以从变量中替换出()。A)字符串B)数值C)命令D)以上三种都可能7.(2005年9月真题)依次执行下列命令后的输出结果是 SETDATETOYMD()。SETCENTURYONSETCENTURYTO19ROLLOVER10SETMARKTO.?CTOD(49-05-01)A)49.05.01B)1949.05.01C)2049.05.01D)出错DB2.3常用函数常用函数5.测试函数测试函数BETWEEN(,)判断是否在和之间。ISNULL()判断表达式的结果是否为NULL值。EMPTY()判断表达式的结果是否为“空”值。IIF(,)当条件表达式为.T.时,函数取表达式1的值;当条件表达式为.F.时,函数取表达式2的值。VARTYPE(,)测试表达式的类型,返回一个大写字母。8.(2006年4月真题)在下列的VisualFoxPro表达式中,运算结果不为逻辑真的是()。A)EMPTY(SPACE(0)B)LIKE(xy*,xyz)C)AT(xy,abcxyz)D)ISNULL(.NULL.)9.(2005年9月真题)下列VisualFoxPro表达式中,运算结果为逻辑真的是()。A)EMPTY(.NULL.)B)LIKE(xy?、xyz)C)AT(xy、abcxyz)D)ISNULL(SPACE(0)CB10.(2007年9月真题)命令?VARTYPE(TIME())的结果是()。A)CB)DC)TD)出错11.(2006年9月真题)设X=65,命令?VARTYPE(X)的输出是()。A)NB)CC)LD)出错ACVisual FoxProVisual FoxPro程序文件,是一个以(程序文件,是一个以(.PRG.PRG)为扩)为扩展名的文本文件。展名的文本文件。任何可以建立、编辑文本文件的工具,都可以创建任何可以建立、编辑文本文件的工具,都可以创建和编辑和编辑Visual FoxProVisual FoxPro程序文件。这些文本编辑工程序文件。这些文本编辑工具,可以是具,可以是Visual FoxProVisual FoxPro系统提供的内部编辑器,系统提供的内部编辑器,也可以是其它常用文本编辑软件。也可以是其它常用文本编辑软件。2.4程序与程序文件2.4.1 程序的概念程序的概念 建立、编辑程序文件有两种方式建立、编辑程序文件有两种方式:1.命令方式命令方式 MODIFY COMMAND 程序文件名程序文件名 2.菜单方式菜单方式 打开打开“文件文件”菜单,选择菜单,选择“新建新建”;在;在“新建新建”窗口,选择窗口,选择“程序程序”,再选择,再选择“新建文件新建文件”;在;在“程序文件程序文件”编辑窗口,输入程序文件,并保存,编辑窗口,输入程序文件,并保存,此时建立程序文件的操作结束。此时建立程序文件的操作结束。2.4.2 程序文件的建立与执行程序文件的建立与执行 调用程序文件,即运行程序文件,是程序文件建立的最终目调用程序文件,即运行程序文件,是程序文件建立的最终目的。在的。在Visual FoxPro系统中,调用程序文件有很多方法,在系统中,调用程序文件有很多方法,在这里仅介绍其中两种方法。这里仅介绍其中两种方法。1.命令方式命令方式在在Command 窗口中,输入如下命令,则程序文件被调用。窗口中,输入如下命令,则程序文件被调用。DO 程序文件名程序文件名2.菜单方式菜单方式 以菜单方式调用程序文件,操作方法如下:以菜单方式调用程序文件,操作方法如下:(1)在)在Visual FoxPro系统主菜单下,打开系统主菜单下,打开“程序程序”菜单,选菜单,选择择“运行运行”。(2)在)在“运行运行”窗口,输入被调用的程序文件名即可。窗口,输入被调用的程序文件名即可。2.4.2 程序文件的建立与执行程序文件的建立与执行1.(2008年9月真题)ModifyCommand命令建立的文件的默认扩展名是()。A)prgB)appC)cmdD)exe2.(2008年9月真题)欲执行程序temp.prg,应该执行的命令是()。A)DOPRGtemp.prgB)DOtemp.prgC)DOCMDtemp.prgD)DOFORMtemp.prgABInput to 从键盘上接受输入,但不能不输入任何内容;从键盘上接受输入,但不能不输入任何内容;为字符表达式,起提示说明作用;为字符表达式,起提示说明作用;可接受的数据类型:字符型、数值型、逻辑型、可接受的数据类型:字符型、数值型、逻辑型、日期型、日期时间型日期型、日期时间型输入字符常量必须加定界符,逻辑型常量必须输入字符常量必须加定界符,逻辑型常量必须用圆点定界,日期型和日期时间型要用严格的用圆点定界,日期型和日期时间型要用严格的日期格式。日期格式。2.4.3 简单的输入输出命令简单的输入输出命令2.4.3 简单的输入输出命令简单的输入输出命令例:例:clearinput 请输一个字符数据请输一个字符数据 to a?a的数据类型是的数据类型是?vartype(a)if vartype(a)C wait windows 数据类型错误数据类型错误 at 10,10endif 2.4.3 简单的输入输出命令简单的输入输出命令accept to 只能接受字符串,输入时不需要加定界符只能接受字符串,输入时不需要加定界符如果不输入任何内容而直接按回车键,系统会如果不输入任何内容而直接按回车键,系统会把空串赋给指定的内存变量。把空串赋给指定的内存变量。例:例:accept 输入字符数据输入字符数据 to a?a的数据类型是的数据类型是?vartype(a)2.4.3 简单的输入输出命令简单的输入输出命令wait to 不指定提示信息,则默认为不指定提示信息,则默认为“按任意键继续按任意键继续”如果指定了如果指定了window子句,则出现一个提示框子句,则出现一个提示框使用使用timeout子句设定等待时间子句设定等待时间2.4.3 简单的输入输出命令简单的输入输出命令例:例:clearwaitwait 你好!你好!wait windowswait windows 你好!你好!wait windows at 5,5 wait windows at 5,50 nowaitwait windows at 5,5 timeout 5wait to s window at 10,10 timeout 5顺序结构由一系列语句组成,程序运行时按顺序执行语句。【例例2.5】一个简单的求ax2+bx+c=0的方程的解程序。a=2b=1c=-1TEMP=b*b-4*a*cx1=(-b+SQRT(TEMP)/(2*a)x2=(-b-SQRT(TEMP)/(2*a)?x1,x2&显示-0.5000-1.0000l建立程序文件123.PRG:MODICOMM1232.5程序的基本结构程序的基本结构简单的求简单的求ax2+bx+c=0方程解程序方程解程序l执行程序文件123.PRGDO123主窗口显示:-1.0000-4.00002.5.1选择结构选择结构就是如果条件成立,执行指定的语句序列。选择结构语句包括IF分支和CASE分支。1.简单形式的条件语句简单形式的条件语句 语法格式:IF ENDIF功能:若条件表达式为.T.,则执行语句序列1,然后转向ENDIF的下一条语句;否则直接转向ENDIF的下一条语句去执行。if条件条件语句序列语句序列1endif语句序列语句序列2假假真真例:从键盘上输入两个数,例:从键盘上输入两个数,按从小到大的顺序输出。按从小到大的顺序输出。开始开始输出输出a,bab第一个数第一个数-a第二个数第二个数-b不成立不成立成立成立输出输出b,aInput“输入第一个数:输入第一个数:”to aInput“输入第二个数:输入第二个数:”to bIf(ab)?b,aendif?a,b语法格式:IF ELSE ENDIF 2.5.1选择结构2.一般形式的条件语句一般形式的条件语句功能:若条件表达式为.T.,执行语句序列1,否则执行语句序列2。if条件条件语句序列语句序列1endif语句序列语句序列3语句序列语句序列2 假假 真真1.(2005年9月真题)下列程序段的输出结果是()。ACCEPTTOAIFA=123456S=0ENDIFS=1?SRETURNA)0B)1C)由A的值决定D)程序出错B2.下面程序的运行结果是()。(2008年4月真题)SETEXACTONs=ni+SPACE(2)IFs=niIFs=ni?oneELSE?twoENDIFELSEIFs=ni?threeELSE?fourENDIFENDIFRETURNA)oneB)twoC)threeD)fourC先在较短字符串尾部加先在较短字符串尾部加上若干空格上若干空格3.多分支语句多分支语句DOCASE.ENDCASE语法格式:DO CASE CASE CASE CASE OTHERWISE ENDCASE2.5.1选择结构真真endcase后的语句后的语句语句序列语句序列1语句序列语句序列2语句序列语句序列n条件条件1条件条件2条件条件notherwise语句序列语句序列假假假假假假真真真真有有2.5.2循环结构循环结构是在指程序执行过程中,其中的某段代码被重复执行若干次。1.DO WHILEENDDO语句语句语句格式:do while enddo语句序列中遇到退出循环语句EXIT,退出循环体,执行ENDDO后面的语句。这些规则也适用FOR循环和SCAN循环。do while条件条件enddo后面的语句后面的语句循环体循环体真真假假例:求例:求S=1+2+100clears=0i=1do while i=100 s=s+i i=i+1enddo?“S=“,sreturn Yi=i+1NY开始开始打印打印ss=0i=1结束结束s=s+ii=1001.下列程序显示的结果是 。(2005年4月真题)s=1i=0dowhilei0y=x%10+y*10 x=int(x/10)ENDDOA)3456B)34567C)7654D)765433.(2008年4月真题)下列程序段执行以后,内存变量y的值是()。CLEARx=12345y=0DOWHILEx0y=y+x%10 x=int(x/10)ENDDO?yA)54321 B)12345C)51D)15BD4.(2007年9月真题)下面程序计算一个整数的各位数字之和,在下划线处应填写的语句是()。SETTALKOFFINPUTx=TOxs=0DOWHILEx!=0s=s+MOD(x,10)ENDDO?sSETTALKONA)x=int(x/10)B)x=int(x%10)C)x=x-int(x/10)D)x=x-int(x%10)A显示显示VFP命令执行的状态。命令执行的状态。不显示不显示VFP命令执行的命令执行的状态。状态。5.(2007年4月真题)执行下列程序,显示的结果是 。one=WORK two=a=LEN(one)i=a DO WHILE i=1 two=two+SUBSTR(one,i,1)i=i-1 ENDDO?two KROW 2.5.2循环结构2.FORENDFOR语句语句语句格式:for=to step endfor|next只要变量的值小于等于终值,重复执行循环体中的语句序列。具体执行步骤如下:(1)给变量赋初值;(2)判断循环变量的值是否小于等于终值;(3)若不是,则循环结束;(4)若是,则执行语句序列;(5)变量=变量+步长,(若省略STEP,则步长=1);(6)转(2)。2.5.2循环结构循环变量加步长循环变量加步长循环变量和循环变量和终值比较终值比较endfor后面的语句后面的语句循环体循环体给循环变量赋初值给循环变量赋初值假假真真2.5.2循环结构3.SCAN ENDSCAN语句语句scan for where endsacn的默认值为的默认值为ALL。1.(2005年4月)在 Visual FoxPro 中,如果希望跳出 SCAN ENDSCAN循环体,执行 ENDSCAN 后面的语句,应使用()。A)LOOP 语句 B)EXIT 语句 C)BREAK 语句 D)RETURN语句 2.(2005年9月)在VisualFoxPro中,可以使用语句跳出SCAN.ENDSCAN循环体外执行ENDSCAN后面的语句。BEXIT 2.6 多模块程序设计多模块程序设计程序模块模块语句语句1211232232程序由语句程序由语句和模块组成和模块组成模块是一个独立的程序段,模块是一个独立的程序段,可以被其他模块和程序调可以被其他模块和程序调用,也可以调用其他模块用,也可以调用其他模块2.6.1模块的定义和调用模块的定义和调用模块可以是子程序,也可以是过程。子程序和前面讲的程序一样是一个独立的.PRG文件。可以被主程序和其他子程序调用。过程是能够完成某项功能的一段程序代码,可以放在程序代码的后面,也可以保存在单独文件里,叫做过程文件其扩展名也是.PRG。procedureendprocfunctionendfunc必须以字母和必须以字母和下划线开头下划线开头1.模块及其定义模块及其定义2.模块的调用模块的调用 格式1:DO|格式2:在名字后面加一对小括号|()2.6.1模块的定义和调用模块的定义和调用过程可存放在下列位置:(1)一个独立的程序的结束语句后面可同时存放多个过程,包含该过程的程序可直接调用该过程。(2)在一个过程文件中,集中存放多个过程。要调用过程文件中的过程,首先要打开过程文件,一旦过程文件被打开,那么其中的所有过程都可以被调用。格式:格式:SETPROCEDURETO过程文件名表ADDITIVE系统可同时打开多个过程。选ADDITIVE,在打开当前过程文件时原先的过程不关闭。不再使用过程文件时用RELEASEPROCEDURE命令关闭指定过程文件。2.6.1模块的定义和调用模块的定义和调用格式格式1:PARAMETERS变量名表格式格式2:LPARAMETERS变量名表VFP中,参数传递有下列两种方法:(1)按引用方式传递调用程序通过引用方式向过程传送变量和数组。如果在被调用的过程中一个值被改变,则新的值被送回调用程序的相关的变量或数组中。(2)按赋值方式传递如果要通过赋值方式向过程传送变量或数组,被调用的过程中任何参数的改变都不会传送到调用程序相关的变量或数组中。2.6.2参数传递参数传递传递参数的语句(用在主程序中)do文件名或过程名with实参文件名或过程名(实参)接受参数的语句(与传递参数的do语句配合使用,放在被调用模块中作为第一条执行语句)parameters形参2.6.2参数传递参数传递clearm=1n=2doAA?m,nprocedureAAm=100n=200returnendprocclearm=1n=2doAAwithmc=AA(n)?m,n,cprocedureAAparametersxx=100returnxendproc格式格式1格式格式2如果采用格式1,则:如果采用格式2,则:实参:实参:m形参:形参:x形参:形参:x实参:实参:n2.6.3变量的作用域变量的作用域变量的作用域全局变量(公共变量)局部变量私有变量2.6.3变量的作用域变量的作用域公共变量可在任何模块和程序中使用,而且在VF运行环境内都一直可见。定义方法:1.在命令窗口定义的变量都是公共变量;2.在文件中使用public声明public私有变量在建立该变量的模块及其下属各层模块中使用,在其上层模块中不可用。在程序中直接使用没有特别声明的变量都是私有变量。2.6.3变量的作用域变量的作用域声明式私有变量用private声明上层模块中已经存在的变量,使得上层模块定义的变量在当前暂时无效。定义方法:private局部变量只能在建立它的模块中使用,不能在上层或下层模块中使用。定义方法:local该命令建立指定的局部内存变量,并为它们赋初值逻辑假.F.1.(2009年3月真题)在VisualFoxPro中,有如下程序,函数IIF()返回值是()。*程序PRIVATEX,YSTORE男TOXY=LEN(X)+2?IIF(Y4,男,女)RETURNA)女B)男C).T.D).F.2.(2008年4月真题)在VisualFoxPro中,如果要在子程序中创建一个只在本程序中使用的变量xl(不影响上级或下级的程序),应该使用说明变量。3.(2006年9月真题)如果有定义LOCALdata,data的初值是()。A)整数0B)不定值C)逻辑真D)逻辑假 A LOCALD3.(2007年4月真题)在VisualFoxPro中,如果希望内存变量只能在本模块(过程)中使用,不能在上层或下层模块中使用,说明该种内存变量的命令是()。A)PRIVATEB)LOCALC)PUBLICD)不用说明,在程序中直接使用B4.(2009年3月真题)在VisualFoxPro中,有如下程序:*程序名:TEST.PRGSETTALKOFFPRIVATEX,YX=数据库Y=管理系统DOsub1?X+YRETURN*子程序:sub1PROCEDUsub1LOCALXX=应用Y=系统X=X+YRETURN执行命令DOTEST后,屏幕显示的结果应是。数据库系统2009年3月真题:1.在VisualFoxPro中,用于建立或修改程序文件的命令是()A)MODIFYB)MODIFYCOMMAND C)MODIFYPROCEDURED)上面B和C都对2.在VisualFoxPro中,程序中不需要用PUBLIC等命令明确申明和建立,可直接使用的内存变量是()A)局部变量B)私有变量C)公告变量D)全局变量3.以下关于空值(NULL值)叙述正确的是()A)空值等于空字符串B)空值等同于数值0 C)空值表示字段或变量还没有确定的值D)VisualFoxPro不支持空值4.常量2009-10-01,15:30:00的数据类型是。5.在VisualFoxPro中,程序文件的扩展名是。BBC日期时间型日期时间型.prg
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!