Массивы. Одномерные и многомерные массивы.

Массив — это пронумерованная последовательность величин одинакового типа, обозначаемая одним именем. Элементы массива располагаются в последовательных ячейках памяти, обозначаются именем массива и индексом. Каждое из значений, составляющих массив, называется его компонентой (или элементом массива).
Одним из основных направлений использования компьютеров является накопление и обработка данных - различных таблиц, справочников, словарей и другой информации. Для представления такой информации в программе удобно использовать массивы. Как правило, обработка таких данных осуществляется по одному и тому же закону, для чего удобно использовать циклические алгоритмы. 
Каждый отдельный компонент массива называется элементом. Количество элементов называется размером массива. Тип элементов определяет тип массива. Размер и тип массива указываются при его описании, причем размер может быть указан либо конкретным значением, либо ранее определенной константой. Номер элемента называется индексом. Индексы могут быть целыми положительными константами или целыми переменными. Чтобы обратиться к некоторому элементу массива, нужно рядом с идентификатором массива в скобках указать индекс элемента.
Но часто данные могут быть организованы в виде таблицы (матрицы), где расположение каждой переменной определяется номером строки и номером столбца. Например, место в зрительном зале задается указанием номера ряда и номером места в этом ряду. Такие данные удобно описать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс - это номер строки, а второй - номер столбца, где расположен элемент массива.
Размер двумерного массива задается парой чисел: M*N, где M - число строк, а N - число столбцов в таблице.
Пусть задан двумерный массив Matr, имеющий размер 10*20. Этот массив на языке Паскаль может быть описан следующим образом:
Var
Matr : array [1..10,1..20] of integer;
Matr[5,7] - элемент, расположенный в 5-ой строке и в 7-ом столбце.

Любая константа, переменная, значение функции или выражения в Турбо Паскале характеризуется своим типом. Тип любого из этих объектов определяет множество допустимых значений, которые может иметь объект, а также множество допустимых операций, которые применимы к объекту. Кроме того, тип определяет и формат внутреннего представления значения объекта.
Имя, которое программист присваивает своему определяемому типу, - произвольный идентификатор. Объявление типа должно быть сделано в разделе объявлений, и ему должно предшествовать кодовое слово Type.

Отличительной особенностью массивов является то обстоятельство, что все их компоненты суть данные одного типа (возможно, структурированного); эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

Type
Digit = array [0..9] of integer;
Matrix = array [1..100, 0..9] of real;
Var
m : Matrix;
d : Digit;
i : integer;

Описание типа массива задается следующим образом:

<имя типа> = array [<сп. инд. типов>] of <тип>;

где:

<имя типа> - правильный идентификатор,
<сп. инд. типов> - список из одного или нескольких индексных типов, разделенных запятыми,
<тип> - любой тип Турбо Паскаля.
Примечание. Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов через две точки (..). Так как <тип>, идущий за кодовым словом of, - любой тип Турбо Паскаля, он может быть, в частности, другим массивом.
Рассмотрим примеры.
Пример 1. Массив можно описать как одномерный, элементами которого в свою очередь являются одномерные массивы.

Const
n=2; m=3;
Type
MyArray1 = array [1..m] of integer;
MyArray2 = array [1..n] of MyArray1;
Var
V : MyArray1;
A : MyArray2;

В данном случае переменная V объявлена как одномерный массив из трех элементов целого типа, а переменная А описана как двумерный массив из двух строк, в каждую из которых включено по три элемента.
Еще более краткое описание массива А можно получить, указывая имя массива и диапазоны изменения индексов для каждой размерности массива (чем мы уже пользовались).

Сonst
n=2; m=3;
Type
MyArray2 = array [1..n, 1..m] of integer;
Var
A : MyArray2;