Учебники

Паскаль — Массивы

Язык программирования Pascal предоставляет структуру данных, называемую массивом, в которой можно хранить последовательную коллекцию элементов одного и того же типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных одного типа.

Вместо того, чтобы объявлять отдельные переменные, такие как number1, number2, … и number100, вы объявляете одну переменную массива, такую ​​как числа, и используете числа [1], числа [2] и …, числа [100] для представления отдельные переменные. Определенный элемент в массиве доступен по индексу.

Все массивы состоят из смежных областей памяти. Самый низкий адрес соответствует первому элементу, а самый высокий адрес — последнему.

Обратите внимание, что если вы хотите, чтобы массив в стиле C начинался с индекса 0, вам просто нужно начать индекс с 0, а не с 1.

Массивы в Паскале

Объявление массивов

Чтобы объявить массив в Pascal, программист может либо объявить тип, а затем создать переменные этого массива, либо напрямую объявить переменную массива.

Общая форма объявления типа одномерного массива —

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

Куда,

  • идентификатор массива — указывает имя типа массива.

  • index-type — указывает индекс массива; это может быть любой скалярный тип данных, кроме реального

  • element-type — определяет типы значений, которые будут сохранены

идентификатор массива — указывает имя типа массива.

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;

Типы Array Subscript

В 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.

Ниже приведен пример, который будет использовать все три вышеупомянутых понятия, а именно. декларация, назначение и доступ к массивам —

Live Demo

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

Массивы Паскаля в деталях

Массивы важны для Паскаля и должны требовать больше подробностей. Существует несколько важных понятий, связанных с массивом, которые должны быть понятны программисту на Паскале:

Паскаль поддерживает многомерные массивы. Простейшей формой многомерного массива является двумерный массив.

В массивах этого типа начальная длина равна нулю. Фактическая длина массива должна быть установлена ​​с помощью стандартной функции SetLength .

Эти массивы упакованы битами, т. Е. Каждый символ или значения истинности хранятся в последовательных байтах вместо использования одного блока хранения, обычно слова (4 байта или более).

Вы можете передать подпрограмме указатель на массив, указав имя массива без индекса.