![vfp程序设计基础_第1页](http://file4.renrendoc.com/view/3d6d2a1ff579a816306011639efa03f6/3d6d2a1ff579a816306011639efa03f61.gif)
![vfp程序设计基础_第2页](http://file4.renrendoc.com/view/3d6d2a1ff579a816306011639efa03f6/3d6d2a1ff579a816306011639efa03f62.gif)
![vfp程序设计基础_第3页](http://file4.renrendoc.com/view/3d6d2a1ff579a816306011639efa03f6/3d6d2a1ff579a816306011639efa03f63.gif)
![vfp程序设计基础_第4页](http://file4.renrendoc.com/view/3d6d2a1ff579a816306011639efa03f6/3d6d2a1ff579a816306011639efa03f64.gif)
![vfp程序设计基础_第5页](http://file4.renrendoc.com/view/3d6d2a1ff579a816306011639efa03f6/3d6d2a1ff579a816306011639efa03f65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、当今世界上两大计算机程序设计的方法面向过程的结构化程序设计、面向对象程序设计本章节为VFP的重点与难点部分注重理解,掌握结构,灵活运用1目录7.1 创建、修改和运行应用程序7.2 VFP基本语法结构7.3 数组7.4 过程和用户自定义函数7.5 变量的作用域7.6 综合应用27.1 创建、修改和运行应用程序7.1.1 创建应用程序 (3种方式)一、VFP系统菜单创建文件 | 新建 |程序 | 创建新文件注 创建的文件不在项目中二、项目管理器创建代码 | 程序 | 新建注 创建的文件在项目中三、命令窗口直接输入方式Modify command 程序名注 创建的文件在默认位置注程序的扩展名为:.P
2、RG37.1.2 修改程序 (4种方式)一、VFP系统菜单文件 | 打开| 选择程序 二、项目管理器代码 | 选择程序 | 修改注 该程序应在项目中三、命令窗口输入Modify command 程序名注 该程序应在默认位置四、命令窗口输入Modify command ?显示对话框47.1.3 运行程序 (3种方式)一、VFP系统菜单程序 | 运行 | 显示对话框,选择程序 二、项目管理器代码 | 选择程序 | 运行注 该程序应在项目中三、命令窗口输入 DO 文件名 注 如果不指明文件的位置,则执行默认位置的程序;如果程序不在默认位置,必须加路径。例如: Do d: 项目 p2.prg57.2
3、VFP基本语法结构 在程序设计语言中,程序控制是程序设计语言的精髓所在,在结构化程序设计中,程序一般采用3种结构组成: 顺序结构 条件分支结构 循环结构67.2.1 程序中常用的命令 1、最常用的屏幕输出命令:?? 数据1,数据2, & 输出前先换行? 数据1,数据2, &接着上一行数据输出2、清除屏幕命令命令格式: CLEAR ALL命令功能: 清除屏幕注:使用ALL将不清除屏幕,而是释放所有内存变量、数组、用户定义的菜单和窗口、关闭所有打开的表、索引等文件;73、注释命令命令格式一: NOTE 命令格式二: * 命令格式三: & 命令功能: 注解,系统不对其作语法检查注:NOTE 和 *
4、必须写在每一行的开头& 可以写在每一行的开头,也可以写在命令的后面84、运行中断和结束命令命令格式一: QUIT功能: 关闭所有文件,并结束VFP系统的运行,返回到Windows桌面。命令格式二: CANCEL功能: 终止程序的执行,返回到命令窗口。命令格式三: RETURN功能: 结束所在程序的执行5、赋值命令命令格式:STORETO 变量1,变量2功能: 将数据存入变量、数组、数组元素中。95、常用系统状态设置命令Set talk on | off (默认是on) 是否在屏幕上显示命令执行的响应信息Set escape on | off (默认是允许) 是否允许用户用【Esc】键取消程序的
5、执行。Set deleted on | off (默认是允许) 是否允许使用做了逻辑删除的记录Set default to 指定默认的盘符和路径Set console on | off 设置是否将输出信息在窗口上显示10程序交互命令1、等待命令WAIT格式: WAIT提示信息 TO WINDOWAT , TIMEOUT 功能: 程序执行到该命令时,显示提示信息 ,然后等待用户从键盘上输入一个字符,并将该字符输入到指定的内存变量中。例:wait “按任意键继续” timeout 6 &超过6秒系统终止该命令的执行,执行下面的命令。wait “按任意键继续“ &按任意键终止该命令的执行,执行下面的
6、命令。wait “按任意键继续” window &显示一个窗口,其中有提示信息。wait “按任意键继续” window at 5,10 & 指定窗口的位置112、输入命令INPUT格式:input 提示信息 TO功能:暂停程序运行,等待键盘输入数据,当键入回车符后,继续执行下面的命令。 可以输入数值型数据,也可以输入字符型数据,字符型数据必须加引号。例:input 输入数据: to vname、接受命令ACCEPTACCEPT提示信息 TO 只能接受字符型数据,输入时不需要加引号。127.2.2 顺序结构程序设计按语句排列的先后顺序,依次逐条执行。例7-1,显示学生表中任意一个学生的姓名和系
7、名ClearUse xsInput 输入记录号: to rGo r? xh, xmusereturn13例7-2 程序运行结果?input enter a: to ainput enter b: to b? a=+ltrim(str(a),b=+ltrim(str(b)c=aa=bb=c? a=+ltrim(str(a),b=+ltrim(str(b)输入给a, 输入给b显示:a=3 b=4 a=4 b=3147.2.3 分支结构程序设计条件分支根据条件的测试结果执行不同的操作。2种命令:IFELSEENDIFDO CASEENDCASE一、 IFELSEENDIF格式:IF 条件表达式命令组
8、ENDIFIF 条件表达式命令组1ELSE 命令组2ENDIF当条件表达式结果为.T.时,执行命令组1。当条件表达式结果为.F.时,执行命令组2。执行完组1或组2后,执行ENDIF后面命令。通常,使用于只有两个分支的情况。当条件表达式结果为.T.时,执行命令组。执行完,执行ENDIF后面命令。当条件为.F.时,执行ENDIF后面命令。15例7-if:输出2个数中大的数input enter a: to ainput enter b: to bif ab ? 大的数是: ,aelse ? 大的数是: , bendif16 If嵌套IF 条件表达式命令组1ELSE 命令组2ENDIF这里的命令组还
9、可以是if语句f(x)=1 x00 x=0-1 x0 y=1else if x=0 y=0 else y=-1 endifendif? y17二、 DO CASEENDCASE格式:DO CASECASE 条件表达式1命令序列1CASE 条件表达式2命令序列2 OTHERWISE其他命令序列 ENDCASE 从第一个CASE开始,判断条件表达式的值是否为.T. 当遇到第一个结果为.T.的CASE表达式,就执行它后面的命令序列 然后执行ENDCASE后面的命令。 若所有CASE表达式都为.F.,则执行OTHERWISE后面的命令序列。 通常,用于多于两个分支的情况18DO CASEENDCASE
10、条件1命令组1条件2命令组2条件 n命令组n其他命令组19例7-case,根据分数输出等级。cj=90 输出“优”75=cj90 输出“良”60=cj75 输出“合格”cj=90 ? 优 case cj=75 .and. cj=60 .and. cj= 0 x1=(-b+sqrt(d)/2/a x2=(-b-sqrt(d)/2/a ? 该方程的解为: ? x1=,x1 , x2=,x2Else ? 该方程无实数解。Endif ax 2+bx+c=0判别式 d=b2-4ac=0 x1= x2=227.2.4 循环结构程序设计循环是重复执行一组语句若干次,其中被循环执行的一组语句称为循环体。在VF
11、P中,实现循环的语句主要有三种:FORENDFORDO WHILEENDDO SCANENDSCAN23一、FORENDFOR语句格式:FOR 循环变量=初值 TO 终值 STEP 步长值循环体ENDFORFOR循环的执行过程如下: 将初值赋给循环变量; 判断循环变量的值是否超出终值; 若超出终值,结束循环,执行ENDFOR后命令; 若未超出终值,执行语句组; 循环变量=循环变量+步长值; 转到重复上述 步骤。24例 计算1100之间所有的自然数和。 1+2+3+100s=0for i=1 to 100 step 1 s = s+iendfor? s说明:该语句主要使用于给定次数的循环。循环开
12、始语句为FOR,结束语句为ENDFOR。若“step 步长”不写,默认步长为1;25多项式求和是基本算法例: 1+3+5+99 1!+2!+10! 1+1/2+1/3+1/100 2/1+3/2+5/3+8/5+前20项的和 sum=sum + ?26例: 计算一个字符串中包括多少个汉字。基本算法:从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。clearcstring=学习 Visual FoxPro数据库管理系统ncount=0for i=1 to len(cstring) if asc(substr(cstring,i,1)127 ncount=n
13、count+1 i=i+1 endifendfor? 汉字个数为:,ncount 27二、DO WHILEENDDO 语句格式:DO WHILE 循环体ENDDO执行过程如下: 先判断,值为.T.则执行循环体,否则出循环,执行ENDDO下面语句说明: 当循环次数未知,需根据某一条件决定是否循环时使用。 循环体中一般须存在能改变循环条件的语句,用于能正常退出循环。28例 计算10的阶乘。S=1N=1Do while n=10 s = s*n n = n+1Enddo? s用for循环完成:s=1 for n=1 to 10 step 1 s = s*n endfor ? s29例 计算1100的
14、偶数和与奇数和cleareven=0odd=0i=1do while i=100 if i%2=0 even=even+i else odd=odd+i endif i=i+1enddo? 偶数和=,even? 基数和=,odd 30例 将十进制数转换成二进制数表示。算法:除2取余,先得到的余数是低位,后得到的余数是高位。clear d=int(rand()*100+1)? dbinary=space(0)do while d#0 b=d%2 binary=str(b,1)+binary d=int(d/2)enddo? binary 31例7-a 将所输入的字符串倒序输出.input inp
15、ut a string: to chi=1mch=Do while i80dispinkey(0.6)endscan37例:逐条显示xs表中第10条记录内的偶数行记录clearuse xsscan for recno()%2=0 while recno()%10!=0 dispinkey(0.6)Endscan显示第2、4、6、8条记录& 注意,改写如下scan for recno()%2=0 and recno()1038下列两段程序结果是否一致?Use xs n=0Scan all n=n+1 skip 1Endscan? n use xs n=0 Do while not eof() n
16、=n+1 skip 1 Enddo ? n不同, Scan 命令会自动将记录指针后移, Do while not eof()不会移记录指针如果xs有16个记录,前者输出8,后者输出1639四、 循环结构中的LOOP命令与EXIT命令1、如果在循环体中,执行到LOOP语句,将跳过LOOP语句与循环出口之间的所有语句,返回到循环入口的语句,进行下一次循环。2、如果在循环体中,执行到EXIT语句,则跳出循环。比较2个程序:for k=1 to 10if k%2=0 loopendif? kendfor for k=1 to 10if k%2=0 exitendif? kendfor 显示1 3 5
17、7 9显示140例:信用卡身份密码安全检测,允许最多出错3次,否则吞卡。ma=12345 & 预留密码n=0 & 密码输入次数do while .t. Input please input your password: to x If x=ma ? welcome! exit &完成业务,退出 else n=n+1 if n3 loop &允许继续输入密码 else ? warn ! 吞卡 exit &不允许继续输入密码 endif endifenddo417.3 数组数组由若干元素组成,属于内存变量。数组必须先定义,后使用。一、数组的声明1、DIMENSION 数组名行,列 &私有数组2、D
18、ECLARE 数组名行,列 &私有数组3、PUBLIC 数组名行,列 &全局数组4、LOCAL 数组名行,列 &局部数组42例: DIMENSION a5 ,b2,3 &也可以用圆括号DIMENSION a(5),b(2,3)a数组有5个元素,b数组有6个元素,系统给a数组和b数组连续的存储空间。43数组的逻辑结构:A1A2A3A4A5数组的存储结构:B1,1B1,2B1,3B2,1B2,2B2,344二、为数组元素赋值DIMENSION a2,4 a1,2=2 &或 a(1,2)=2 a=5 &给a数组所有元素赋值5 a2,3=.t. a2,1=: a5=100 &即a2,1=100注意:数
19、组在声明后,每个元素默认地赋予.F.list memory like a 显示a数组所有元素值 45例分析程序运行结果 dime a10 for i=1 to 10 ai=i*i endfor for i=1 to 10 ? ai endfor46例:产生10个10,90之间的随机整数,找出最大的数cleardime a10 for i=1 to 10 ai=int(rand()*81)+10 ? ai endfor nmax=a1 for i=2 to 10 if nmaxai nmax=ai endif endfor ? max=+allt(str(nmax)47三、在数组与表之间传送数据
20、1、SCATTER TO 将当前表当前记录的数据存入数组,可以是未定义的新数组,也可以是已定义的数组。clearuse xsgo 2scatter to alist memory like a482、GATHER FROM 将数组中的记录存入当前记录cleardimension a5use xsgo 2a1=00001a2=张三a3=男a4=102002a5=计算机科学gather from a比较前后2个表的数据493、COPY TO ARRAY 将当前表中所有记录存入2维数组cleardimen a5,5use xscopy to array afor i=1 to 3 ? for j=1
21、 to 5 ? ai,j next endforlist memory like a504、APPENDFROM ARRAY 用数组中的数据在表中添加记录(2维数组同样)cleardimension a5use xsa1=00002a2=李民a3=男a4=102002a5=计算机科学append from array a515、SELECTFROMINTO ARRAY SELECT-SQL语言,可以传输查询结果到数组中clearDimension s5,4select xs.xh , xm, kc.kcm, cj.cj;from jxsjk!xs , jxsjk!kc , jxsjk!cj;w
22、here xs.xh=cj.xh and kc.kcdh=cj.kcdh;order by Xs.xh;Into array s list memory like s &disp memory like s526、INSERT INTOFROM ARRAY INSERT -SQL语言,向表中添加一条新记录,并以数组中的数据填充这条记录Dimension s2,5S1,1=001S1,2=李力S1,3=男S1,4=a01S1,5=英语S2,1=002S2,2=王可S2,3=男S2,4=a01S2,5=英语Insert into xs from array s53四、处理数组元素(可以用如下函数处
23、理数组元素)1、数组元素的排序ASORT( )格式:ASORT(数组名,起始位置,排序个数,排序方法)例:排序cleardimension a10for i=1 to 9 step 2ai=inextfor i=2 to 10 step 2ai=-inextlist memory like aasort(a)list memory like aasort(a,3,-1,1) 从第3个到最后一个,降序排, 第4个参数 0表示升序,1表示降序asort(a) 升序54例 : 搜索cleardimension a2,5a1,1=00003a1,2=王民a1,3=男a1,4=102003a1,5=计算
24、机科学a2,1=00004a2,2=李克a2,3=男a2,4=102002a2,5=计算机科学set exact on? ascan(a,李克,1,10)显示: 7说明? ascan(a,李克,1,10)表示在数组a中,从第1个元素到第10个元素查找,与李克相同的元素,函数值为元素下标set exact on设置字符串精确匹配2、数组元素的搜索ASCAN( )格式:ASCAN(数组名,表达式,起始位置,查询个数)55例: 删除cleardimension a2,5a1,1=00003a1,2=王民a1,3=男a1,4=102003a1,5=计算机科学a2,1=00004a2,2=李克a2,3=
25、男a2,4=102002a2,5=计算机科学adel(a,1)list memo like a结果,删除第1行,第2行向前补,最后一行填入.F. 。adel(a,1,2) 是删除第1列,后面的4列向前移,最后一列填.F.对于一维数组来说是删除一个元素3、元素的删除ADEL( )格式:adel(数组名,元素位置,2)可以删除一维数组中的一个元素或二维数组中的一行或一列。56例:插入cleardimension a3,5a1,1=00003a1,2=王民a1,3=男a1,4=102003a1,5=计算机科学a2,1=00004a2,2=李克a2,3=男a2,4=102002a2,5=计算机科学ai
26、ns(a,2)list memo like a结果,插入第2行,原第2行向下移,第2行填入.F. 。ains(a,3,2) 是插入第3列,后面的列向右移,第3列填.F.对于一维数组来说是插入一个元素4、插入AINS( )格式:AINS(数组名,元素位置,2)可以插入一维数组中的一个元素或二维数组中的一行或一列。57用数组对数据排序例 选择法排序。升序排列。算法说明:在a ia10中找最小的,放到a i中, i=1 to 9clear dime a10for i=1 to 10 ai=int(rand()*90)+10 ? aiEndfor?for i=1 to 9 k=i for j=i+1
27、to 10 if a( k)a( j) k=j endif endfor t=a(i) a( i)=a( k) a( k)=tendforfor i=1 to 10 ? aiEndfor 在a ia10中找最小的,下标放在k中a i与ak交换数据58例: 冒泡法排序,10个数按从小到大顺序排clear dime a10for i=1 to 10 ai=int(rand()*90)+10 ? aiendfor?for k=9 to 1 step -1 for i=1 to k if a(i)a(i+1) t=a(i) a(i)=a(i+1) a(i+1)=t endif endforendfor
28、for i=1 to 10 ? aiendfor 算法说明:相邻两个数比较,小的数放到前面,大的数放到后面。 i=1 to k (k=9,8,7,.1)If a iai+1 t=a i ,a i=ai+1,ai+1=t597.4 过程和用户自定义函数把多次重复使用的、具有某种功能的一段代码独立出来,创建一个过程或自定义函数,供其它程序调用,该程序段称为子程序。VFP中的过程或用户自定义函数属于子程序。子程序是结构化程序设计的主要特点,一个应用程序的许多功能可以编写成一个个独立的程序段,供其它程序调用。60用户自定义函数的存储存储于独立的程序文件中或主程序的底部,但不能把可执行的主程序代码放在过
29、程和函数之后。* 存储于过程文件中* 如果创建的过程或函数是用来处理数据库中的表,可以将过程存储于数据库的存储过程中。61过程和用户自定义函数的创建与调用1、过程的定义PROCEDURE PARAMETER &形式参数 ENDPROC2、函数的定义FUNCTION PARAMETER &形式参数 ENDFUNC62调用过程或函数过程方式调用DO 过程名 with 参数 &实际参数函数方式调用函数名(参数) &实际参数注 过程方式和函数方式都可以调用过程及函数63显示clear? 调用函数f1() &调用函数*定义函数function f1? 运行函数 endfunc64例:定义一个函数ntoc
30、(),当传递给一个09之间的阿拉伯数字时,返回“AJ”中对应一个英文字母。function ntoc parameter x source=ABCDEFGHIJ result=substr(source,x+1,1) return resultEndfunc要求写主程序调用65参数传递1、向过程或函数传递参数定义时参数写法(形参)在PROCEDURE或FUNCTION命令后的第一个可执行语句必须是PARAMETERS语句。格式: PARAMETERS &形参,用逗号隔开调用时参数写法(实参) 用WITH子句传参数DO WITH &实参,用逗号隔开 函数调用方式(参数表)66用自定义函数完成cl
31、ear? Area(3,5)m=4n=5? Area(m,n)Function area Parameters x,yS=x*yReturn sendfunc用过程完成clearDo Area with 3,5m=4n=5Do Area with m,nProcedure areaParameters x,yS=x*y? SEndproc例:求矩形面积672、参数传递的两种方式 按引用传递(地址传递方式) 地址传递方式,是将作为实参变量的地址传递给被调程序的形参。地址传递时,主调程序的实参与被调程序的形参使用相同的存储器地址,一旦当形参的值发生改变,则实参的值也随之改变。 按值传递 将实参的值
32、直接传送给被调程序的形参,当被调程序的形参的值发生变化时,实参原来的值不变化。用DO 命令调用过程或函数默认情况下是引用传递.函数方式调用,默认是按值传递68例:DO方式调用自定义函数(地址传递)p=2? P do udf with p? P function udf parameters qq=q*10? “q=”,qendfunc运行结果: 2 q= 20 20 例: 函数方式调用自定义函数(值传递)p=2? P udf(p) ? “p=“,p function udf parameters qq=q*10? “q=”,qendfunc运行结果: 2 q= 20 p= 269例:DO方式调
33、用自定义过程(地址传递)p=2? P do udf with p ? P proc udf parameters qq=q*10? “q=”,qendproc 运行结果: 2q= 20 20例:函数表达式方式调用自定义过程(值传递)p=2? P udf(p) ? “p=“, P proc udf parameters q q=q*10? “q=”,qendproc 运行结果: 2 q= 20 p= 2 703、改变传递方式有2种方法可以改变默认的参数传递方式 用SET UDFPARMS TO命令 主程序中,在调用用户自定义函数或过程前, 若先执行 SET UDFPARMS TO REFEREN
34、CE则,设置为按引用/地址传递方式; 若先执行 SET UDFPARMS TO VALUE则,设置为按值传递方式。 使用来强制采用地址传递方式 函数方式调用时,用括号括起一个变量,则设定按值传递;在一个实参变量前加符号,可以设定以引用传递方式传递。 71clearp=2? p=,P udf( p) ? p=, P proc udf parameters q q=q*10? q=,qendproc 结果: p= 2 q= 20 p= 20程序72函数的返回值用RETURN命令将值返回,一次只能返回一个数据。命令格式:RETURN表达式|TO MASTER |TO 过程名功能:RETURN 表达式
35、 &返回一个值给调用程序;RETURN TO MASTER &直接返回到主程序。RETURN TO 过程名 &返回到指定的过程。省略RETURN,其缺省的返回值为真(.T.)73子程序调用的流程主程序子程序f1子程序f2调用f1调用f274注substr(cString, p*2+1, 2)在cString中,从第p*2+1位置开始,取2个FUNCTION ntoc PARAMETERS p cString=零一二三四五六七八九 RETURN substr(cString, p*2+1, 2)ENDFUNC例7-20输入一个09的数字返回一个中文的零九Cleardo while .t. Inp
36、ut please input 09: to t if t9 return &返回到上级程序中 endif ? ntoc(t)enddo75注:子程序子程序是结构化程序设计的主要特点一个应用软件由一个主程序多个子程序组成主程序可以调用子程序子程序还可以调用子程序,VFP允许嵌套的DO调用层数为128层767.5 变量的作用域一个应用程序一般包含多个程序模块,在各程序模块中要使用变量和数组。根据变量和数组在程序模块中作用范围不同,可将变量和数组分为三类:全局、局部和私有。 类型 作用域全局变量和数组 任何程序模块局部变量和数组 只限于其创建模块中私有变量和数组 只限于其声明模块及下层模块中77变
37、量的声明全局 PUBLIC 局部 LOCAL私有 PRIVATE例如: PUBLIC a,b注1、在程序中未用上述命令指定的变量默认为私有变量。2、在命令窗口中创建的变量或数组被自动赋予全局属性。78clearpublic a,ca=篮球b=足球c=排球 f( ) ? a ? b function f local b a=网球 b=a+c ? b endfun网球排球网球足球结果例如797.6 综合应用例7-21 输入一个数字(06),用中英文显示星期几ClearInput 输入数字(06): to n do case case n=1 m=星期一(Monday) case n=2 m=星期二
38、(Tuesday) case n=3 m=星期三(Wednesday)“ case n=4 m=星期四(Thursday) case n=5 m=星期五(Friday) case n=6 m=星期六(Saturday) case n=0 m=星期日(Sunday) OTHERWISE m=重新输入!endcase? 数字+ltrim(str(n)+ 是:+m80例7-23 30个人在饭店用餐,其中有男人、女人和小孩。每个男人花了3个先令,每个女人花了2个先令,每个小孩花了1个先令,一共花去50个先令,问男人、女人和小孩各有多少人? clear for x=1 to 16 for y=1 to
39、24 z=30-x-y if 3*x+2*y+z=50 ? x,y,z endif endfor endfor假设男人有x个女人有y个小孩有z个则x+y+z=303x+2y+z=5081例7-24 一个班有50个同学,要随机地抽出10个同学组成“计算机兴趣小组”,编制程序如下:ClearDime student10For i=1 to 10 x=int(rand()*50)+1 k=0 for j=1 to i-1 if x=studentj i=i-1 k=1 exit endif endfor If k=1 loopendifstudenti=xendfor?计算机兴趣小组:For i=1
40、 to 10 ? studentiEndforreturn产生随机数去掉相同数82例7-25,打印杨辉三角形的前8行 clear dime a(8,8) for i=1 to 8 a(i,i)=1 a(i,1)=1 endfor for i=3 to 8 for j=2 to i-1 a(i,j)= a(i-1,j)+ a(i-1,j-1) endfor endfor 1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1 1 7 21 35 35 21 7 1for i=1 to 8 for j=1 to i ? Substr(str(
41、a(i,j),6) endfor ? endfor83*例7-27,求方阵的两个对角线元素和clear public a3,3 ?矩阵: ? for i=1 to 3 for j=1 to 3 ai,j=int(rand()*50) ? str(ai,j,5) endfor ? endfor s1=0 for i=1 to 3 s1=s1+ ai,i endfor s2=0 for i=1 to 3 s2=s2+ ai,4-i endfor?主对角元素之和=,str(s1,5)?次对角元素之和=,str(s2,5)84例:设计一个8进制变10进制转换器input to nC=alltrim(s
42、tr(n)x=0for i=1 to len(c) x = x*8 + val(substr(c,i,1)endfor? x 85VFP二级考试笔试题2002年(秋)VFP二级考试笔试28.执行下列程序段后,显示的结果是:_。SET TALK OFF &关闭人机对话CLEARX=“18”Y=“2E3” Z=“ABC”?VAL(X)+VAL(Y)+VAL(Z) &求值;A. 2018.00 B. 18.00 C. 20.00 D. 错误信息862002年(秋)VFP二级考试笔试7.已知学生表(XS.DBF)第一条记录内容如下:XH字段值为“990101”,XM的字段值为“李林”,XB字段值为“男
43、”,CSRQ字段值为08/23/82,XIMING字段值为“信息管理系”。设系统日期为2002年10月12日,则下列命令执行后,M、N、MN的值分别为_。USE XSM=ALLTRIM(XM)+SPACE(LEN(XB)+ALLTRIM(XIMING)N=YEAR(DATE()-YEAR(CSRQ)NJ=SUBSTR(XH,1,2)NN=YEAR(DATE()-1900-VAL(NJ)MN=IIF(MONTH(DATE()=9,STR(NN+1,2)+“年级”,STR(NN,2)+“年级”) M=“李林 信息管理系” N =2002-1982 =20 Nj=99 NN=2002-1900-99
44、=3 MN=“ 4年级”注 MN= STR(NN+1,2)879.运行下面的程序段后,运行结果是:_。SET TALK OFFSTORE 4 TO N?S(N)FUNCTION S PARAMETERS X Y=1 P=0 FOR I=1 TO X Y=Y*I P=P+Y ENDFOR RETURN PENDFUNC 答案:331+1*2+1*2*3+1*2*3*4=338815.已知学生表(XSB.DBF)中的数据如下:记录号 学号 姓名 性别 出生日期系名代号 1 000104 王凯 男 09/02/82 02 2 000101 李兵 男 04/09/83 02 3 000103 刘华 女 10/06/82 02 4 000102 陈刚 男 12/09/82 02 5 000106 胡媛媛 女 09/08/82 02 6 000105 张一兵 男 02/06/83 02则依次执行下列命令后,屏幕上显示的结果是_。USE XSBSET ORDER TO XSXH GO TOPSKIP? RECNO()GO BOTTOM ?RECNO()答案:4,5XSXH索引标志已建,它是根据学号字段创建的升序索引8921.执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中外设备买卖合同模板
- 上海金融服务外包合作合同模板汇集
- 临时教学楼改建工程合同
- 个人住房贷款合同样本
- 临时合作关系合同书
- 二手房购入合同范文:完整版
- 三人合伙投资合同范本
- 个人商业贷款抵押合同(1997年)版
- 个人债务履行担保合同示例
- 个人定向捐赠合同模板修订版
- 中级半导体分立器件和集成电路装调工技能鉴定考试题库(含答案)
- HG20202-2014 脱脂工程施工及验收规范
- 固定资产培训课件共-51张
- 元宵节猜灯谜 11
- 施工现场视频监控系统施工方案
- 2024年高考语文思辨类作文预测+考前模拟题+高分范文
- 2024年演出经纪人考试必背1000题一套
- 课题达成型品管圈
- 刑事判决书标准格式
- 《量化交易之门》连载27:风险的角度谈收益MAR和夏普比率
- 2024年广州市高三一模普通高中毕业班高三综合测试一 物理试卷(含答案)
评论
0/150
提交评论