📜  Pascal-数组

📅  最后修改于: 2020-11-03 16:17:07             🧑  作者: Mango


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

您无需声明单个变量(例如,number1,number2,…和number100),而是声明一个数组变量(例如,numbers),并使用numbers [1],numbers [2]和…,numbers [100]表示各个变量。数组中的特定元素由索引访问。

所有阵列均包含连续的内存位置。最低地址对应于第一个元素,最高地址对应于最后一个元素。

请注意,如果要从索引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;

现在,速度是向量类型的可变数组,足以容纳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 Concept & Description
1 Multi-dimensional arrays

Pascal supports multidimensional arrays. The simplest form of the multidimensional array is the two-dimensional array.

2 Dynamic array

In this type of arrays, the initial length is zero. The actual length of the array must be set with the standard SetLength function.

3 Packed array

These arrays are bit-packed, i.e., each character or truth values are stored in consecutive bytes instead of using one storage unit, usually a word (4 bytes or more).

4 Passing arrays to subprograms

You can pass to a subprogram a pointer to an array by specifying the array’s name without an index.