的类型定义。
下面的类型定义了一个整数型的数组变量:
var
Arr : array [1..10] of Double;
它表示Arr指向一个含有10个实数型元素的数据序列,代表每一个元素序列的是1~10之间的数字,称为下标。数组的每一项由数组名称加上[]中的下标来表示。Arr包含10个变量,Arr[1]表示第一个变量。您也可以把数组定义成类型:
type
TArr = array[1..10] of integer;
则变量声明改为:
var
Arr :TArr;
可以通过给数组赋值等方法来使用数组。下面的语句将0赋给Check数组中的所有元素:
for I := 1 to 10 do
Arr[I] := 0;
数组也可以是多维的,下面的类型定义了一个10行10列的数组:
type
TArr2= array[1..10,1..10] of integer;
var
MyArr:TArr2;
(2)集合型
集合是相同类型对象的聚集。构成集合的每一个对象称为集合的元素。元素的类型称为集合的基类型。
集合型的定义如下:
type 集合型=set of 基类型;
可以用5种关系运算符=、< >、<=、>=和in来测试集合成员关系。其中运算符in可以测试某个变量是否是集合的成员。
如果有这样一个集合定义:
Chars := ['a','b','c','d','e'];
则表达式('a' in Chars)结果为True,而表达式('x' in Chars)的结果则为False。
集合类型可以进行以下数学运算(设A,B是两个同类型的集合变量):
1)赋值A:=[ ];
2)并A+B,结果是A和B中的所有元素组成的集合;
3)交A*B,结果是A和B中公共元素组成的集合;
4)差A-B,结果是在A中但不在B中的
元素组成的集合。
(3)记录型
数组型、集合型都是由类型相同的元素组成的有序结构,在实际问题中还经常遇到由不同类型的元素组成的结构。记录型是由不同类型的多个固定元素组成的数据。
记录型定义如下:
type
标识符=record
域标识符1:类型1;
M
域标识符n:类型n;
end;{record}
下面的程序段定义了一个记录型数据:
type
TStudent=record
Name : string[20];
ID:string;
Score: Double;
Address: string[20];
end;
记录包含可以保存数据的域,每一个域有一个数据类型。上面定义的TStudent类型就含有4个域。可以用以下方式声明记录型的变量:
var
New Student:TStudent;
用如下的方法可以访问记录的单域:
New Student.Score := 98;
编写如下程序段可以给整个记录赋值:
with New Student do
begin
Name :='';
ID := '';
Score := 0.0
Address := 'Beijing';
end;
(4)文件型
上述的数据类型均是在程序运行期间存在且存储于内存中的数据。
计算机在处理
问题时,有些数据需要长期保留,这就需要把这些数据存储在外存储器中,如磁盘、磁带等。描述与外部存储设备联系的数据称为文件。
文件是一个具有符号名字的、由相同类型数据组成的数据序列。Pascal语言中的文件型是重要的数据类型之一。
文件型定义如下:
type 文件标识符=file of 数据类型;
其中数据类型可以是除文件型或以文件型为成分的构造类型以外的其他任何类型。
可以把类型定义和文件变量声明合在一起,如:
var
afile :FILE OF integer;
3. 指针类型
访问一个内存变量通常有两种方法:一种是通过名字访问,另一种是通过地址访问。指针是通过地址访问变量的一种数据类型。
由于动态数据结构的变量必须在程序执行过程中动态生成,不能预先声明,所以无法预先给这些变量起好名字,也无法通过名字进行访问,因此只能用指针先得到它的地址,然后间接访问它们。
指针类型的定义如下:
type 指针类型标识符=类型标识符;
可以对指针变量赋值。对指针变量赋值实际上是将新的指针变量所指向的动态存储单元的首地址赋给该指针,使该指针指向新的动态存储单元。给指针赋值必须类型相同或赋nil(空值),给指针赋值后,指针原来所指的动态存储单元中还存有数据,只是它已无法被访问。
对指针可以应用比较运算符中的“=”和“<>”进行比较。