Массивы представляют собой упорядоченную совокупность конечного числа однотипных и однородных компонентов с общим для всех элементов именем. В массиве можно обеспечить доступ к любому элементу простым указанием порядкового номера. Элементами массива могут быть данные любого типа Турбо Паскаля, в том числе данные структурированного типа.
Массив должен иметь имя, а каждый элемент массива – имя и порядковый номер, называемый индексом элемента в массиве.
Массивы, каждый элемент которых имеет один порядковый номер, называют одномерными или векторами, а несколько порядковых номеров –многомерными.
В Паскале число элементов массива должно задаваться заранее. Если необходимо использовать массивы переменной размерности, то их надо описать максимально возможным в данной задаче числом элементов, либо воспользоваться динамическими массивами данных.
В Паскале различают массивы-типы, определяющие тип данных, входящих в массив, и массивы-переменные, содержащие данные указанного типа. Оба вида массивов имеют имена, но различаются областью применения в программе. Поэтому необходимо быть очень внимательными, используя массивы при написании программ.
Описание массива данных можно выполнить двумя способами: с присвоением и без присвоения имени типу массива.
Первый способ описания массива считают более строгим, т.к. он позволяет использовать имя массива в качестве параметра процедуры и функции. В этом случае сначала необходимо описать тип массива, присвоив ему имя в разделе описания типов, а затем в разделе описания переменных описать его как переменную этого типа, присвоив массиву-переменной собственное имя (идентификатор).
Во втором способе массив описывают непосредственно в разделе описания переменных. При этом массив приобретает безымянный или анонимный тип. Этот способ описания массива является более простым и коротким, чем первый, и используется чаще.
В первом случае форма описания массива имеет вид:
Type
<имя типа массива> = array [<тип индекса>] of <тип элемента>;
Var
<имя массива как переменной>: <имя типа массива>;
Во втором случае форма описания массива имеет вид:
Var
<имя массива как переменной>: array [<тип индекса>] of <тип элемента>;
Здесьarray означает массив (дословный перевод – "строй", "порядок"),<тип индекса> – тип порядкового номера (обозначения) элементов массива, of – "состоящий из элементов типа", <тип элемента> – базовый тип элементов массива – тип данных, хранящихся в массиве.
Между начальным и конечным значениями индекса массива должны быть поставлены две точки. В качестве типа индекса можно использовать любые порядковые типы, кроме longint и интервального. Весьма удобно начальные и конечные значения индексов обозначать с помощью идентификаторов и выражений. Это позволяет изменять размерности всех согласованных массивов, изменяя значения идентификаторов и входящих в выражения переменных. Идентификаторы и переменные должны быть определены до начала обращения к элементам массивов.
Базовый тип элементов массива – любой тип данных Турбо Паскаля.
Например, в программе описание одномерного массива может иметь вид:
а) с использованием разделов типа и переменных:
Type
am = array [1..50] of real;
Var
A1 : am;
б) с использованием только раздела переменных:
Var
A1 :array [1..50] of real;
Массив как структурированный тип данных может иметь своим компонентом другой компонент структурированного типа, т.е. массив. Глубина вложенности структурированных типов данных есть величина произвольная. Количество выражений вида array[интервал]of в описании многомерного массива (имеющего два и более порядковых номеров у каждого элемента) не ограничено, однако суммарная длина внутреннего представления каждого массива не может быть больше 65520 байт.
В тех случаях, когда массивы двумерные или более высокого порядка, описание типа массива можно выполнить также двумя способами:
а) с использованием раздела типов и раздела переменных:
Type
<имя типа массива> = array [<тип 1 индекса>] of array [<тип 2 индекса>] of array [<тип 3 индекса>] … of array [<тип n индекса>] of <базовый тип элементов>;
Var
<имя переменной>: <имя типа массива>;
б) с использованием только раздела переменных:
Var
<имя переменной>: array [<тип 1 индекса>] of array [<тип 2 индекса>] of array [<тип 3 индекса>] . . of array [<тип n индекса>] of <базовый тип элементов>;
Например, в программе многомерные массивы можно описать с использованием: