Pascal - 数组

Pascal编程语言提供了一种称为数组的数据结构,它可以存储相同类型元素的固定大小的顺序集合。 数组用于存储数据的集合,但将数组视为相同类型的变量的集合通常更有用。

您可以声明一个数组变量(例如numbers)并使用numbers[1]、numbers[2]和...、numbers[100,而不是声明单个变量(例如number1、number2、...和number100) ] 代表各个变量。 数组中的特定元素通过索引来访问。

所有数组都由连续的内存位置组成。 最低地址对应于第一个元素,最高地址对应于最后一个元素。

请注意,如果您想要一个从索引 0 开始的 C 风格数组,则只需从 0 开始索引,而不是从 1 开始。

Pascal 数组

声明数组

要在 Pascal 中声明数组,程序员可以声明类型,然后创建该数组的变量,也可以直接声明数组变量。

一维数组类型声明的一般形式为 −

type
   array-identifier = array[index-type] of element-type;

其中,

  • 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;

初始化数组

在 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 *)

访问数组元素

通过索引数组名称来访问元素。 这是通过将元素的索引放在数组名称后面的方括号内来完成的。 例如 −

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 数组详细信息

数组对于 Pascal 来说很重要,应该需要更多的细节。 Pascal 程序员应该清楚以下几个与数组相关的重要概念 −

Sr.No 概念与描述
1 多维数组

Pascal 支持多维数组。 多维数组最简单的形式是二维数组。

2 动态数组

在这种类型的数组中,初始长度为零。 数组的实际长度必须使用标准的SetLength函数设置。

3 压缩数组

这些数组是位打包的,即每个字符或真值都存储在连续的字节中,而不是使用一个存储单元,通常是一个字(4 个字节或更多)。

4 将数组传递给子程序

您可以通过指定不带索引的数组名称来将指向数组的指针传递给子程序。