《《常量与变量》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《常量与变量》PPT课件.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 我我们们在在第第1 1章章已已经经学学习习了了Visual Visual FoxProFoxPro数数据据库库基基础础,下下面面进进行行第第2 2章章Visual Visual FoxProFoxPro程序设计基础的学习。程序设计基础的学习。同学们,大家好!同学们,大家好!1第第2章章 VisualFoxpro基础基础本章在笔试部分占14%2.1 常量与变量常量与变量2.5 表达式表达式2.3 常用函数常用函数2.4 程序与程序文件程序与程序文件2.5 程序的基本结构程序的基本结构2.6 多模块程序设计多模块程序设计22.1.1 2.1.1 常量常量 常量通常是指以文字串形式出现在代常量通常
2、是指以文字串形式出现在代码中的数据,代表一个具体的、不变的值。码中的数据,代表一个具体的、不变的值。常量的类型包括:常量的类型包括:F数值型数值型F货币型货币型F字符型字符型F日期型日期型F日期时间型日期时间型F逻辑型逻辑型 不同类型的常量的书写格式不同。不同类型的常量的书写格式不同。2.1 常量与变量常量与变量32.1 常量与变量常量与变量2.1.1 2.1.1 常量常量1数值型常量 数数值值型型常常量量也也就就是是常常数数,用用来来表表示示一一个个数数量量的的大大小小,由由数字数字0-90-9、小数点和正负号组成,表示整数或实数值。、小数点和正负号组成,表示整数或实数值。如如:100100
3、,-21-21,等等分分别别是是数数值值型型常常量量中中的的整整数数和和实实数数。为为了了表表示示很很大大或或很很小小的的数数值值型型常常量量,也也可可以以使使用用科科学学记记数数法法形式书写:形式书写:数值型数据在内存中用数值型数据在内存中用8 8个字节表示,其取值范围是:个字节表示,其取值范围是:-0.999 999 999 9E+19 -0.999 999 999 9E+19至至0.999 999 999 9E+200.999 999 999 9E+20。42.1.1 2.1.1 常量常量2 2货币型常量 货货币币型型常常量量用用来来表表示示货货币币值值,其其书书写写格格式式与与数数值值
4、型常量类似,但要加上一个前置的美元符号(型常量类似,但要加上一个前置的美元符号($)。)。如如果果一一个个货货币币型型常常量量多多于于4 4位位小小数数,那那么么系系统统会会自自动将多余的小数四舍五入。动将多余的小数四舍五入。例:常量将存储为。例:常量将存储为。货币型常量没有科学记数法,在内存中占用货币型常量没有科学记数法,在内存中占用8个个字节。取值范围是:字节。取值范围是:-922 337 203 685 477.580 7-922 337 203 685 477.580 7至至922 337 203 685 477.580 7922 337 203 685 477.580 72.1 常量
5、与变量常量与变量52.1 常量与变量常量与变量2.1.1 2.1.1 常量常量3.字符型常量 也称为字符串。其表示方法是用其表示方法是用半角的半角的:单引号单引号 双引号双引号 方括号方括号 把字符串括起来。这里的单引号、双引号或把字符串括起来。这里的单引号、双引号或方括号称为定界符,它们必须配对。如果某种定方括号称为定界符,它们必须配对。如果某种定界符本身也是字符串的内容界符本身也是字符串的内容、则需另一种定界符、则需另一种定界符为该字符串定界。为该字符串定界。注意:不包含任何字符的字符串(“”)叫空串。空串与包含空格的字符串()不同。62.1 常量与变量常量与变量2.1.1 2.1.1 常
6、量常量3.字符型常量例如:例如:?学生学生,123,军人军人?456.789,334343?好好学习好好学习,abc,ABC单一问号单一问号(?)命令的命令的功能是在下一行显示功能是在下一行显示若干个表达式的值。若干个表达式的值。双问号双问号(?)命令的命令的功能是在同一行显示功能是在同一行显示若干个表达式的值。若干个表达式的值。72.1 常量与变量常量与变量2.1.1 2.1.1 常量常量4.日期型常量 日期型常量有严格的日期格式和传统的日期格式,其定界符都是一对花括号。花括号内包括年、月、日三部分内容,各部分之间用分隔符分隔。常用的分隔。常用的分隔符有:符有:斜杠(斜杠(/)连字符(连字符
7、(-)句点句点(.)空格空格 日期型数据用日期型数据用8个字节表示,取值范围是:个字节表示,取值范围是:0001年年1月月1日至日至9999年年12月月31日。日。82.1.1 2.1.1 常量常量4.日期型常量(1 1)严格的日期格式)严格的日期格式 yyyy-mm-dd yyyy-mm-dd 注注意意第第1 1个个字字符符是是脱脱字字符符()(),年年份份必必须须是是4 4位位;年年月月日日次次序序不不能能颠颠倒倒、不能缺省。不能缺省。2.1 常量与变量常量与变量92.1.1 2.1.1 常量常量4.日期型常量(2 2)传统的日期格式)传统的日期格式yy/mm/ddyy/mm/dd yy-
8、mm-dd yy-mm-dd yy mm dd yy mm dddd/mm/yydd/mm/yy dd-mm-yy dd-mm-yy dd mm yy dd mm yymm/dd/yymm/dd/yy mm-dd-yy mm-dd-yy mm dd yy mm dd yy 传传统统日日期期格格式式只只能能在在set set strictdate strictdate to to 0 0状状态态下下使使用用。若若在在set set strictdate to 1strictdate to 1或或2 2状态下使用传统日期格式,将弹出如图对话框。状态下使用传统日期格式,将弹出如图对话框。2.1 常量
9、与变量常量与变量102.1.1 2.1.1 常量常量4.日期型常量(2 2)传统的日期格式)传统的日期格式这这种种格格式式的的日日期期型型常常量量要要受受到到语语句句Set Set date date to to 和和set set century century to to 设设置置的的影影响响。即不同状态计算机做出不同的解释。即不同状态计算机做出不同的解释。2.1 常量与变量常量与变量112.1.1 2.1.1 常量常量4.日期型常量(3 3)影响日期格式的设置命令)影响日期格式的设置命令lSet mark to Set mark to 功功能能:用用于于指指定定显显示示日日期期值值时时所
10、所用用的的分分隔隔符符,如如“-”“-”、“.”“.”等等。如如果果执执行行set set mark mark to to 没没有有指指定定分分隔符,表示恢复系统默认的斜杠分隔符。隔符,表示恢复系统默认的斜杠分隔符。2.1 常量与变量常量与变量122.1.1 2.1.1 常量常量4.日期型常量(3 3)影响日期格式的设置命令)影响日期格式的设置命令l设置日期显示格式设置日期显示格式 用用户户可可以以调调整整、设设置置日日期期值值和和时时间间值值的的显显示示输输出出格格式。既可以用命令方式设置,也可以用菜单方式设置。式。既可以用命令方式设置,也可以用菜单方式设置。命令格式:命令格式:SET SE
11、T DATE DATE TO TO AMERICAN AMERICAN|ANSI ANSI|BRITISH BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD|DMY|YMD 命命令令功功能能:设设置置日日期期型型和和日日期期时时间间型型数数据据的的显显示示输输出格式。系统默认为出格式。系统默认为AMERICANAMERICAN美国格式。美国格式。2.1 常量与变量常量与变量132.1 常量与变量常量与变量 各种日期格式设置所对应的日期显示输出格式,各种日期格式设置所对应的日
12、期显示输出格式,见下表所示。见下表所示。常用的日期格式短语格式短语格式Americanmm/dd/yyANSIyy.mm.ddBRITISH/FRENCHdd/mm/yyGERMANdd.mm.yyITALIANdd-mm-yyJAPANyy/mm/ddUSAmm-dd-yyMDYmm/dd/yyDMYdd/mm/yyYMDyy/mm/dd142.1.1 2.1.1 常量常量4.日期型常量(3 3)影响日期格式的设置命令)影响日期格式的设置命令l设置日期设置日期20002000年兼容性年兼容性 通通常常日日期期型型和和日日期期时时间间型型数数据据的的结结果果,与与SET SET DATEDAT
13、E命命令令和和SET SET CENTURYCENTURY命命令令设设置置状状态态及及当当前前系系统统时时间间有有关关。由由于于系系统统时时间间与与相相应应设设置置不不同同,同同一一数数据据的的结结果果可可能能有有不不同同的的解解释释。如如日日期期值值10/11/1210/11/12可以解释为可以解释为:1912 1912 年年 10 10 月月 11 11 日日2012 2012 年年 10 10 月月 11 11 日日1912 1912 年年 11 11 月月 10 10 日日1910 1910 年年 11 11 月月 12 12 日日2010 2010 年年 11 11 月月 12 12
14、 日日等。等。这这显显然然会会导导致致系系统统混混乱乱,而而且且还还可可能能造造成成20002000年年兼兼容容性性错错误误,影响系统正常、有效的操作运行。影响系统正常、有效的操作运行。2.1 常量与变量常量与变量152.1.1 2.1.1 常量常量4.日期型常量(3 3)影响日期格式的设置命令)影响日期格式的设置命令lSET STRICTDATE TO 0|1|2SET STRICTDATE TO 0|1|2 命令功能:命令功能:0 0:关关闭闭严严格格的的日日期期格格式式检检测测,即即设设置置日日期期格格式式按按传传统统的严格的格式;的严格的格式;1 1:设设置置严严格格的的日日期期格格式
15、式检检测测(默默认认值值),要要求求所所有有日日期型和日期时间型数据均按严格的格式;期型和日期时间型数据均按严格的格式;2 2:设设置置与与1 1相相同同,但但如如果果程程序序代代码码中中出出现现CTOD()CTOD()和和CTOTCTOT()()函函数数时时,会会出出现现编编译译错错误误。这这个个设设置置最最适适合合调调试试时时使使用用,用来检测用来检测20002000年兼容性错误;年兼容性错误;省略:恢复系统默认值,等价于省略:恢复系统默认值,等价于1 1的设置。的设置。2.1 常量与变量常量与变量16影响日期型常量的设置命令影响日期型常量的设置命令l举例:举例:clearset stri
16、ctdate to 0d=10/11/12set strictdate to 1?set strictdate to 1:,dset date to usa?set date to usa:,dset date to german?set date to german:,dSet date to japan?Set date to japan:,d172.1.1 2.1.1 常量常量4.日期型常量(3 3)影响日期格式的设置命令)影响日期格式的设置命令lSet Set century century on on|off|off|to to rollover rollover On 显示世纪,即
17、用显示世纪,即用4位数字表示年份位数字表示年份Off不显示世纪,即用不显示世纪,即用2位数字表示年份。它是系统默认位数字表示年份。它是系统默认的设置。的设置。To 决定如何解释一个用决定如何解释一个用2位数字年份表示的日期所处的世位数字年份表示的日期所处的世纪。具体来说,如果该日期的纪。具体来说,如果该日期的2位数字年份大于等于位数字年份大于等于,则它所处的世纪即为,则它所处的世纪即为;否则为;否则为+1。2.1 常量与变量常量与变量18影响日期型常量的设置命令影响日期型常量的设置命令l举例:举例:clearset date to Americanset strictdate to 0d=10
18、/11/12e=10/11/82dd=10/11/58ee=10/11/59set century onset date to American?d?e?dd?ee192.1.1 2.1.1 常量常量5日期时间型常量 Visual Visual FoxProFoxPro系系统统中中增增加加了了一一种种表表示示日日期期和和时时间间值的日期时间型常量,其默认格式是:值的日期时间型常量,其默认格式是:mm/dd/yyyy,hh:mm:ssa|p 其中其中a a和和p p分别表示分别表示AMAM(上午)和(上午)和PMPM(下午)。(下午)。日期值和日期时间值的输入格式与输出格式并不完日期值和日期时间
19、值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,用户全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应调整、设置。可根据应用需要进行相应调整、设置。日期型常量有严格的日期格式和传统的日期格式两日期型常量有严格的日期格式和传统的日期格式两种格式,其定界符都是一对花括号。种格式,其定界符都是一对花括号。2.1 常量与变量常量与变量202.1.1 2.1.1 常量常量6逻辑型常量 逻辑型数据只有逻辑真和逻辑假两逻辑型数据只有逻辑真和逻辑假两个值。前后两个小圆点作为逻辑常量的个值。前后两个小圆点作为逻辑常量的定界符,逻辑型数据只占一个字节。例:定界符,逻辑型
20、数据只占一个字节。例:v.t.v.f.v.y.v.n.逻辑数据只占用一个字节。逻辑数据只占用一个字节。2.1 常量与变量常量与变量212.1 常量与变量常量与变量常量特征字符型常量用定界符括起来的字符串。(定界符有三种:、)数值型常量同平常的数货币型常量数值前前置一个符号$,如$23.45,$123.5678等日期型常量用yyyy-mm-dd或m/n/dd/yy的形式(形式由set date to命令指定)日期时间型常量用yyyy-mm-ddhh:mm:ssa/p的形式逻辑型常量用.T.,.t.,.Y.,.y.,表示真,用.F.,.f.,.N.,.n.表示假。222.1 常量与变量常量与变量2
21、.1.2 2.1.2 变量变量 变量是在操作过程中可以改变其取值或数据类型的数据变量是在操作过程中可以改变其取值或数据类型的数据项。在项。在Visual FoxProVisual FoxPro系统中变量分为:系统中变量分为:此外,作为面向对象的程序语言,此外,作为面向对象的程序语言,Visual FoxProVisual FoxPro在进在进行面向对象的程序设计中引入了对象的概念,对象实质上行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。也是一类变量。确定一个变量,需要确定其三个要素:确定一个变量,需要确定其三个要素:变量名变量名数据类型数据类型变量值变量值232.1.2 2.
22、1.2 变量变量1变量命名约定 在在Visual FoxPro系统中,将表示、存储数据的常系统中,将表示、存储数据的常量、变量、数组、字段、记录、对象、表、数据库等,量、变量、数组、字段、记录、对象、表、数据库等,都称之为数据容器。所有数据容器均需命名以相互区都称之为数据容器。所有数据容器均需命名以相互区别,为规范各类对象的命名,别,为规范各类对象的命名,Visual FoxPro系统推荐系统推荐了若干了若干“命名约定命名约定”供用户参考,以提高操作命令与供用户参考,以提高操作命令与程序的可读性和规范性。程序的可读性和规范性。使使用用字字母母,下下划划线线和和数数字字命命名名。一一般般建建议议
23、不不采用采用汉汉字命名;字命名;命命名名以以字字母母或或下下划划线线开开头头;除除自自由由表表中中字字段段名名、索索引引的的TAGTAG标标识识名名最最多多只只能能1010个个字字符符外外,其其他他的的命命名可使用名可使用1 1128128个字符;个字符;避免使用避免使用 Visual FoxPro Visual FoxPro的保留字;的保留字;文件名的命名文件名的命名应应遵循操作系遵循操作系统统的的约约定。定。2.1 常量与变量常量与变量242.1.2 2.1.2 变量变量2简单内存变量 每个变量都有一个名字,可以通过变量名每个变量都有一个名字,可以通过变量名访问变量。访问变量。变量的赋值变
24、量的赋值v=vSTORE TO 说明说明v如果当前表中存在一个同名的字段变量,如果当前表中存在一个同名的字段变量,则在访问内则在访问内存变量时,必须在变量名前加上前缀存变量时,必须在变量名前加上前缀M.或或M-。v给内存变量赋值不需要事先声明。给内存变量赋值不需要事先声明。v可以通过对内存变量重新赋值来改变其内容和类型。可以通过对内存变量重新赋值来改变其内容和类型。2.1 常量与变量常量与变量只能给一个内存变量赋值。可以同时给多可以同时给多个变量赋予相个变量赋予相同的值,用逗同的值,用逗号隔开。号隔开。252.1.2 2.1.2 变量变量3 3数组数组 数组是内存中连续的一片存储区域,一个数组
25、中的数组是内存中连续的一片存储区域,一个数组中的各元素的数据类型可以不同。各元素的数据类型可以不同。在使用数组之前一般要用在使用数组之前一般要用DIMENSION或或DECLARE命令显示创建,数组的大小由下标值的上下命令显示创建,数组的大小由下标值的上下限决定,下限规定为限决定,下限规定为1。数组定义:数组定义:格式格式1:dimension 数组名数组名(最大下标最大下标)格式格式2:declare 数组名数组名(最大下标最大下标)数组的使用:数组的使用:二维数组各元素以行的顺序在内存中二维数组各元素以行的顺序在内存中存储,它们也可以按排列的相对位置以一维数组元素的存储,它们也可以按排列的
26、相对位置以一维数组元素的形式存取。形式存取。2.1 常量与变量常量与变量262.1.2 2.1.2 变量变量3 3数组数组例如:例如:dimension x(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)2.1 常量与变量常量与变量272.1.2 2.1.2 变量变量3 3数组数组数组创建后,系统自动给每个数组元素赋以逻辑值数组创建后,系统自动给每个数组元素赋以逻辑值.F.在一切可以使用简单内存变
27、量的地方,均可使用数组元在一切可以使用简单内存变量的地方,均可使用数组元素。素。在赋值和输入语句中使用数组名时,表示将同一个值同在赋值和输入语句中使用数组名时,表示将同一个值同时赋给该数组的全部数组元素时赋给该数组的全部数组元素同一个运行环境下,数组名不能与简单变量名重复同一个运行环境下,数组名不能与简单变量名重复在赋值语句中的表达式位置不能出现数组名在赋值语句中的表达式位置不能出现数组名可以用一维数组的形式访问二维数组可以用一维数组的形式访问二维数组2.1 常量与变量常量与变量282.1.2 变量变量3数组数组 表中数据与数组数据之间的交换:表中数据与数组数据之间的交换:将表的当前记录复制到
28、数组将表的当前记录复制到数组 格式格式1 1:scatter fields scatter fields memo to memo to blank blank 格式格式2 2:scatter fields like scatter fields like 通配符通配符 fields except fields except memo to memo to 数组名数组名 blank blank例如:例如:clearuse d:学生学生学生信息学生信息.dbfdimension x(5)scatter fields 学号学号,姓名姓名,性别性别,班级班级,出生日期出生日期 to x?x(1),x
29、(2),x(3),x(4),x(5)use2.1 常量与变量常量与变量292.1.2 变量变量3数组数组 表中数据与数组数据之间的交换:表中数据与数组数据之间的交换:将表的当前记录复制到数组将表的当前记录复制到数组 格式格式1 1:scatter fields scatter fields memo to memo to blankblank 格式格式2 2:scatter fields like scatter fields like 通配符通配符 fields except fields except memo to memo to 数组名数组名 blank blank例如:例如:clea
30、ruse d:学生学生课程课程.dbfdimension x(4)scatter fields like*to x?x(1),x(2),x(3),x(4)use2.1 常量与变量常量与变量302.1.2 变量变量3数组数组 表中数据与数组数据之间的交换:表中数据与数组数据之间的交换:将数组数据复制到表的当前记录将数组数据复制到表的当前记录 格式格式1 1:gather from gather from fields fields memo memo 格式格式2 2:gather from gather from fields like/except fields like/except mem
31、o memo例如:例如:clearuse d:学生学生课程课程.dbfdimension x(4)x(1)=1020 x(2)=Visual foxprox(3)=3x(4)=秦强秦强gather from xlistuse2.1 常量与变量常量与变量312.1.2 变量变量3数组数组 表中数据与数组数据之间的交换:表中数据与数组数据之间的交换:将数组数据复制到表的当前记录将数组数据复制到表的当前记录 格式格式1 1:gather from gather from fields fields memo memo 格式格式2 2:gather from gather from fields li
32、ke/except fields like/except memo memo例如:例如:clearuse d:学生学生学生信息学生信息.dbfdimension x(5)x(1)=9811012x(2)=秦强秦强出生日期出生日期=2003-12-2gather from x fields 学号学号,姓名姓名,出生日期出生日期list 学号学号,姓名姓名,性别性别,班级班级,出生日期出生日期,民族民族use2.1 常量与变量常量与变量322.1.3 2.1.3 内存变量常用命令内存变量常用命令1 1内存变量的赋值内存变量的赋值格式格式1:store 表达式表达式 to 内存变量清单内存变量清单格
33、式格式2:内存变量名:内存变量名=表达式表达式功能:计算表达式的值并将表达式的值赋给一个或多个内存功能:计算表达式的值并将表达式的值赋给一个或多个内存变量,格式变量,格式2只能给一个变量赋值。只能给一个变量赋值。例:例:dimension y(5),z(2,2)store 89 to x,y,z?x,y,z?x,y(1),z(1,1)?x,y(1),z(1,1),z(2,2)2.1 常量与变量常量与变量332.1.3 内存变量常用命令内存变量常用命令2内存变量的显示内存变量的显示显示所有内存变量:显示所有内存变量:display/list memory like display/list me
34、mory like 通配符通配符 to print to file(to print to file(文件名文件名)显示指定内存变量的值:显示指定内存变量的值:?/?/?内存变量名清单内存变量名清单例:例:List memoryList memorydisplay memory2.1 常量与变量常量与变量342.1 常量与变量常量与变量2.1.3 内存变量常用命令内存变量常用命令3内存变量的保存内存变量的保存 存储内存变量的文件称为内存文件,存储内存变量的文件称为内存文件,扩展名为扩展名为.mem save to 内存文件名内存文件名 all like/all except 352.1 常量与
35、变量常量与变量2.1.3 内存变量常用命令内存变量常用命令4内存变量的恢复内存变量的恢复 restore from 内存文件名内存文件名 additive362.1 常量与变量常量与变量2.1.3 内存变量常用命令内存变量常用命令5内存变量的清除内存变量的清除清除所有内存变量:清除所有内存变量:clear memory 清除部分内存变量:清除部分内存变量:release 内存变量名清单内存变量名清单 release all like/all except 37例如:例如:clear memorydimension y(2,2)store xxx to x1,y(1,1)y(3)=2008-8-8list memo like y*release all like y*x=2001-08-22,11:30Plist memo like x*(2)内存变量的基本操作内存变量的基本操作2.1 常量与变量常量与变量38Thank you very much!Thank you very much!休休息息,休休息息!39