Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.
Рассмотрим матрицу размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:
Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, a21 – это элемент, стоящий во второй строке и в первом столбце.
Описание двумерного массива. Существует несколько способов объявления двумерного массива.
Мы уже умеем описывать одномерные массивы, элементы которых могут иметь любой тип, а, следовательно, и сами элементы могут быть массивами. Рассмотрим следующее описание типов и переменных:
Type
Vector= array [1..5] of <тип_элементов>;
|
|
Matrix= array [1..10] of vector;
Var m: matrix;
Мы объявили матрицу m, состоящую из 10 строк, в каждой из которых 5 столбцов. При этом к каждой i-й строке можно обращаться m[i], а каждому j-му элементу внутри i-й строки – m[i,j].
Определение типов для двумерных массивов можно задавать и в одной строке:
Type
Matrix= array [1..5] of array [1..10] of <тип элементов>;
или еще проще:
type
matrix= array [1..5, 1..10] of <тип элементов>;
Обращение к элементам двумерного массива имеет вид: M[i, j]. Это означает, что мы хотим получить элемент, расположенный в i-й строке и
j-м столбце. Тут главное не перепутать строки со столбцами, а то мы можем снова получить обращение к несуществующему элементу. Например, обращение к элементу M[10, 5] имеет правильную форму записи, но может вызвать ошибку в работе программы.