欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第2章 VF程序设计基础.docx

    • 资源ID:16707716       资源大小:52.04KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章 VF程序设计基础.docx

    1、第2章 VF程序设计基础Vf程序设计基础(数据类型:数据有不同类型,不同地方用的数据类型是不一样,C,N,D(8),L(1),I(4),T(8),Y(8),M(4)注意有些字段的宽度是系统规定的)21常量与变量 P481、常量(P48)值不变字符型(C):1、三种定界符,单引号、双引号、中括号 (英文的标点符号) ,“”, 必须成对出现,两边一致 2、空串与包含空格的字符串不同 与 要点3、定界符本身也是字符串内容时,需用另外一种定界符为该字符串定界 合法:K“ABC”S,DDD,五一庆祝会非法:ABC,“AAN”, “五一”庆祝会”数值型(N):1、注意科学记数法 5.878E12等于5.8

    2、78*1012整型 I 宽度系统定义4个字节(不含小数)货币型(Y):1、小数自动四舍五入取4位 2、用8个字节表示(宽度) ? $12345.67896=12345.6790日期型(D):称定界符,称脱字符,分隔符有3种(/,-,.)用8个字节表示(宽度)1、严格的日期格式:2006/09/01 ,任何情况下可以用 2、传统的日期格式受SET STRI TO 0|1的设置影响 3、日期格式的设置命令SET CENTURY ON|OFF 年份用4位|2位 (2010年9月11小题) SET MARK TO 用什么分隔符, -, .如:SET MARK TO - (注意一定加定界符) SET D

    3、ATE TO YMD 按年月日的格式 Y:年 M:月 D:日 (默认显示是“月/日/年”)日期时间型(T)逻辑型(L):1、用一个字节表示 2、真、假值(.T.和.F.或.Y.和.N.)3、.T.F.为真2、变量(P52)值可以随时更改,变量有内存变量(及数组变量)和字段变量1 命名规则:名字组成可以是字符(包括汉字)、下划线、数字要点:但不能以数字开头,只能以字符(英文、中文)或下划线开头。 合法:A12,AB,_AB 非法:1A,2B2 变量赋值“=“:单个变量赋值 (“=”也可以是关系(比较)运算符,注意区别)STORE TO :多个变量赋相同值A=56 &把数值型常量56赋给变量AST

    4、ORE 80 TO D,B,C变量的值是最后一次赋的值(要点)A=24 &把24这个数值型常量赋给变量A,A是数值型变量,其值为24A=BNM &把BNM这个字符型常量赋给变量A,A是字符型变量,其值为BNM? A &结果是BNM字符 Accept to A IF A=123 S=0 ENDIF S=1 ? S A)0 B)1 C)123 D)由A的值确定 (2010年3月笔试29题)内存变量的数据类型由其值决定(要点) A=12 则变量A是一个数值型的内存变量。B=ABC,则变量B是一个字符型的内存变量。3、输出变量的值:?,? A=12 ? A要点:当内存变量和字段变量同名时,优先输出字段

    5、变量的值,如要输出内存变量的值,应指明是内存变量 ? M-内存变量或M. 内存变量举例:假设职员表已在当前工作区打开,其当前记录的“姓名”字段值为“李彤”(C型字段)。在命令窗口输入并执行如下命令:姓名=姓名-“出勤”? 姓名屏幕上会显示A) 李彤 B) 李彤 出勤 C) 李彤出勤 D) 李彤-出勤(2010年3月笔试27题)4、内存变量其他命令显示(DISP MEMO 或LIST MEMO)LIKE 模糊匹配,*、?表示任意一串或一个(通配符)清除 CLEAR MEMO 例:LIST MEMO LIKE A* 显示以字母A开头的内存变量数组:一般先定义,后使用 P52二维数组F(A,B) F

    6、:数组名,A、B是下标,A、B的最小值是 1,共有A*B个元素,每个元素初值都为.F.1、创建或定义数组 DIME F(2,3)或DECLARE F(2,3) 定义一维数组 DIME F(9) 定义二维数组 DIME F(2,3)2、定义数组后,每个元素初值为.F. (要点)3、F=3,则所有元素的值都赋值34、用一维数组的形式访问二维数组:(按行的顺序访问)二维F(1,1)F(1,2)F(1,3)F(2,1)F(2,2)F(2,3)一维F(1)F(2)F(3)F(4)F(5)F(6)(要点)表与数组表当前记录复制到数组元素中:SCATTER TO 数组名 USE CHENGJI &打开数据表

    7、CHENGJI GO 6 &指针指向第6条记录 SCATTER TO F & 自动定义一个数组,数组名F,元素和数据表的字段个数相同 ? F(1),F(2)数组复制到表当前记录:GATHER FROM 数组名 2.2表达式 P55 常量、变量、函数通过特定的运算符连接起来 P56 特别注意:数据类型匹配数字表达式:同数学的算术表达式,运算符,()、*、+ 结果:数值 注意:如A是变量,则 (A)是表达式字符表达式:+(完全连接),-(不完全连接)?ABC -ABC 结果:字符日期表达式: 日期-日期,日期+N,日期-N 结果:日期或数值要点:日期+日期是非法 关系表达式: 运算符号P58 结果

    8、:逻辑型数值、货币、日期数据比较(先比较“年”,再比较“月”,最后比较“天”)字串包含测试:A、B是字符型变量,A$B,A是B的子串,则为真,否则为假。 ? 女$男女 .t. ? 学生$大学生-.t.假设有一个字段变量:姓名 姓名中含有“张“字,则 张$姓名.t. 姓“张”的记录,则 姓名=张.t. 或 SUBST(姓名,1,2)= 张 -.T. 或 LEFT(姓名,2)= 张 -.T.字符排序:工具选项数据排序序列中设置ASCII码:? MAX(2,12,05), MAX(2,12,05)拼音: ? MIN(章,柳,陈),字符比较: ? 人人民,人ab , abc .F. .F. .T. 要

    9、点:1、相等比较运算时,右边字符串同左边字符串的开始部分,为真 2、关系运算符的两边数据一定要匹配 3、和$运算的区别,例查找姓王的同学(=),查找名字中有“王”字的同学($)假设数据表中有字段:姓名,用VF命令LIST FOR 条件,则判定姓王的同学的条件:姓名=王 -.T. 判定姓名中有“王”字的同学的条件:王$姓名-.T. 特别注意:姓名是字段变量,因此不能加定界符字符串精确比较与EXAC设置(要点)P59=:精确比较(绝对等于)SET EXAC ON|OFF:是|否严格 OFF是默认设置1、“=”:不管EXAC 的设置,精确比较“=“要两边完全相同(含空格),则.t.,否则为.f.2、

    10、“=”: (1)SET EXAC OFF(非严格比较):右边的字符串同左边字符串的开始部分,.T.(2)SET EXAC ON(严格比较):等长(短的尾部补空格)再进行精确比较(左右是否完全一样) 例: A=AB B=AB C=ABC SET EXAC OFF ? A=B,A=B,B=A,B=C,C=B 结果:.F. .T. .F. .F. .T. SET EXAC ON ? A=B,A=B,B=A,B=C,C=B 结果:.F. .T. .T. .F. .F.逻辑表达式: .T.F. 为真 结果:逻辑型优先级(高低):非(NOT),与(AND),或(OR)与: 且, 两边必须都为真结果才是.T

    11、. ,其他都是.F. 。或: 或者, 两边的表达式结果都为.F.时才是.F.,其他都是.T.运算符优先级:算术字符日期关系逻辑例子: ? (10%3=1) AND 15-2=0) OR 电脑!=计算机 ? (1=1) and 13=0) OR 电脑!=计算机 (.T. AND .F. ) OR .T. .F. OR .T. .T.2.3 函数 P61(带*或*和加粗的是要点,其他函数要弄清楚大概功能)数值函数 P61-621、绝对值函数和符号函数 ABS() SIGN()2、平方根函数 SQRT()*4、取整函数 INT() 5、四舍五入函数 ROUND(, )6、余数函数 MOD(, )字符

    12、函数 P62-63*1、字符串长度函数 LEN() ? len(space(10)-space(10)2、大小写转换函数upper()、lower()*3、空格字符生成函数 SAPCE()*4、删除前后空格函数 ALLTRIM()A= abcdefg ? len(a)? len(allt(a)*5、取子串函数 SUBSTR、LEFT、RIGHT A=计算机科学技术 ? SUBSTR(A,7,4) -科学 ? LEFT(A,6)- 计算机 ? RIGHT(A,4)- 技术 有如下赋值语句,结果为”大家好”的表达式是 a=”你好” b=”大家”A)b+at(a,1) B)b+right(a,1)

    13、C)b+left(a,3,4) D)b+right(a,2)(笔试试卷出现多次)6、计算字串出现次数函数 OCCURS(,) ? OCCU(计,计算机是计算的机器)*7、求子串位置函数AT()结果:数值型 ? AT(is,this is book,1)-3 ? AT(is,this is book,2)-6 ? AT(人民,中华人民共和国)-58、子串替换函数STUFF() ? STUFF(GOOD BYE,6,3,MORNING)9、字符替换函数 CHRTRAN() ? CHRTRAN(ABACAD,ACD,X12)*11、日期时间函数 P65*年份、月份、天函数 ? year(2005/0

    14、6/28) A=2008/06/28? year(a),MONTH(A),DAY(A) -数值型数据数据类型转换函数 P66*12、数值转换字符 STR(数值表达式,) 数字字符 A=-123.456? STR(A,9,2),STR(A,6,2),STR(A)字符转换数值 VAL(字符表达式) 字符数值 A=-3212B12 ? VAL(A)*13、字符转换成日期 CTOD()*日期转换成字符 DTOC() A=DATE() ? DTOC(A) &转换后输出的格式MM/DD/YYYY ? DTOC(A,1) &带参数1,则转换后输出的格式是YYYYMMDD,没有分隔符 ? LEFT(DTOC(

    15、A,1),4) -2010*14、宏替换函数 &,替换出字符型变量的内容 P67 A=10+90 ? a ? &a ,&a+500X=50Y=100Z=”x+y”? 50+&z例:2010年9月笔试16题*15、测试函数 P68-701)值域测试函数 BETWEEN ? BETWEEN(50,50,200) 包含两头 2)空值测试函数 ISNULL .null.相当于不确定(输入CTRL+0)3)“空值”测试函数 EMPTY() ? EMPTY(0) “空值”对于不同的数据类型不同例:? EMPTY(.null.),EMPTY(45),EMPTY(),EMPTY(0)? ISNULL(SPAC

    16、E(0), ISNULL(.null.), ISNULL(45)4)数据类型测试函数 VARTYPE() ? VARTYPE(TIME() -c &时间函数的数据类型返回值是字符? VARTYPE(123)-n &返回数据类型是数值? vartype(.null.)-X &“空值”的返回值是X*16、表文件头BOF()、尾EOF()、记录号RECNO()、记录个数RECCOUNT()测试函数 例:数据表ABC 有20条记录 USE ABC ? BOF() -.F. SKIP -1 ? BOF() -.T. ? RECNO() - 当前记录号的值是1 GO BOTTOM ? EOF() -.F.

    17、 Skip ? eof() -.T. ? recno() -注意,当前记录号的值是21 注意:空表的bof()和eof()函数都为真 理解:DO WHILE NOT EOF() 这个循环语句的条件是什么意思 推导: EOF()-尾,值真。 NOT EOF()-非尾,真。要点理解:当指针不是指向文件尾时,运行循环体,直到指针指向文件尾止 USE BMK DO WHILE NOT EOF() DISP &显示当前记录 SKIP &指针下移 ENDDO*17、条件测试函数? IIF(LEN(SPACE(5)5,1,-1) -?例:2010年笔试考试填空第8小题2.4程序与程序文件 P711、注释 &

    18、2010/9笔试笔试28题3月11题续行(分号) ;2、程序文件的建立与修改命令 P72MODI COMM 建立以.prg为扩展名的命令文件 运行:DO 文件名,真正运行的是经过编译的文件:.FXP MODI FILE 建立以.txt为扩展名的文本文件 运行:DO 文件名.txt 两者区别,都要求熟练3、简单的输入、输出命令命令输入是否保存数据类型否回车其他INPUT保存N,C,L,D C是字符型数据加定界符ACCE保存C是字符型数据不加定界符WAIT否保存C否字符型数据不加定界符例:input 请输入一个数 to x2.5程序的基本结构 P75结构化程序三种基本结构:顺序结构、选择结构、循环

    19、(重复)结构 (笔试要点)一、顺序结构:依次运行程序中的语句二、选择结构:IF-ENDIF 语句和DO CASE-ENDCASE 语句 SET TALK OFF SET TALK OFF CLEAR CLEAR INPU输入一个正整数 to x INPU输入一个正整数 to xIF X=300 do case ? A case x=300ELSE ? A IF X=200 CASE X=200 ?B ? B ELSE CASE X=100 IF X=100 ? C ? C OTHERWISE ELSE ? D ? D ENDCASE ENDIF ENDIFENDIF输入一个数 80 结果是:

    20、输入一个数 120 结果是:要使输出结果为B,X要满足什么条件?改成DO CASE 语句怎么实现?三、循环结构1、条件循环DO WHILEENDDO 语句,注意循环体中的LOOP和EXITI=5DO WHILE I0 ? I I=I-1ENDDO2、FOR -ENDFOR 语句(记数循环),注意循环体中的LOOP和EXIT输入10个数,找出最大的和最小的数 见P81面例子:从键盘输入十个数,找出最大和最小的数3、SCANENDSCAN 语句(扫描循环,针对数据表) P81格式:SCAN FOR 条件 ENDSCAN执行该语句时,记录指针自动、依次在指定范围内满足条件的记录上移动,对每一条记录执

    21、行循环体内的命令(指针自动向下移动,直到文件尾) 类似 DO WHILE .not. eof() 循环体 SKIP ENDDO例 根据一个“成绩“表的分数填写字段“等级”,分别用上面两个语句设计程序假设“成绩”表有“分数”、“等级”等字段,分数60或以上,等级填“及格”,否则填“不及格”,用DO WHILE 循环设计程序: USE 成绩 &打开成绩表,指针指向第1条记录 DO WHILE NOT EOF() IF 分数=60 REPL 等级 WITH “及格” ELSE REPL 等级 WITH “不及格” ENDIF SKIP &指针下移一条记录 ENDDO 用SCAN FOR 循环设计程序

    22、: USE 成绩 &打开成绩表,指针指向第1条记录 SCAN FOR 分数=60 REPL 等级 WITH “及格” ENDS 例 1、把成绩表中所有成绩=60(及格)的记录显示出来 2、把不及格的记录做删除标记(逻辑删除)2.6 多模块程序设计 P82为什么要用到模块设计:将大的应用程序划分为一个个功能单一的模块程序,便于开发、阅读和维护模块:可以是命令文件、子程序、过程文件、过程、(函数)过程有什么作用?&主程序 set talk off inpu请输入一个自然数: to a ? JSJC(a)SET TALK ON &下面是过程proc JSJCpara ns=1for x=1 to n

    23、 s=s*xendforreturn s&过程返回 S的值过程作用:重复调用,精简主程序便于开发、阅读和维护(签名与盖章的关系)过程的定义:PROC 过程名 命令序列 ENDPROC过程可以放在主程序的后面参 数 传 递 P84下面程序ABC.PRG:&主程序开始CLEARSTORE 100 TO X1,X2P4(X1,X2)? “调用过程后X1,X2的值是:”,X1,X2&主程序结束&过程开始PROC P4PARA A,BSTORE A+1 TO ASTORE B+1 TO BENDPROC&过程结束1、过程调用有两种格式:1)DO P4 WITH X1,X2 2)P4(X1,X2)2、认识

    24、形参(形式参数),实参(实际参数),形参数目不能少于实参(要点)3、参数传递有:按值传递: 形参变量值的改变不影响实参(单向) X1A X2B按引用传递:形参变量值改变时,实参值也随之改变(双向) X1AX1 X2BX24、怎么传递?(要点)1)如果实参是表达式(变量加括号就是表达式)无论哪一种过程调用格式,形参不影响实参,单向传递2)如果实参是变量1、DO 过程名 WITH 实参1,实参2 双向传递2、过程名(实参1,实参2),单向传递,除非设置 SET UDFP TO REFE过程中的参数传递用以上要点去验证操作(笔试原题)假设有程序ABC.PRG,代码如下:输出结果是什么?&主程序cle

    25、arstore 3 to xstore 5 to yPLUS(X,Y)? x,y&过程PROC PLUSPARA A1,A2A1=A1+A2A2=A1+A2ENDPROC结果是:A)3 5 B)8 13 C)3 13 D)8 13(笔试原题)下例程序执行的结果是X1=20X2=30 SET UDFPARMS TO value DO TEST WITH X1,X2 ? X1,X2 PROCEDURE TEST PARAMETERS a,b x=a a=b b=x endproA)30 30 B)30 20 C)20 20 D)20 30变量的作用域 P86 1)全局变量,用PUBLIC 声明的变

    26、量,在任何模块都可以使用的,一直有效。(除非用CLEAR MEMO 命令清除) 命令窗口中直接使用的变量是全局变量,DISP MEMO 验证 2)私有变量,在程序中直接使用的(没有任何声明),作用域是建立它的模块及其下属模块私有变量所在的程序关闭,程序运行结束,自动清除。实例操作程序中验证 3)局部变量,只能在建立它的本层模块中使用(上、下层都不能使用),用LOCAL 声明的全局:整个矩形区域 私有:整个大圆区域 局部:圆环区域变量的隐藏的作用:子程序或过程的变量值不影响主程序的同名变量 格式:PRIVATE (PRIVATE:私有,隐藏)例(笔试原题)X=2Y=3? X,YDO SUB1 ? X,YPROC SUB1PRIV YX=4Y=5RETURN选择:A、2 3 4 5 B、2 3 4 3 C、4 5 4 5 D、2 3 2 3SET TALK OFFCLEARSTORE 3 TO XSTORE 5 TO YDO PLUS ? X,YPROC PLUS &过程PRIVATE X &变量X隐藏,其值改变不影响主程序的同名变量,X=100Y=200 &变量Y没有隐藏,影响主程序中的变量Y的值ENDPROC


    注意事项

    本文(第2章 VF程序设计基础.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开