ObjectPascal语言的语法基础

上传人:宝路 文档编号:47921435 上传时间:2018-07-06 格式:PPT 页数:257 大小:2.27MB
返回 下载 相关 举报
ObjectPascal语言的语法基础_第1页
第1页 / 共257页
ObjectPascal语言的语法基础_第2页
第2页 / 共257页
ObjectPascal语言的语法基础_第3页
第3页 / 共257页
ObjectPascal语言的语法基础_第4页
第4页 / 共257页
ObjectPascal语言的语法基础_第5页
第5页 / 共257页
点击查看更多>>
资源描述

《ObjectPascal语言的语法基础》由会员分享,可在线阅读,更多相关《ObjectPascal语言的语法基础(257页珍藏版)》请在金锄头文库上搜索。

1、第2章 Object Pascal语言的语法基础 2.1 符号集 2.2 语句 2.3 常用函数与过程 2.4 异常处理 2.5 小结 习题二2.1 符 号 集任何一种程序设计语言都具有自己的符号集。符号集由字母、数字、特殊字符、关系运算符、赋值运算符等组成。2.1.1 字符集Object Pascal语言的字符集使用的是ASCII码的字符集,它包括英文字母、数字、特殊字符和字符组合作为特殊符号等。1英文英文包括26个大小写英文字母,即“AZ”和“az”。2数字数字包括09这10个数字。3特殊字符除了英文字母和数字外的其他字符都属于特殊字符。(1)可见的特殊字符。1)单个字符作为特殊符号:如+

2、 - * / # $ .。2)字符组合作为特殊符号:是指由两个字符组成并表示一定的特殊意义,如/ = 。在Delphi中,不同变量类型之间的运算有可能出错,当位数少的向位数多的方向赋值时不会出错,反过来就要出错。例2.4 变量声明的应用。程序代码如下:procedure TForm1.Button1Click(Sender: TObject);Vari:integer; /定义i是整型变量j:byte; /定义j是字节型变量beginj:=255;i:=j; /不会出错i:=5985;j:=i; /超出了j的取值范围,出错end;2)字符类型:所有ASCII码都属于字符类型,一般的字符只占用1

3、个字节的内存空间。字符类型可分为AnsiChar和WideChar。AnsiChar是单字节字符,占用1个字节,它是Ansi字符集中的字符;WideChar占用2个字节的空间(即16位),是Unicode字符集中的字符。Char是一般字符类型,即通用类型。 在不同的CPU和不同的操作系统下占用的内存空间不同,可能是1个字节,也可能是2个字节。字符数据类型的名称、类型、长度和取值范围如表2.5所示。Ansi字符集是ASCII字符集的扩展,每个字符占用1个字节,即8位。Unicode字符集中前256个字符是Ansi字符集,最常用的字符类型是Char类型。表2.5 字符数据类型适用于字符类型的运算符

4、如下:关系运算:=,=,。逻辑运算:and,or,not。关于布尔数据类型的逻辑运算,例如,设A,B是两个变量,两者之间进行的逻辑运算结果如表2.7所示。表2.7 A,B逻辑运算4)枚举类型:它是通过列举表示其值的标识符来定义的有序集合。有时需要变量引用一个固定集合中的值,如一周七天,Week可以表示Sunday,Monday,Tuesday,Saturday。此种情况就要用枚举类型。使用枚举类型用户可以定义一组具有特殊意义的值,最多可定义255个子项。枚举类型的定义格式如下:Type类型定义符=标识符1,标识符2,标识符n;其中,Type是定义枚举类型的保留字;类型定义符是枚举变量的名称;标

5、识符1,标识符n是自定义的一组有意义的标识符,且n必须小于等于255。例如:TypeWeek=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);Week被定义为枚举类型,括号中的值称为枚举常量。即可以使用枚举类型Week定义变量。例如:VarD:Week; /定义D是Week类型的变量也可以同时定义枚举类型和变量声明。例如:VarD:(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);D:=Sunday; /对枚举类型变量D赋值注意:枚举类型不能进行输入、输出操

6、作。5)子界类型:它是在有序类型的取值范围内重新定义部分取值范围。枚举类型需要把所有的项逐一写出来,当数量较少时不太复杂,而当数量较多时枚举类型非常烦琐。例如,定义1100之间的整数,使用枚举类型:1,2,3,100,要写100个数,这不是用户所想要的。此种情况用子界类型定义非常简单,子界类型的定义格式如下:Type 子界类型=常量下界.常量上界;Var子界类型变量:子界类型;其中,常量下界和常量上界必须是同一种有序类型,常量下界要小于等于常量上界,下面通过一个例子来说明子界类型。例如:TypeNum=1.15;Letter=a.z;VarI:Num;因此,子界类型必须要求是有序类型,如整型、

7、布尔型、字符型、枚举型等。而无序类型不能作为子界类型的元素。对Num赋值应为在115之间的整数,超出这个范围编译器将提示出错。(2)实数类型:又称为浮点类型,包括整数部分和小数部分。实数不是有序类型,因为它的值域是无限的,主要用于数值较大或者精度较高的运算。运算时占用大量的CPU资源,运算的速度也低于整型。实数类型包括以下几种基本类型,Double,Real48,Single,Extended,Currency和Real,它们之间的区别主要是取值范围、占用空间的大小不同。实数类型的类型、名称、取值范围、有效数字和长度如表2.8所示。表2.8 实数类型除此之外,还有Comp也属于实数类型,但很少

8、使用。其中Double,Real48,Single,Extended,Currency为基本类型;Real为一般类型。注意:(1)Extended类型比Real类型的精度高,但是它与其他语言或者操作平台的兼容性较差,尽可能的避免使用。(2)Real类型与Double类型是等价的。(3)Currency类型是专为财务货币处理设计的,此类型至少有4位有效小数位。(3)字符串类型:它是存储字符串数据的类型,可分为ShortString,AnsiString,WideString和String,字符串类型的类型、名称、最大长度和所需的内存空间如表2.9所示。表2.9 字符串类型其中,ShortStri

9、ng,AnsiString,WideString是基本字符类型;String是一般字符类型,即通用类型。当编译开关的状态为$H-时,用保留字String声明的是短字符串,即ShortString;当编译开关的状态为$H+时,用保留字String声明的是长字符串,即AnsiString。在默认情况下,编译开关的状态为$H+。字符串变量声明的语法格式如下:Var类型标识符:String长度;在程序中一般使用String,很少使用ShortString,AnsiString和WideString来声明字符串变量。例如:VarStr1:string;Str2:string10;其中,可以通过字符串的下

10、标来访问字符串中的字符,10是限制字符串的长度不能超过10,如果赋初值时字符串的长度超过了10,则系统自动识别前10位,剩余的字符将被丢失,但是AnsiString和WideString类型的字符串没有长度的限制。例2.5 超过定义字符串范围的长度将被丢失的应用。程序代码如下:procedure TForm1.Button1Click(Sender: TObject);Varstr:string2;beginstr:=asdjgh; /给str赋值Label1.Caption:=str;end;执行这段程序后结果是as。说明变量str把字符串asdjgh中的后4位数据“djgh”丢失。在一段程

11、序中如果字符串变量str赋的值是汉字,则用str来显示其字符可能是乱码,下面通过一个例子说明这个问题。例2.6 输出“我喜欢Delphi”的第一个字节。程序代码如下:procedure TForm1.Button1Click(Sender: TObject);Varstr:string10;beginstr:=我喜欢Delphi; /给str赋值Label1.Caption:=str1;end;执行这段程序显示的不是“我”,而是乱码,可改为下面的程序:procedure TForm1.Button1Click(Sender: TObject);Varstr:string;beginstr:=我

12、喜欢Delphi ;/给str赋值Label1.Caption:=str1;end;执行这段程序后显示字符“我”。(4)日期时间类型:该类型是Delphi常用的一种类型,用来存储、控制日期和时间,和日期时间类型相似的是日期类型和时间类型。日期时间类型实际上是浮点类型的一种,在变量中存储年、月、日、小时、分和秒这些信息。声明一个日期时间型的变量和声明其他变量类似。例如:VarMydatetime:datetime;例2.7 日期时间类型的应用。程序代码如下:procedure TForm1.Button1Click(Sender: TObject);Varmy:datetime;/定义变量beg

13、inmy:=now();/获取系统日期时间Label1.Caption:=datetimetostr(my); /显示系统日期时间end;这段程序的作用是显示当前系统的日期时间。其中,now()是获取系统日期时间的函数,而datetimetostr()是将日期时间类型转换成字符类型。2结构类型结构类型比简单类型的数据复杂,结构类型在程序中也是非常重要的。它包含很多类型,下面重点介绍集合类型、数组类型和记录类型。(1)集合类型:它是把一组相关的对象作为一个整体参加运算,每一个对象称为集合的一个元素。这点和枚举类型、子界类型类似,但是它们之间也有区别,集合类型是一个整体,而枚举类型和子界类型的变量

14、只是它的一个元素;集合类型中元素没有先后顺序关系,相同的元素不能在同一个集合中出现。1)定义集合类型。其类型的格式如下:Type集合标识符=set of 基本类型;其中,集合元素的个数不能超过256个字符,Type,set of是保留字;基本类型可以是任意有序类型,如整数类型、字符类型、布尔类型、枚举类型和子界类型,但不能是实数类型。例如:TypeNum=set of 1.10;/以子界类型为基类MyChar=set of char;/以字符类型为基类Orient=(east,west,south,north);/以枚举类型为基类需要注意的是在使用集合类型时,要先定义集合类型,集合类型的变量声

15、明与其他类型变量的声明类似。例如:VarMynum:Num;也可以同时声明集合类型和变量。例如:VarMynum:set of 1.10;注意:集合中元素上界应大于等于下界,集合元素的个数不能超过256个字符,如Mychar=set of Widechar;是错误的,因为Widechar的位数为2,包含65 535个字符。2)集合类型变量赋值。给集合类型变量赋值时用方括号表示。例如:TypeNum=set of 1.10;VarMynum:Num;beginMynum:=1,2,3,4,5;end;先定义了集合类型Num,然后声明集合变量,最后给它赋值。其中Mynum是num的类型变量,集合类型允许值为空集,如Mynum:=;。3)集合类型的运算。该运算包括等于“=”与不等于“,=,in例如:F:=6+3*6/89*(5 mod 3); /F值是640 449 438 202 247(6-3)5) /结果是true(6-3)5) /语法错误8 in 2,8 /结果是true88+99 /结果是88992.1.9 注释程序的注释是对一段程序或者一行程序的解释。在编译过程中不参与编译,用来增强程序的可读性。程序中常使用“/”注释程序。注释有两种方式,即整行注释和行内注释。1整行注释整行注释是以“/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号