Основы программирования на C++, PASCAL
Var H: Аггау[1981..1990]. Of Array[1..12] Of Real;
Вот примеры обозначения некоторых элементов этого массива:
Н[1981][1]; Н[1985][10]; Н[1990][12]
Однако чаще употребляется другая, эквивалентная форма обозначения элементов двумерного массива:
Н[1981,1]; Н[1985,10]; Н[1990,12]
Переменная H[1981] обозначает всю первую строку таблицы, т.е. весь массив температур за 1981 г.
Другим вариантом, эквивалентным приведенному выше описанию, является следующий:
Type Month=Array[1..12] Of Real;
Year=Array [1981..1990] Of Month;
Var H: Year;
Наиболее краткий вариант описания данного массива такой:
Var H: Array[1981..1990,1..12] Of Real;
Продолжая по аналогии, можно определить трехмерный массив как одномерный массив, у которого элементами являются двумерные массивы. Вот пример описания трехмерного массива:
Var A: Array[l..10,1..20,1..30] Of Integer;
Это массив, состоящий из 10 • 20 • 30 = 6000 целых чисел и занимающий в памяти 6000 • 2 = 12000 байт. В Паскале нет ограничения сверху на размерность массива. Однако в каждой конкретной реализации Паскаля ограничивается объем памяти, выделяемый под массивы. В Турбо Паскале это ограничение составляет 64 килобайта.
По аналогии с математикой одномерные числовые массивы часто называют векторами, а двумерные — матрицами.
В Паскале не допускается употребление динамических массивов, т.е. таких, размер которых определяется в процессе выполнения. Изменение размеров массива происходит через изменение в тексте программы и повторную компиляцию. Для упрощения таких изменений удобно определять индексные параметры в разделе констант:
Const Imax=10; Jmax=20;
Var Mas: Array[1..Imax,1..Jmax] Of Integer;
Теперь для изменения размеров массива Mas и всех операторов программы, связанных с этими размерами, достаточно отредактировать только одну строку в программе — раздел констант.
Действия над массивом как единым целым. Такие действия допустимы лишь в двух случаях:
• присваивание значений одного массива другому;
• операции отношения «равно», «не равно».
В обоих случаях массивы должны иметь одинаковые типы (тип индексов и тип элементов).
Пример:
Var P,Q: Array[1..5,1..10] Of Real;
При выполнении операции присваивания P:=Q все элементы массива P станут равны соответствующим элементам массива Q.
Как уже отмечалось, в многомерных массивах переменная с индексом может обозначать целый массив