




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 程序设计基础,2.1 常量和变量 2.2 表达式 2.3 常用函数 2.4 程序与程序文件 2.5 程序的基本结构 2.6 多模块程序设计,补充内容: 数据类型及其存储方式,每个数据都有一定的数据类型,数据类型决定了数据的存储方式和运算方式。Visual FoxPro将数据划分为13种类型,各种数据类型介绍如下。 1字符型(Character) 字符型数据是由字母、数字、空格、符号和标点等组成的。字符型数据的特点是没有数量多与少的概念,不能进行数值相关的算术运算,只是一种字符信息的描述。每个字符占用一个字节的存储空间。 2数值型(Numeric) 数值型数据是用于表示数量的一种数据类型,由数值09及符号(+和)和小数点组成。数值型数据的特点为:数据之间可以进行相加、相减、相乘、相除等算术运算。在内存中,数值型数据占用8个字节的存储空间。,数据类型及其存储方式,3浮点型(Float) 浮点型与数值型数据的使用完全一样,只是输出结果以浮点数的形式显示。 4货币型(Currency) 货币型数据用于代替数值型数据的货币值。通常用8个字节的存储空间存储货币型数据,且只允许最多有4位小数。 5日期型(Date) 日期型数据是用于存储关于年、月、日数据的一种数据类型。每一个日期型数据的存储形式均为“yyyy/mm/dd”,其中yyyy表示年份,占用4个字节;mm表示月份,占用2个字节;dd表示日期,占用2个字节。日期型数据的格式可以通过“选项”窗口设定。,数据类型及其存储方式,6日期时间型(DateTime) 日期时间型数据用于存储日期和时间值。日期时间型数据存储格式为“yyyymmdd hhmmss”,其中yyyy表示年,mm(第一个)表示月,dd表示日,hh表示小时,mm(第二个)表示分钟,ss表示秒(必须为整数)。日期时间型可以表示一个日期值,也可以表示一个时间值,或者表示一个日期时间值。日期时间型数据与日期型数据一样在内存中用8个字节存储。 7双精度型(Double) 双精度型数据是指精度要求较高的数据,或真正的浮点数。双精度型数据占用8个字节存储空间,取值范围为0.904 656 458 412 47103240.988 456 743 11510307。 8整数型(Integer) 整数型数据用于存取不包含小数部分的数值。整数型数值不用转换成ASCII字符来存 储,而数值型数据是要进行二进制转换的。整数型占用4个字节,取值范围为2 147 483 6472 147 483 646。,数据类型及其存储方式,9逻辑型(Logical) 逻辑型用于存储只有两个值的数据,即存入的值为真(.T.)或假(.F.)两种状态,是一种高效的存储方法,在内存中占一个字节。 10备注型(Memory) 备注型数据只用于表中,表示数据块的存储。备注型字段只包含4个字节,并用这4个字节来引用备注的实际内容。备注的实际内容只受内存可用空间的限制,并以块的方式来存储。 由于备注型字段的实际内容变化很大,不能将备注的内容存于表文件中,因此必须用一个相对独立的文件来存储这些备注内容,这个文件的扩展名为.dbt。 11通用型(General) 通用型数据用于存储OLE对象。每个OLE对象的具体内容可以是电子表、图像,也可以是Word文档,这些OLE对象由其他支持OLE的应用程序建立。 通用型字段在表中的长度为4个字节,而OLE对象的实际内容、类型和数据则取决于建立OLE对象的服务器,以及连接或嵌入的OLE对象。 12字符型(二进制) 与字符型的使用方法相同,只是采用二进制存储。 13备注型(二进制) 与备注型的使用方法相同,只是采用二进制存储。,2.1 常量和变量,2.1.1 常量 常量是指数据处理过程中其值和类型均保持不变的量。在Visual FoxPro中,作为常量常用到的数据类型主要有以下几种。,1数值型常量(Numeric) 数值型数据是有大小含义、可以参与数学运算的数据。数值型数据可以由正、负号、0至9的数字和小数点组成。格外大或格外小的数据还可以采用科学计数法,其中整数还可以采用十六进制表示法。数值型数据的范围是: -0.9999999999E+19至0.9999999999E-20 数值型常量就是平常所说的“数”。,2货币型(Currency) 货币型数据是数值型数据的一种变型。与一般数值型数据不同的是数值之前或之后要加货币符号,另外,货币型数据的小数位数为4位,4位以后的小数将被四舍五入。货币型常量就是一个固定的钱数。例如50美元,可表示为$50。 没有科学记数法形式,在内存中占用8个字节,取值范围见书本,3字符型常量(Character) 字符型数据是由字母、数字、空格、符号和汉字等字符组成的文字序列。字符型常量最多可由254个字符组成,其中一个汉字占两个字符。字符型常量又称字符串,必须用定界符一对双引号“”或单引号或方括号 括起,在计算字符串的长度时定界符不包含在内。 注:空串与包含空格的字符串 例题2.1 ?计算机,123,数据,ABC“abc“ ?“学习“,字符串,“ “,表示方法,4日期型常量(Data) 日期型数据是存储和表示年、月、日等日期的数据类型,其内部存储格式为“yyyy/mm/dd”,其中yyyy代表年份,mm代表月份,dd代表日子,共占8个字符。年份的取值范围为:100至9999;月份的取值范围为:1至12;日子的取值范围随年份和月份的不同而不同,最大范围为:1至31。,日期型常量要用花括号 作为定界符。例如,报名日期2004年7月20日可以表示为2004/07/20。需要注意的是,日期型数据的格式并不固定,可以通过set date、set century等命令改成习惯使用的日期格式。常用的格式有mm/dd/yy、 yyyy-mm-dd 等。,严格的日期格式 传统的日期格式 set strictdate to 0 影响日期格式的设置命令,影响日期格式的设置命令,关于命令的几项约定 Set mark to Set date to Set century on|off|to 例题2.2 set century on set mark to set date to ymd ?2001-08-26,5日期时间型常量(DateTime) 日期时间型数据是存储和表示年、月、日、时、分、秒的数据类型,其内部存储格式为“yyyy/mm/dd hh:mm:ss am|pm”。其中,hh代表小时,mm代表分钟,ss代表秒,am表示上午(默认),pm表示下午。日期和时间之间用空格分开。日期时间型数据可以只含日期,不含时间,或者只含时间,不含日期,或者既含日期,又含时间。 日期时间型常量也要用花括号 作为定界符。至于时间采用12小时表示法,还是24小时表示法可以通过set hours命令设置。,例题2.3 时间表示的等价方法 日期时间型数据用8个字节存储,6逻辑型常量(Logic) 逻辑型数据用于表示两种相反的状态,例如对、错,真、假,是、否等。它只有两个值,一个为“真”,另个为“假”。其常量要用定界符“.”。通常,逻辑“真”用 .T. 或 .Y. 表示,逻辑“假”用 .F. 或 .N. 表示,不区分大小写。,2.1.2 变量 变量是指在处理过程中其值可变的量。在Visual FoxPro中变量又进一步分为:内存变量和字段变量。其中,字段变量是在打开表时,由系统自动产生的与字段名同名的变量。它们都可用于编写程序代码,开发系统功能。 为了区分每个变量,需要给变量起一个名字,这个名字就是变量名。变量名可用字母、汉字、数字、下划线标识,但必须以字母或汉字开头。要注意的是,变量名不要与系统定义的保留字相同,例如命令动词、参数、函数名等。,1内存变量 内存变量又称为简单变量。内存变量常用来存储用户经常用到的常量、程序运行的中间结果或最终结果、用户输入的信息等,它只保留在内存中。因此,内存变量是一种临时工作单元,需要时可以临时定义,不用时可以释放。任意时刻,一个变量只保留一个值,当为同一变量赋第二个值时,第一个值将被覆盖。 变量的类型由用户给变量所赋的值决定。为变量赋值的同时既声明了变量,又定义了变量的类型。如果未赋值就使用,则系统会弹出找不到变量的提示信息。,常用的为内存变量赋值的方式有两种: 方法一:使用等号“=”命令赋值 在“命令”窗口中输入命令: = 方法二:使用STORE命令赋值 在“命令”窗口中输入命令: STORE TO 其中变量名表是用逗号“,”分开的多个变量名。与等号赋值命令不同的是一条store命令可以同时给多个变量赋相同的值。,功能注释见书本 例如为a,b,c赋相同的值34,需输入命令:store 34 to a,b,c,数组,数组是内存中连续的一片区域,它由一系列元素组成,每个数组元素可通过数组名及相应的下表来访问 每个元素相当于一个简单变量,可以分别给各元素赋值 每个元素的数据类型可以不同,创建数组的两种格式 系统自动给每个数组元素赋逻辑假 注意问题,内存变量常用命令,赋值 表达式值的显示 内存变量的显示 内存变量的清除,实例练习,例题2.4,2.2 运算符与表达式,2.2.1 运算符和表达式 如同数学运算一样,运算符用以连接运算对象。运算对象包括常量、变量和函数。将运算对象按照一定的规则用运算符连接起来得到表达式。Visual FoxPro中的表达式根据参与运算的数据类型分为五种:算术表达式、字符串表达式、日期时间表达式、关系表达式和逻辑表达式。 1算术表达式 算术运算符见书表2.2所示。它是用算术运算符将数值型运算对象连接起来的表达式。 算术运算的优先顺序,由高到低为:正号(+)和负号(-)、乘方( 或*)、乘(*)、除(/)和取余(%)、加(+)和减(-)。同级运算由左向右进行。小括号可以改变运算的优先顺序。括号可以嵌套,一律使用小括号(),运算时内层括号优先。,2.2 运算符与表达式,2字符串表达式 它是由字符串运算符将字符类运算对象连接起来的表达式,+,-,优先级相同。 a=“hello “ b=“everyone!“ ?a+b,len(a+b) ?a-b,len(a-b) 3日期时间表达式 日期时间型表达式是用日期时间型运算符将日期型或日期时间型常量、变量或函数连接起来的表达式。 见表2.3。优先级相同。,4关系表达式 关系运算也称比较运算。关系运算符见书表2.4所示。关系表达式是用关系运算符将同类型可比较的两个常量、变量或函数连接起来的表达式。 关系运算符优先级同 注意点: (1)=与$仅用于字符型数据(举例说明) (2)数值型和货币型可以相互比较(举例说明) (3)日期型和日期时间型可以相互比较 (4)其他情况下比较符号两边要求相同类型,数值型 货币型比较 日期型和日期时间型比较 逻辑型比较 子串包含测试 例题2.9,设置字符的排序次序,Machine 大写小于小写 Pinyin 大写大于小写 Stroke 按照笔画算 Set collate to ”,字符串精确比较,= 两字符串完全相同时结果为T = 结果与set exact on|off相关 例题2.10,赋值“=”与相等“=”比较的区别,赋值 左边为内存变量名:x=20 相等 两边为表达式或者两边为变量:x=y,5逻辑表达式 逻辑运算也称作布尔运算。逻辑运算符见书表2.5所示。逻辑表达式是用逻辑运算符将逻辑型运算对象连接起来的表达式。 优先级:not, and , or,运算符优先级,圆括号内优先运算 先算术运算,字符串运算和日期时间运算,其次关系运算,最后逻辑运算 例题2.11,2.3 常用函数,函数是程序用来实现的数据运算或转换。 函数有特定的运算功能,只有一个运算结果,称为函数值。 形式:函数名(参数),2.3.1 数值函数,1绝对值和符号函数 ABS () 功能:返回指定数值型表达式的绝对值。 语法:ABS(数值表达式) 返回值类型:数值型。,INT() 功能:计算一个数值表达式的值,并返回其整数部分。 语法:INT (数值表达式) 返回值类型:数值型。,2. SQRT() 功能:返回指定数值表达式的算术平方根。 语法:SQRT (数值表达式) 参数:不可为负值。 返回值类型:数值型。,3.PI() 4.求整数函数 Int() Ceiling() Floor(),5ROUND() 功能:计算一个数值表达式的值,并对结果按要求四舍五入。 语法:ROUND ( nExpression , nDecimalPlaces) 返回值类型:数值型。 提问?,6MOD() 功能:用一个数值表达式去除以另一个数值表达 式,返回余数。 语法:MOD ( nDividend,nDivisor ) 返回值类型:数值型。,7MAX() 功能:比较几个表达式的值,并返回其中值最大的表达式。 语法:MAX ( eExpression1,eExpression2 ,eExpression3 ) 所有表达式必须为同一数据类型。 返回值类型:由参数类型决定,可以有字符型、数值型、货币型、双精度型、浮点型、日期型或日期时间型。 8MIN() 功能:比较几个表达式的值,并返回其中值最小的表达式。 语法:MIN ( eExpression1,eExpression2 ,eExpression3 ),2.3.2 字符函数,1 LEN() 功能:求字符串长度。 语法:LEN ( cExpression ) 参数:cExpression 指定求长度的字符串。 返回值类型:数值型。 注:汉字占两个长度,2.大小写转换 LOWER(字符表达式) Upper(字符表达式) 返回值类型:字符型。,3.空格字符串生成函数 Space(数值表达式),4.删除前后空格函数 ALLTRIM() 功能:删除位于指定字符表达式前后的空格,并返回删除空格后的字符串。 语法:ALLTRIM ( cExpression ) 返回值类型:字符型。 LTRIM() 功能:删除指定字符表达式的前导空格,并返回删除空格后的字符串。 语法:LTRIM ( cExpression ) 返回值类型:字符型。,5 取子串函数,left(字符串表达式,长度) right(字符串表达式,长度) Substr(字符串表达式,起始位置,【长度】) 返回值类型:字符型。,6.occurs(字符串表达式1,字符表达式2) 7.at(.) atc() 8.stuff() 9.chartran 10.like(),2.3.3 日期时间函数,1DATE() 功能:返回系统日期。 语法:DATE() 返回值类列:日期型。 2DATETIME() 功能:返回系统的日期时间。 语法:DATETIME() 返回值类列:日期时间型。 3DAY() 功能:返回给定日期表达式中的日期。 语法:DAY ( dExpression ) 返回值类型:数值型。,4MONTH() 功能:返回给定日期表达式中的月份。 语法:MONTH ( dExpression ) 返回值类型:数值型。 5YEAR() 功能:返回给定日期表达式中的年份。 语法:YEAR ( dExpression ) 返回值类型:四位数值型。,6HOUR() 功能:返回给定的日期时间型表达式的小时部分。 语法:HOUR ( tExpression ) 参数:tExpression 指定的日期时间型表达式,HOUR()函数将返回其小时部分。 返回值类型:数值型。 说明:该函数返回的数值是以24小时制为基础的,并且不受set hours当前设置的影响。 7Minute() 8. sec(),2.3.4 数据转换函数,1.数值 to 字符串 2.字符串 to 数值 3.字符串 to 日期、日期时间型 4.日期、日期时间型 to 字符串,3.4 常用函数,3DTOC() 功能:将日期型表达式转换为字符型数据。 语法:DTOC(dExpression) 参数:dExpression 指定的日期型表达式,DTOC()把它转换为字符型数据。 返回值类型:字符型。 4VAL() 功能:将字符串转换为数值型数据。 语法:VAL(cExpression) 参数:cExpression 指定的字符串,VAL()把它转换为数值型数据。 返回值类型:数值型。,习题,上机题目1 例题10中设置为ON的结果?,3.4 常用函数,3.4.5 测试类函数 1TYPE() 功能:测试数据类型,返回数据类型的简写符号。 语法:TYPE(cExpression) 参数:cExpression 指定测试的内容,TYPE()把它的类型转换成对应的简写符号输出。 返回值类型:字符型。 说明:字符型数据返回字母C;数值型数据返回字母N;日期型数据返回字母D;逻辑型数据返回字母L;未定义的变量返回字母U。 2FILE() 功能:在磁盘上寻找指定的文件。 语法:FILE ( cFileName ) 参数:cFileName 指定要查找文件的名称,必须包含文件的扩展名。若找到cFileName,函数结果为 .t.。若找不到cFileName ,函数结果为 .f.。 返回值类型:逻辑型。,3.4 常用函数,3IIF() 功能:根据逻辑表达式的结果,返回两个值中的某一个。 语法:IIF ( lExpression, eExpression1, eExpression2 ) 参数:lExpression 指定要计算的逻辑表达式。 eExpression1, eExpression2 如果 lExpression 的计算结果为“真”(.t.),返回结果为 eExpression1;如果lExpression 的计算结果为“假”(.F.),则返回结果为eExpression2。 返回值类型:字符、数字、货币、日期或日期时间型。由eExpression的类型决定。,3.4 常用函数,7STR () 功能:将指定数值表达式的结果转换为字符串。 语法:STR ( nExpression,nLength,nDe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乳铁蛋白销售课件教学
- 法律合规年度汇报
- 正式的买卖合同样书6篇
- 公司法股东与股权课件
- 淘宝推广招聘工作总结
- 护士ICU进修汇报
- 过程控制项目汇报
- 结扎手术诊疗指南解读
- 2025生物制品购销合同
- 2025年上海版劳动合同范本
- 视频制作拍摄服务方案投标文件(技术方案)
- 学校食堂家长开放日活动上校长讲话:一起为孩子们的“舌尖安全”把好关
- 肺结核防治知识培训课件
- 物流客服管理制度
- 下半年中小学教师资格笔试考试题库带答案2025
- 2024年全国职业院校技能大赛高职组(环境检测与监测赛项)考试题库(含答案)
- 综合布线工程安全技术交底
- 贵州省高品质住宅设计导则(试行)2025
- 小学六年级奥数竞赛题100道及答案解析
- 2025-2030中国钽电解电容器市场营运格局分析与全景深度解析报告
- 教学设计与教案之间的区别
评论
0/150
提交评论