Delphi程序
设计基础
2.6 数据类型
复习
第一节 一个简单的Delphi 语言程序 通过一个控制台应用程序的实作和分析,了解
程序中所包含的Delphi 语言元素。 第二节 注释和编译器命令字 熟练掌握注释和编译器命令字的含义、语法格式。 第三节 Delphi 语言的基本元素 掌握保留字、指示字、标识符和直接量的含义和语法规则,能够正确 加以区分;能够在程序中定义合法的标识符。 第四节 声明语句 掌握Delphi 语言声明语句的含义和不同声明语句所使用的保留字。 第五节 常量和变量 了解常量和变量的含义和区别,掌握常量和变量的使用;必须把握变 量的4 个基本要素。
数据类型 要求掌握
Delphi 语言中的17 种数据类型的 分类和特点,尤其是基本数据类型和有序 数据类型的特点。要求熟练掌握类型的声 明及变量的定义和使用;文件、指针、过 程和变体也是本章
学习的难点,要求掌握 文本文件和类型文件的操作,了解无类型 文件的特点;掌握指针类型的含义和使用, 了解通用指针、过程和变体数据类型
数据类型
?
?
数据的特征有其所属的数据类型来划分, 数据类型不仅可以确定某一类数据的表示 形式和取值范围,而且也确定了对该类数 据可以进行的有效操作。 Delphi是一种强类型的语言。
Delphi中的数据类型划分
根据不同的标准可以对数据类型作如下划分 ? 简单类型、结构类型和其他类型。 ? 有序数据类型 ? 标准数据类型和高级数据类型 ? 基本数据类型和通配数据类型
简单类型
有序类型
枚举类型 整型 子界类型 字符型
布尔型 实型
字符串型 Delphi语言 数据类型 记录类型 结构类型 类类型 类引用类型 接口类型 指针类型 过程类型 变体类型 文件类型
集合类型 数组类型
简单数据类型->有序数据类型->整 型
一般(generic)整数类型是Integer 和Cardinal,只 要可能就尽量使用它们,因为它们对依赖的CPU 和操作
系统作了优化。 通常,对整数类型进行(算术)运算返回一个 Integer 类型(当前相当于32 位的Longint)。只有 当对一个Int64 类型的整数运算时才返回Int64 类 型。 当把整数类型的最后一个值增大或把第一个值减 少时,结果将回到整数类型的开头或尾部。
越界错误代码
program Project1; {$APPTYPE CONSOLE} uses SysUtils;
var n:ShortInt; begin n:=High(n); n:=n+1; Writeln('High(ShortInt)+1=',n); n:=Low(n); n:=n-1; Writeln('Low(ShortInt)-1=',n); readln; end.
原因
有符号整型数在计算机中都是以二进制补码 形式显示。
简单数据类型->有序数据类型->字符型
名称
AnsiChar WideChar
存储字节数
1(8位) 2(16位)
取值范围
扩展ASCII字符 集字符编码值 Unicode字符集 字符编码值 扩
展ASCII字符 集字符编码值
Char(通配)
1(8位)
Unicode
?
UNICODE是目前用来解决ASCII码256个字符限制
问题的 一种比较流行的解决
方案。ASCII 字符集只有256个字符, 用 0-255 之间的数字来表示。包括大小写字母、数字以及 少数特殊字符;如标点符号、货币符号等。对于大多数拉 丁语言来说,这些字符已经够用。但是,许多亚洲和东方 语言所用的字符远远不止256个字符。有些超过千个。人 们为了突破 ASCII 码字符数的限制,试图用一种简单的方 法来针对超过256个字符的语言编写
计算机程序。于是 UNICODE 应运而生。UNICODE 通过用双字节来表示一 个字符,从而在更大范围内将数字代码映射到多种语言的 字符集。
使用有序类型标准例程
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var c:char; begin c:=high(char); Inc(c,70); Writeln(c); Writeln(Pred(c)); Writeln(Succ(c)); Readln; end. end.
简单数据类型->有序数据类型->布尔型
名称
Boolean ByteBool WordBool
存储字节数
1(8位) 1(8位) 2(16位)
取值范围
False
LongBool
4(32位)
True
4种布尔类型在有序特性上的区别
Boolean
False