数组( Arrays)
Pascal编程语言提供了一种称为数组的数据结构,它可以存储相同类型元素的固定大小顺序集合。 数组用于存储数据集合,但将数组视为相同类型的变量集合通常更有用。
您可以声明一个数组变量,例如数字,并使用数字[1],数字[2]和...,数字[100]来代表单个变量,例如number1,number2,...和number100,而不是声明单个变量。个别变数。 索引访问数组中的特定元素。
所有阵列都包含连续的内存位置。 最低地址对应于第一个元素,最高地址对应于最后一个元素。
请注意,如果你想要一个从索引0开始的C样式数组,你只需要从0开始索引,而不是1。
声明数组 (Declaring Arrays)
要在Pascal中声明一个数组,程序员可以声明该类型,然后创建该数组的变量或直接声明数组变量。
一维数组类型声明的一般形式是 -
type
array-identifier = array[index-type] of element-type;
Where,
array-identifier - 表示数组类型的名称。
index-type - 指定数组的下标; 它可以是除真实之外的任何标量数据类型
element-type - 指定要存储的值的类型
例如,
type
vector = array [ 1..25] of real;
var
velocity: vector;
现在,velocity是矢量类型的可变数组,足以容纳25个实数。
要从0索引启动数组,声明将是 -
type
vector = array [ 0..24] of real;
var
velocity: vector;
数组下标的类型
在Pascal中,数组下标可以是任何标量类型,如整数,布尔,枚举或子范围,除了真实。 数组下标也可能有负值。
例如,
type
temperature = array [-10 .. 50] of real;
var
day_temp, night_temp: temperature;
让我们再举一个下标是字符类型的例子 -
type
ch_array = array[char] of 1..26;
var
alphabet: ch_array;
下标可以是枚举类型 -
type
color = ( red, black, blue, silver, beige);
car_color = array of [color] of boolean;
var
car_body: car_color;
初始化数组 (Initializing Arrays)
在Pascal中,通过赋值来初始化数组,方法是指定特定的下标或使用for-do循环。
例如 -
type
ch_array = array[char] of 1..26;
var
alphabet: ch_array;
c: char;
begin
...
for c:= 'A' to 'Z' do
alphabet[c] := ord[m];
(* the ord() function returns the ordinal values *)
访问数组元素 (Accessing Array Elements)
通过索引数组名称来访问元素。 这是通过将元素的索引放在数组名称后面的方括号中来完成的。 例如 -
a: integer;
a: = alphabet['A'];
上面的语句将从名为alphabet的数组中取出第一个元素,并将值赋给变量a。
以下是一个例子,它将使用所有上述三个概念即。 声明,分配和访问数组 -
program exArrays;
var
n: array [1..10] of integer; (* n is an array of 10 integers *)
i, j: integer;
begin
(* initialize elements of array n to 0 *)
for i := 1 to 10 do
n[ i ] := i + 100; (* set element at location i to i + 100 *)
(* output each array element's value *)
for j:= 1 to 10 do
writeln('Element[', j, '] = ', n[j] );
end.
编译并执行上述代码时,会产生以下结果 -
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
Element[10] = 110
Pascal Arrays详细信息
数组对Pascal很重要,需要更多细节。 以下几个与数组相关的重要概念应该对Pascal程序员清楚 -
Sr.No | 概念与描述 |
---|---|
1 | 多维数组 Pascal支持多维数组。 多维数组的最简单形式是二维数组。 |
2 | 动态数组 在这种类型的数组中,初始长度为零。 必须使用标准SetLength函数设置数组的实际长度。 |
3 | Packed array 这些数组是比特打包的,即每个字符或真值都存储在连续的字节中,而不是使用一个存储单元,通常是一个字(4个字节或更多)。 |
4 | 将数组传递给子程序 通过指定没有索引的数组名称,可以将子程序传递给子程序。 |