




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 VFP程序设计基础,程序概念 常量与变量 表达式 常用函数,程序的基本概念,程序:为解决某一问题而设计的一系列指令。 源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。 目标程序: 是源程序经过编译后所产生的机器语言程序。,编写源程序(我们的任务) 编译成目标程序(自动) 运行程序 由机器自动化的执行程序而完成设定功能,程序设计过程,N=0 USE 学生档案 LOCATE FOR 专业=“信息管理“ DO WHILE .NOT. EOF() IF FOUND() N=N+1 ENDIF CONTINUE ENDDO USE ? “信息管理”专业人数为:, N,怎样写源程序,2.1 常量与变量,2.1.1常量: 一个在操作过程中保持不变的数值或字符串。,数值型 如:43、76.12 货币型 如:nCount=$ 123.45667 字符型 如:asd ,“信息管理”,常量,日期型 如:1991-09-07 日期时间型 如:2012-03-01 2:43:56 PM 逻辑型 如:.T. 、.Y. 、.N. 、.F.,2.1.2变量,变量用于存储数据,变量的值是可以改变的。 每个变量有一个变量名作为其标志,变量名由字母、汉字或下划线开头。,VFP变量的分类,字段变量:表中的字段 内存变量:内存中的一个存储区域 变量的类型 变量中所存数据的类型 内存变量与字段变量重名的处理 M.,数组,数组实际上就是一组变量,它们有同样的名称,但有不同的下标(编号),比如:a(1)、a(2)、a(3),这些变量叫做数组的元素。 VFP中,数组常用于与表中数据进行交换。,一维数组,即一个元素由一个下标来确定,二维数组就是由两个下标来确定一个元素,比如:a(1,1)、a(1,2)、a(1,2)、a(2,1)、a(2,2)。 二维数组类似于表的结构,便于与数据表交换数据,一维数组与二维数组,定义命令:DIMENSION | DECLARE 例:DIMENSION Abc(3,2) Abc(1,1)=“Visual FoxPro6.0” Abc(1,2)=.T. Abc(2,1)=$12.15 Abc(2,2)=2008-01-23,定义数组,(1)内存变量定义与赋值 命令格式: STORE TO = 说明: 定义内存变量并为内存变量赋值; 第一个命令为一组内存变量赋予相同的值; 第二个命令为一特定内存变量赋值。,2.1.3内存变量的操作,命令格式: ? | ? DISPLAY | LIST MEMORY LIKE TO PRINTER | TO FILE ADDITIVE 通配符:*,?,*代表多个字符,?代表一个字符,(2)内存变量的显示,命令格式: RELEASE RELEASE ALL LIKE | EXCEPT CLEAR MEMORY CLEAR ALL 说明:从内存中删除已定义的内存变量,把占据的内存空间释放出来。,(3)内存变量清除,(4)数组与数据表的数据传送,1.表记录复制到数组命令 格式: SCATTER FIELDSMEMO TO | MEMVAR BLANK 功能:将表中的一个记录导出到一个数组或内存变量中。,1)FIELDS子句可以限制被导出的字段范围 2)TO指定数组,若该数组大小不足以存放数据,系统会自动调整其大小;该数组也可以是不存在的,系统会自动创建该数组; 3)MEMVAR子句可以将表中的字段内容导出到内存变量中,该内存变量与表的字段是同名的,在引用这些变量时,须用前缀 M. 4)BLANK表示创建空的数组和内存变量。 5)可以在FIELDS中使用通配符,功能说明,2.数组数据复制到表当前记录命令 格式: GATHER FROM FIELDSMEMO 功能:用于将数组变量的值传递到一个表的当前记录中。 说明:该命令FIELDS子句可以使用通配符。 可将该命令看作是SCATTER的反命令。,附:程序命令及函数的组成,例如 DISPLAY | LIST FIELDS , FOR WHILE OFF TO PRINTPROMPT | TO FILE,(1)命令以命令动词开始,其后短语顺序任意。 (2)每行只能写一条命令,命令长度不能超过2048字符如命令长度超过屏幕,可用续行符“;”。 (3)命令动词和其后的短语间要用空格隔开。 (4)命令动词可以缩写为其前四个字符。 (5)变量名、字段名、文件名不应与命令动词、关键字和函数名相同。,附:命令的书写规则,1、表达式的构成:变量,常量,函数, 2、运算符 算术运算(表2.2) 优先级 逻辑运算(表3.4) 画真值表 与 AND: 或 OR: 非 NOT:,2.2 表达式,3、简单输出命令: ?/? “”/“” TEXT ENDTEXT,4.表达式示例,25+100-(12*8-7)+54/9 数值 42 “Good “+“afternoon!“ 字符串“Good afternoon!“ “Good “-“afternoon!“ 字符串“Goodafternoon!“ ?2001/09/29 4:00 p2001/09/29 8:00 逻辑真值 “abcd“=“ABCD“ AND 50 10*4 逻辑假值 “abcd“=“ABCD“ OR 50 10*4 逻辑真值 NOT 婚否 有效表达式 2001/10/01+10 日期2001年10月11日 2001/10/01-1 日期2001年9月30日 2001/09/29 4:10:00 pm-30 日期时间型2001年9月29日下午4时9分30秒,2.3 函数,(1)函数书写形式:DATA() (2)函数操作: 显示函数的返回值:? DATA() VARA=DATA() YEAR(DATE(),系统提供标准函数; 自定义函数包括独立的、以.PRG为扩展名的程序以及包括在一个程序中的过程和函数。,(3)标准函数和自定义函数,数值函数 字符函数 日期时间函数 转换函数 测试函数,常用函数举例,(1)求绝对值函数 ABS(数值表达式) 功能:返回指定表达式的值。 (2)取整函数 INT(数值表达式) 功能:计算表达式的值,并返回其整数部分。 (3)求平方根函数 SQRT() 功能:返回指定表达式的平方根。 (4)取余函数 MOD(,) 功能:用被除数除以除数,返回余数。 范例:? MOD(9,5),1、数学函数,(1)宏替换函数 格式:& 功能:把字符型内存变量的值替换出来。,范例: 1)a=“qr” ? “&a.st” 2) Accept “文件名:”to s use &s,2、字符串操作函数,(2)$操作符 格式: $ 功能:检测字符串1是否包含在字符串2中,返回 逻辑真或假值。,(3)字符串长度测试函数 格式:LEN() 功能:返回字符型表达式的长度。 范例:?LEN( “山东省”+SPACE(3)+ “日照市” ),(4)空格生成函数 SPACE(数值表达式) 功能:生成指定个数的空格。 (5)删除字符串右部空格函数 RTRIM / TRIM() 功能:删除指定字符串右部的空格。 范例:?TRIM( “ 1234 ”)+ “ABCD” (6)压缩空格函数 ALLTRIM(字符表达式) 功能:把字符表达式前后的空格字符都删掉。,(7)字符串搜索定位函数 AT(,) 功能:在中搜索首次出现的,找到则返回位置,否则返回0。 (8)字符串查找替代函数 CHRTRAN( , , ) 功能:将中与相匹配 的字符替换成 中相应的字符。 范例:?CHRTRAN(“计算机基础”,“计算机”,; “微机”),(9)左子串截取函数 LEFT(字符表达式,N) 功能:从字符表达式左边开始截取N个字符。若N 大于字符串长度则返回整个字符串;若N小于等于 0则返回空串。 (10)右子串截取函数 RIGHT(字符表达式,N ) 功能:从字符表达式右边开始截取N个字符。 (11)任意子串截取函数 SUBSTR(字符表达式,N ,M) 功能:从字符表达式的第N个字符开始,连续截取 M个字符。,(1)日期函数 DATE() 功能:返回当前的系统日期,结果为日期型,缺省 格式为MM/DD/YY。用SET DATE命令可以改变显 示格式。 范例:? DATE() (2)求年函数 YEAR(日期表达式) 功能:返回表达式中的年的数据。 范例:? YEAR( DATE(),3、时间、日期函数,(3)求月函数 MONTH(日期表达式) 功能:返回表达式中的月的数据。 范例:?MONTH(DATE() (4)求日函数 DAY(日期表达式) 功能:返回表达式中的日的数据。 范例:? DAY(DATE(),(1)字符转换数值函数 VAL(字符表达式) 功能:将字符数据转换成数值数据,前提是该字符 数据是数字的格式。 范例:? VAL( “888”) (2)数值转换字符函数 STR(数值型表达式,长度; ,小数位) 功能:将数值型数据转换成字符型数据,如遇到小 数点则可指定要转换的小数位数。当未指定返回的 总长度时,则不保留小数,且总长为10个字符。,4、转换函数,(3)字符转换日期函数 CTOD(字符表达式) 功能:将字符型的日期格式数据转换成日期型数据。 范例:? CTOD( “08/09/99”)-2 (4)日期转换字符函数 DTOC(,) 功能:将日期数据转换成字符数据。,(1)记录数测试函数 RECCOUNT(数值型表达式) 功能:测试指定工作区数据表文件的记录个数,不 带表达式则返回当前工作区数据表的记录个数。 (2)查找成功测试函数 FOUND(工作区) 功能:当使用LOCATECONTINUE、FIND、SEEK 命令查找数据记录时,该函数判断记录是否找到。,5、测试函数,(3)文件开始测试函数 BOF() 功能:测试工作区记录指针是否指向文件头。 (4)文件结束测试函数 EOF() 功能:测试工作区记录指针是否指向文件头。 (5)记录号测试函数 RECNO() 功能:测试工作区当前记录的记录号。 例4-7 (6)数据类型测试函数 TYPE(字符表达式) 功能:计算表达式的值,并返回其内容的数据类型。 范例:? TYPE( “234”)的结果为:N ? TYPE( “1234”) C,2.4 程序与程序文件,程序文件由VFP命令组成,文件名由用户指定,扩展名为.PRG. 程序执行方式的优点 便于修改和保存 可多次运行,可以相互调用 可以实现更强大复杂的功能,2.4.1程序文件,源程序示列,例2.40 编写程序,计算圆周长和面积 算法: R-S=R2-? S 编写源程序 运行程序 程序的注释:* 和 &,2.4.2 程序文件的建立与执行,1. 程序文件的建立与修改: 菜单操作方式: 命令方式: MODIFY COMMAND 功能:打开文本编辑窗口,用来建立或修改程序文件。,2.程序文件的运行,菜单操作方式: 命令方式: DO 功能:执行由文件名指定的程序。 说明:DO 命令默认的文件为.PRG 文件,若运行其它文件,则必须指明扩展名。,CANCEL(终止程序执行,返回命令窗口) DO(转去执行另一个程序) RETURN(结束当前程序,返回到上级程序,若无上级程序则返回到命令窗口) QUIT(退出VFP 系统,返回
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中学消防安全疏散演练方案模板
- 2025年商场劳动节活动方案
- 汽车使用与维护 课件 1.1.3 车轮参数信息识读
- 2025年电动叉车仪表总成项目可行性研究报告
- 2025年生物冰袋项目可行性研究报告
- 2025年现代办公用品项目可行性研究报告
- 2025年照明电器设备项目可行性研究报告
- 武汉船舶职业技术学院《语言与文化》2023-2024学年第二学期期末试卷
- 周口理工职业学院《数学学科知识与教学技能》2023-2024学年第二学期期末试卷
- 西藏2025届数学三下期末教学质量检测试题含解析
- 2025年心理b证笔试试题及答案
- 玉盘二部合唱简谱
- 中药调剂处方审核考试题
- 故事派文案培训课件(成都知了)
- 企业重组 特殊性税务处理
- 装修单项项目确认单
- 华为员工准则手册
- 2020版中国阿尔茨海默病痴呆诊疗指南(全文)
- GDFJ005修改个人信息申请表
- 《电工与电子技术基础》试题库及答案
- 毕业论文(设计)液压滑台设计
评论
0/150
提交评论