数组与记录
静态数组:
定义的时候就分配存储单元,确定数组元素的个数和类型的数组。
声明格式:
<类型标识符>=array[<下标类型> of<基类型>];
1)<类型表示符>是用户定义的数组类型的名称。
2)<下标类型>必须是整数、字符、布尔、子界、枚举类型(顺序类型)
3)<基类型>就是元素的类型,可以是任何类型,数组的每个元素类型是一致的。
4)数组元素的格式就是下标的个数
type
xuehao=1..50;
score=array[xuehao] of integer;
acolor=(red,blue,green);
yanse=array[acolor] of integer;
var
s1,s2:score;
c1,c2:yanse;
一起定义,更简洁
var a1,a2:array[1..30] of real;
low():数组最小下标(1)
high():数组的最大下标(green)
length()表示数组元素的个数
二维静态数组
type
<数组类型名>=array[<下标类型1>] of array[<下标类型2>] of <元素类型>;
一般来说,习惯把二维数组定义为如下形式:
type
<数组类型名>=array[<下标类型1>,<下标类型2>] of <元素类型>;
例如,
type
aa=array[1..5,2..8] of integer;
var
a1,a2:aa;
动态数组
一维动态数组的定义:
type
<数组类型名称>=array of<基类型>
或者直接将类型和变量定义在一起
var
<变量名>:array of<基类型>
setLength(a,20):
声明数组a有20个元素,a[0]~a[19]
多维动态数组
语法格式:
type
<数组类型名称>=array of array of<基类型>
或
var
<变量名>:array of array of <基类型>
setLength(a,4,6);
a有24个元素
字符串类型
<字符串类型名>=string;
var
<字符串变量>:<字符串类型名>;
或者
<字符串变量>:string;
允许在定义字符串的时候声明字符串中字符的个数:
<字符串类型名>=string[<长度>];
var
<字符串变量名>:<字符串类型名>;
或者
var
<字符串变量名>:string[<长度>];
例如,
type
xingming=string[10];
var
xml:xingming;
or
xml:string[10];
特别:xml的长度为10,
第一个位置是存放长度的s[0]=#5
ord(s[0])可以得到字符串长度。
123页
记录类型
记录类型的定义格式为:
type
<记录类型名>=record
<字段1>:<类型1>;
<字段2>:<类型2>;
...
end;
例,
type
student=record
xh:string[2];
xm:string[8];
yw:integer;
end;
var
st:array[1..20] of student;
s1,s2:student;
记录类型的访问与with语句
with <变量名> do;
用法:(接上面的定义例子)
with s1 do
begin
xingming:='张三';
yuwen:=90
end
with语句的嵌套(就近原则)
with s2,s1 do
begin
...
end
结果为s1的信息值