Delphi程序设计教程(第2版)机械工业出版社同名教材配套电子教案2006.6怎样购买《Dlphi程序设计教程(第2版)》书号:ISBN7-111--09236-8各地电子书店有售网上购买:语言的基础上发展起来的,它继承了Pascal语言语法严谨、数据结构丰富等优点,同时融入了面向对象编程的语法要素,使之成为一个完善的面向对象编程语言。2.1保留字与标识符2.2数据类型2.3常量与变量2.5常用函数与过程2.6语句第2章Delphi的语法基础2.4运算符与表达式2.5常用函数与过程2.6语句2.1保留字与标识符2.2数据类型2.3常量与变量2.4运算符与表达式2.1保留字与标识符2.1.1保留字保留字(ReservedWord)是由系统规定的、具有特定意义的单词,在编程时不能被重新定义或作其他用。ObjectPascal中规定的保留字有65个,见表2-1。ObjectPascal是不区分大小写的,因此,单词And、AND、and都被看作是同样的保留字。2.1保留字与标识符表2-1ObjectPascal的保留字2.1.2标识符标识符是用来表示常量、变量、字段、类型、程序、过程、函数、对象等语法实体的名称的符号。标识符分为标准标识符和自定义标识符两类。2.1.2标识符1.标准标识符标准标识符是ObjectPascal语言系统预先分配给标准函数、标准过程、标准类型、标准常量以及标准文件使用的标识符。如下列所示:(1)标准常量,如False、Maxint、True等。(2)标准类型,如Boolean、Char、Integer、Real、Text等。(3)标准函数,如Abs、Arctan、Chr、Cos、Eof、Sqr等。(4)标准过程,如Dispose、Get、New、Pack、Page、Put等。(5)标准文件,如Input、Output等。2.1.2标识符2.自定义标识符自定义标识符是程序员根据程序设计的需要为自己定义的常量、变量、类型、函数、过程以及所编写的程序所取的名字。ObjectPascal规定,自定义标识符由字母、数字与下划线组成,其命名规则为:(1)必须以字母或下划线开始。(2)不能与保留字相同。(3)尽量避免与标准标识符同名,以免发生混淆。3.限定标识符2.1.3指令符指令符(directives)也是具有特定意义的单词,但是,它们仅被用于用户自定义的标识符不会出现的上下文中。与保留字不同,可以将某个指令符定义为标识符,ObjectPascal不会指示出错,但这容易带来混淆。表2-2ObjectPascal的指令符2.2数据类型描述客观事物的数、字符以及所有能输入到计算机中并被计算机程序加工处理的符号的集合称为数据。数据的一个重要特征就是其所属的数据类型,数据的类型不仅确定了该类数据的表示形式和取值范围,而且还确定了数据所能够参加的各种运算。ObjectPascal继承了Pascal数据类型丰富的特点,提供了多种数据类型2.2数据类型类别类型大小(byte)范围整型(Integer)Integer2/4-32768~32767/-2147483648~2147483647Cardinal2/40~65535/0~2147483647ShortInt1-128~127SmallInt2-32768~32767LongInt4-2147483648~2147483647Byte10~255Word20~65535实型(Real)Real62.9E-39~1.7E38,-2.9E-39~-1.7E38Single41.5E-45~3.4E38,-1.5E-45~-3.4E38Double85.0E-324~1.7E308,-5.0E-324~-1.7E308Extended103.4E-4932~1.1E4932,-3.4E-4932~-1.1E4932Comp8-9.2E18~9.2E18Currency8-922337203685477.5808~922337203685477.5807布尔型(Boolean)Boolean1True/FalseByteBool1True/FalseWordBool2True/FalseLongBool4True/False字符型(Char)Char1ASCII码String0~255ASCII码2.2.1数值型数据1.整型整型是存储整数数据的类型,ObjectPascal包括9种形式的整型数据,见表2-4。注意:应尽量使用一般整型Integer与Cardinal,因为这两种类型可以最大限度的发挥CPU和操作系统的性能。2.实型实型是存储实数数据的类型,ObjectPascal包括5种形式的实型数据,见表2-5。2.2.2字符数据ObjectPascal中的字符数据分为:字符型与字符串型。1.字符型字符型是存储单个字符数据的类型,ObjectPascal包括3种形式的字符型数据,见表2-6。2.字符串型字符串型是存储字符串数据的类型,ObjectPascal包括4种形式的字符串型数据,见表2-7。2.2.3布尔型数据布尔型数据用于进行逻辑运算,ObjectPascal包括4种形式的布尔型数据,见表2-82.3常量与变量有两种形式的数据:一种是在程序的执行过程中其值保持不变,称为常量;一种是在程序的执行过程中其值可以被改变,称为变量。2.3.1常量在Pascal中用const关键字来声明常量。例如:constADecimalNumber=3.14;i=10;ErrorString='danger,Danger,Danger!';2.3.1常量1.直接常量直接常量是指在程序中直接引用的常数,如整型常数、实型常数、字符型常数、字符串型常数和布尔型常数。2.符号常量以标识符形式出现的常量称为符号常量。其语法格式为:CONST〈常量名〉=〈常量值〉;2.3.1常量3.类型常量符号常量可以具有数据类型,其类型可以定义为标准数据类型,也可以定义为高级数据类型。定义类型常量的语法格式为:CONST〈常量名〉:〈类型名〉=〈常量值〉;例如:CONSTPi:real=3.1415926;2.3.2变量ObjectPascal要求在一个过程、函数或程序前在变量声明段中声明它们。名在类型的前面,中间用冒号隔开,变量初始化通常要跟变量声明分开。Delphi能在var块中对全局变量赋初值,这里有一些例子演示:vari:Integer=10;S:String='HelloWorld';D:Double=3.141579;2.3.2变量程序中的变量其实就是某个内存地址的标识符,它所代表的内存单元中的值在程序的运行过程中可以被改变。变量有如下3个重要的特征。(1)变量名:变量名即变量的标识符,用于对所代表的内存单元的引用。(2)类型:变量的类型决定了变量中所存放数据的范围、有效的操作、存储空间的大小和格式。(3)变量值:变量值即变量所代表的内存单元中的数据值。程序中的变量必须先进行声明才能被使用。2.3.2变量1.变量的声明在ObjectPascal中,变量在单元、函数或过程的声明部分进行声明,声明位置决定了变量的作用域。变量声明的语法格式为:VAR〈变量名1〉:〈类型名1〉;…〈变量名n〉:〈类型名n〉;当多个变量具有相同的类型时,可以使用如下的紧凑格式:VAR〈变量名1〉,…,〈变量名n〉:〈类型名〉;2.3.2变量2.变量的使用变量经过声明之后,就可以在程序中使用了。通常可以通过赋值语句给变量赋值,在表达式中使用变量。初始化变量的最简单方法就是给变量赋值。2.4运算符与表达式运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。表达式是表示某个求值规则的运算公式。表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。表达式的类型由运算符的类型决定。在ObjectPascal中有8类运算符:算术运算符、位运算符、字符串运算符、关系运算符、布尔运算符、集合运算符、指针运算符、类运算符和@运算符。2.4.1算术运算符1.算术运算符ObjectPascal有8个算术运算符,见表2-9。在这8个算术运算符中,除取正“+”、取负“-”是单目运算符外,其他均为双目运算符。2.算术表达式算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。2.4.1算术运算符3.算术运算符的优先级在算术表达式中可以包含各种算术运算符,必须规定各个运算的先后顺序,这就是算术运算符的优先级。表2-10按优先顺序由高到低列出了算术运算符。当一个表达式中含有多种算术运算符时,将按上述顺序求值。同级运算自左至右,如果表达式中含有括号“()”,则先计算括号内表达式的值;如果有多层括号,先计算最内层括号中的表达式。2.4.2位运算符位运算是指对操作数进行的按位逻辑运算,其运算对象是整数,运算结果也是整数。ObjectPascal有6个位运算符,见表2-11。2.4.3字符串运算符ObjectPascal只有一种字符串运算符,即连接运算符“+”,该运算符用于连接两个或更多的字符串。最简单的字符串表达式是字符常量、字符串常量、字符变量、字符串变量或字符函数引用。字符串表达式的格式为:〈字符串表达式〉+{〈字符串〉|〈字符〉}2.5常用函数与过程为了尽可能地减少开发应用程序的难度和工作量,Delphi提供了一个内容十分丰富的程序库——Run-TimeLibrary(RTL),其中包含了大量的基本函数、过程、常量和变量定义。RTL包含的函数、过程、常量等都是在System单元中定义的,而System单元会自动地被其他程序单元引用,所以用户编写的应用程序可以随时调用RTL中可用的函数和过程,而不用在程序的uses语句中引用该单元。2.5.1数学运算函数1.绝对值函数绝对值函数定义:functionAbs(x);2.平方与平方根函数平方函数的定义:functionSqr(x:Extended):Extended;平方根函数的定义:functionSqrt(x:Extended):Extended;2.5.1数学运算函数3.三角函数Delphi提供了3个有关三角运算的函数:Sin、Cos、ArcTan,函数定义分别为:functionSin(x:Extended):Extended;functionCos(x:Extended):Extended;functionArcTan(x:Extended):Extended;4.取整数函数的定义:functionInt(x:Extended):Extended;取小数函数的定义:functionFrac(x:Extended):Extended;2.5.1数学运算函数5.取整函数functionTrunc(x:Extended):Int64;说明:参数x为实型表达式,返回不大于x的整数。6.指数函数和对数函数functionExp(x:Real):Real;说明:参数x为实型表达式,返回ex,返回值也是实型数据。对数函数的定义:functionLn(x:Real):Real;2.5.1数学运算函数7.随机函数随机函数的定义:functionRandom[(Range:Integer)];8.π函数与其他编程语言不同,Delphi不是将π定义为一个常量,而是提供了一个返回圆周率的函数Pi,函数定义为:functionPi:Extended;2.5.2字符处理函数functionLowerCase(constS:string):string;functionUpperCase(constS:string):string;functionCompareStr(constS1,S2:string):Integer;functionCompareText(constS1,S2:string):Intege