~32767 取值范围
短整型 小整型
长整型 64位整型
字节型 字型 长字型
Longint Int64
Byte Word Long
word -2147483648~2147483647 -263~263
0~255 0~65535 0~4294967295
整型
序数型
Integer
Cardinal
-2147483648~2147483647
0~4294967295
3.2.1 数值型数据
?
2. 实型
?
实型是存储实数数据的类型,Object Pascal包括5种形式 的实型数据。
类型 名称 Single Extended Double Currency Real 字节数 4 10 8 8 8 取值范围 ±1.5×10-39~3.4×1038 ±3.6×10-4951~1.1×104932 ±5.0×10-324~1.7×10308 -922337203685477.5808~ 922337203685477.5807 ±5.0×10-324~1.7×10308
单精度实型 扩展型 双精度实型 货币型 实型
3.2.2 字符数据
?
1. 字符型
?
字符型是存储单个字 符数据的类型, Object Pascal包括3种 形式的字符型数据。
类型 Ansi字符型 宽字符型 字符型
名称 AnsiChar WideChar Char 1 2
字节数
取值范围 扩展ANSI字符集 UniCode字符集 扩展ANSI字符集
1(2)
?
2. 字符串型
字符串型是存储字符 类型 串数据的类型, Object Pascal包括4种 短字符串型 形式的字符串型数据。 长字符串型 (PChar,PAnsiChar, 宽字符串型 PWideChar) 字符串型
?
名称
最大长度
所需内存空间
ShortString
AnsiString WideString String
255个字符
231个字符 230个字符 231个字符
2~256B
4~2GB 4~2GB 4~2GB
3.2.3 布尔型数据
?
?
?
布尔型数据用于进行逻辑运算,Object Pascal包 括4种形式的布尔型数据。 后3种类型是为了兼容其他语言而设置的,编程 时应尽量使用Boolean类型。 布尔运算 BoolToStr(True)
类型 名称 字节数 取值
布尔型
字节布尔型 宽布尔型 长布尔型
Boolean
ByteBo
ol WideBool LongBool
1
1 2 4
只能为0(False)或1(True)
0(False)或非0(True) 0(False)或非0(True) 0(False)或非0(True)
3.3 常量与变量
?
?
常量和变量是
学习各种编程语言进行程序
设计的基础概念, 分别代表了在程序运行过程中两种不同状态的量。常量是 指在程序运行过程中其值始终不变的量;与之相反,变量 则是
程序运行过程中其值可以改变的量。 3.3.1 常量
?
在Pascal中用const关键字来声明常量,不需要在对常量赋值时声明 常量的类型,编译器能根据常量的值自动判断常量的类型并分配 内存。(可靠修改、容易修改、可读性强)
?
3.3.2 变量
?
当在Object Pascal中声明一个变量时,变量名在类型的前面,中间 用冒号隔开,变量初始化通常要跟变量声明分开。Delphi能在var 块中对全局变量赋初值。(声明方法、命名格式、作用范围)
3.4 运算符和表达式
? ?
运算符是在代码中对各种数据类型进行运算的符号。表达式 由运算对象和运算符两部分组成。 3.4.1 运算符
Object Pascal语言中的运算符(Operators)有: @、not、^、*、/、div、mod、and、shl、shr、as、+、-、or、xor、=、 >、<、<>、<=、>=、in和is等。 ? 按照操作数数目的多少来分,运算符分为下面两类:单目运算符 (Unary Operator)和双目运算符(Binary Operator)。上面的@、not 和^为单目运算符,其余的为双目运算符。其中+和-也可以作为单 目运算符来使用。 ? 单目运算符一般放在操作对象的前面,只有^可以放在操作对象的后 面。双目运算符都放在两个操作数之间。 ? 有些运算符是根据给定的操作数的数据类型做相应处理的。例如, 运算符not对于整型的操作数说,做的是按位取反;对于逻辑类型的 操作数来说,它完成的则是逻辑取反。 ? 除了运算符^、is和in外,其余操作符都可以对Variant类型的数据进行 操作。
?
3.4.1 运算符
?
在复杂的表达式中,各种运算符的优先级分别如 下:
第一级(最高):@、not 第二级:*、/、div、mod、and、shl、shr、as 第三级:+、-、or、xor 第四级(最低):=、<>、<、>、<=、>=、in、is
?
尽管各种运算符的优先级比较明确,但是在具体 编程