Delphi数据库程序设计教程 第2章 Pascal语言基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 算术运算符 3. 位运算符 5. 指针运算符 7. @运算符 9. 关系运算符
- - - -
2. 逻辑运算符 4. 字符串运算符 6. 类运算符 8. 集合运算符
2.3.1 运算符
1. 算术运算符
算术运算符对浮点数和整数进行加、减、乘、除和取模运算。
运算符 + 作用 两个数相加 操作数类型 Integer,real 结果类型 Integer,real 举例 X+Y
type TStudent=Record Name:String[30]; Age:Integer; StudNum:Integer; Score:real; end;
var Student1:TStudent; begin Student1.Name:='Smith'; Student1.Age:=20; Student1.StudNum:=950007; Student1.Score:=87.5; end;
2.1.5 指针类型
Pascal允许建立动态数据结构,它采用指针类型数据,指针类型变量的引入大 大增强了程序的灵活性。一个指针类型变量用于保存一个内存地址,由于该 内存地址指向的是一个动态分配的变量,所以,在定义指针类型数据时,必 须说明它所指向变量的类型。 例如:
Type Pbirthday=^TBirthday; TBirthday=Record Name:String[30]; Year:Integer; Month:1..12; Date:1..31; end; var Pbirthday1:Pbirthday; Pint:^Integer; begin Pbirthday1^.Name:='Smith'; Pint^:=18; end;
2.1.8 文件类型
文件类型是用来对文件进行操作的, 它包括同一类元素的线性有序组合。 Delphi支持的文件类型有文本文件、 记录文件和无类型文件。定义文件 类型实际上是定义了一个文件类型 的指针。
例如:
type TStudent=Record Name:String[30]; Age:Integer; StudNum:Integer; Score:real; end; Fstudent=File of Tstudent; Fstr=File of String;
var Student1:FStudent; Str:Fstr; begin Student1^.Name:='Smith'; Student1^.Age:=20; Student1^.StudNum:=950007; Student1^.Score:=87.5; Str^='I love Delphi 7.0.' end;
2.2.2 变量
Object Pascal要求在一个过程、函数或程序前在变量声明段中声明它们。 Object Pascal类似Visual Basic,但不像C和C++,是大小写不敏感的。采用大小 写只是为了可读性好。 当在Object Pascal中声明一个变量时,变量名在类型的前面,中间用冒号隔开, 变量初始化通常要跟变量声明分开。
需要注意的是,每个枚举值只能出现在一个枚举类型的定义当中,而且在每 个枚举类型的定义当中只能出现一次。
2.1.4 集合类型
集合类型是Pascal允许用户定义的一个结构数据类型,它使用户可以运用通常 集合运算,例如:交集、并集和差集。集合类型是一些同类型元素的集合, 这些基类型元素可以是整型、实型、布尔型、字符型、枚举型或子界类型。 它通常的作用是用来检验某个元素是否被包含在一个集合当中。 下例用来说明集合类型数据的定义方法和运用:
布尔型(Boolean)
ByteBool WordBool LongBool
字符型(Char)
Char String
2.1.2 子界类型
子界类型是Pascal允许用户定义的一个结构数据类型。如果用户预先知道一个 变量的范围,就可以通过定义子界类型和子界类型变量来实现由系统自动检 查变量是否超出了允许的范围。 子界类型的定义:
Type 〈类型名称〉=〈常量1〉..〈常量2〉;
例如以下代码:
type TMonth=1..12; TScore='A'..'F'; var Month:TMonth; Score:TScore;
如上定义了子界类型变量Month的范围从1~12,Score的范围从'A'~'F'。
2.1.3 枚举类型
type TWeekDay=Set of 1..7; var WeekDay:TWeekDay; begin WeekDay:=[1,3,5,6]; end;
注意Pascal编辑程序限制了集合数目,所以整型数据不能作为集合类型的基类 型。而只能是整型子界。基类型必须是有序类型,所以实型、数组类型不能 作为集合类型的基类型。
* / Div Mod
两个数相减
两个数相乘 两个浮点数相除 两个整型数相除 取模
Integer,real
枚举类型的定义:
Type 〈类型名称〉=(〈标识符1〉),〈标识符2〉,…,〈标识符n〉);
用户经常要用到这样的数据,它是通过列举出该数据所有的可能值来定义的, 如下例:
type TWeekDay=(Sun, Mon, Tue, Wed, Thu, Fri, Sat); var WeekDay:TweekDay;
第2章 Pascal语言基础
Pascal语言体现了结构化程序设计的概念。它简便 易学,具有清晰明了的模块结构,丰富的数据类 型和语句。Pascal语言编译、运行效率高,便于移 植,因此广泛地应用于应用软件的开发。
2.1 2.2 2.3 2.4 2.5 2.6
数据类型 常量与变量 运算符和表达式 基本程序设计 过程与函数 常用内部函数
2.1.7 记录类型
记录类型包括了一组元素,但和数 组型数据不同的是,记录类型数据 可以包括相同的数据类型,也可以 包括不同的数据类型;这些数据可以 是数值型的,也可以是非数值型的。 例如:用户可以使用一个记录类型 数据记录一个学生的名字、出生日 期、籍贯以及学习成绩等。 例如,一个学生的记录类型如下:
Delphi能在var块中对全局变量赋初值,这里有一些例子演示:
var i:Integer=10; S:String='Hello World'; D:Double=3.141579;
能赋初值的变量仅是全局变量,不是那些在过程或函数中局部变量,而且 Delphi编译器自动对全局变量赋初值。当程序开始时,所有的整型数赋为0, 浮点数赋为0.0,指针为null,字符串为空等等,因此,在源代码中不必对全局 变量赋零初值。
2.2 常量与变量
常量和变量是学习各种编程语言进行程序设计的基础概念, 分别代表了在程序运行过程中两种不同状态的量。常量是 指在程序运行过程中其值始终不变的量;与之相反,变量 则是程序运行过程中其值可以改变的量。
2.2.1 常量 2.2.2 变量
2.2.1 常量
在Pascal中用const关键字来声明常量,就像在C语言中const关键字一样,C语言 跟Object Pascal语言声明常量的主要差别是,在Object Pascal语言中不需要在对 常量赋值时声明常量的类型,跟Visual Basic一样,编译器能根据常量的值自动 判断常量的类型并分配内存;对于整型常量,编译器在运行时跟踪它的值, 并不对它分配内存。 例如:
2.1.6 数组类型
数组类型数据是一种用户定义的结构数据类型,它是一些具有相同数据类型 的元素的集合。根据数组的维数可以将数组分为一维数组、二维数组以及多 维数组,每一维度的下标指明了元素的数目。其下标类型包括了除长整型以 外的所以有序类型以及长整型的子界类型。 例如:
type TOneArray=Array[3..39] of Integer; TdoubleArray=Array[125,1..50] of Real; Var OneArray:TOneArray; doubleArray:TdoubleArray;
const ADecimalNumber=3.14; i=10; ErrorString='danger,Danger,Danger!';
编译器根据如下规则来对常量分配内存:整型数被认为是最小的Integer类型 (10被认为是ShortInt,32000被认为是SmallInt等);字符串值被认为是char类型 或string类型(通过$H定义);浮点值被认为是extended数据类型,除非小数点 位数小于4位(这种情况被当作comp类型);Integer和Char的集合类型被存储为 它们自己。
2.1 数据类型
Object Pascal的数据类型包括一些标准的数据类型,例如: 整型、实型、字符型、字符串型和布尔型等等。除此之外, 系统还允许用户自己定义一些较为复杂的数据类型,例如: 子界类型、枚举类型、指针类型、记录类型以及文件类型 等等。
2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8
2.3 运算符和表达式
运算符是在代码中对各种数据类型进行运算的符号。例如, 有能进行加、减、乘、除的运算符,有能访问一个数组的 某个单元地址的运算符。表达式由运算对象和运算符两部 分组成。
来自百度文库
2.3.1 运算符 2.3.2 表达式
2.3.1 运算符
Object Pa s c a l语言中的运算符(Operators)有:
-32768~32767 -2147483648~2147483647 0~255 0~65535 2.9E-39~1.7E38,-2.9E-39~-1.7E38 1.5E-45~3.4E38,-1.5E-45~-3.4E38 5.0E-324~1.7E308,-5.0E-324~-1.7E308 3.4E-4932~1.1E4932,-3.4E-4932~-1.1E4932 -9.2E18~9.2E18 -922337203685477.5808~922337203685477.5807 True/False True/False True/False True/False ASCII码 ASCII码
ShortInt
整型(Integer) SmallInt LongInt Byte Word Real Single 实型(Real) Double Extended Comp Currency Boolean
1
2 4 1 2 6 4 8 10 8 8 1 1 2 4 1 0~255
-128~127
@、not、^、*、/、div、mod、and、shl、shr、as、+、-、or、xor、=、>、<、<>、 <=、>=、in和is等。
按照操作数数目的多少来分,运算符分为下面两类:单目运算符(Unary Operator)和双目运算符(Binary Operator)。上面的@、not和^为单目运算符, 其余的为双目运算符。其中+和-也可以作为单目运算符来使用。 单目运算符一般放在操作对象的前面,只有^可以放在操作对象的后面。双目 运算符都放在两个操作数之间。 有些运算符是根据给定的操作数的数据类型做相应处理的。例如,运算符not 对于整型的操作数说,做的是按位取反;对于逻辑类型的操作数来说,它完成 的则是逻辑取反。 除了运算符^、is和in外,其余操作符都可以对Variant类型的数据进行操作。
标准数据类型 子界类型 枚举类型 集合类型 指针类型 数组类型 记录类型 文件类型
2.1.1 标准数据类型
Object Pascal的数据类型包括一些基本的简单数据类型,例如:整型、实型、 字符型、字符串型和布尔型等等。下表列出了标准的数据类型。
类别 Integer Cardinal 类型 大小(byte) 2/4 2/4 -32768~32767/-2147483648~2147483647 0~ 65535/0~2147483647 范围