Кількість індексів, які необхідно вказати при зверненні до елемента масиву, визначає n-мірна масиву. При n=1 масив називається одновимірним; при n=2 - двовимірним. Двовимірний масив відповідає поняттю матриці в математиці. Наприклад, можна розглядати вектор, елементами якого є також вектори:
VAR B: ARRAY[1..20] OF ARRAY[1..10] OF INTEGER.
Такий же масив B можна описати наступним чином:
VAR B: ARRAY[1..20,1..10] OF INTEGER;
Або
TYPE
МАТR=ARRAY[1..20,1..10] OF INTEGER;
VAR
B: МАТR;
До елементів масиву B можна звертатися так: B[1,1], B[1,2] ,..., B[20,10] або B[I,J], де I та j відповідають зазначеним вище обмеженням.
Введення-виведення матриць, також як і одновимірних масивів, здійснюється поелементно. Для цього використовуються вкладені цикли. У правильно організованому вкладеному циклі оператори внутрішнього циклу не можуть виходити за межі зовнішнього циклу, хоча внутрішній і зовнішній цикли можуть закінчуватися одним оператором.
При вирішенні різних завдань можливі перегляди матриць по рядках або стовпцях. Якщо проглядається матриця по рядках, то індекс I (номер рядка) змінюється повільніше індексу J (номер стовпчика), тобто цикл за I - зовнішній, цикл по j- внутрішній. І, навпаки, якщо матриця проглядається по стовпцях, то цикл за I - внутрішній, а цикл по j - зовнішній.
Приклад. Дана матриця дійсних чисел M(n x k). Рядок, що містить максимальний елемент матриці, поміняти місцями з рядком, що містить мінімальний елемент.
Програма має вигляд:
PROGRAM MATRIX;
VAR M:ARRAY[1..10, 1..10] OF REAL;
M1, MAX,MIN:REAL;
MAXI,MINI,I,J,N,K: INTEGER;
BEGIN
WRITELN ('ВВЕДІТЬ РОЗМІРНІСТЬ МАТРИЦІ');
READLN (N,K);
WRITELN (' ВВЕДІТЬ МАТРИЦЮ ');
FOR I:=1 TO N DO
FOR J:=1 TO K DO
READ(M[I,J]);
WRITELN (' ВИХІДНА МАТРИЦЯ ');
FOR I:=1 TO N DO
BEGIN
FOR J:=1 TO K DO
WRITE (M[I,J]:7:2);
WRITELN
END;
MAX:=M[1,1];
MIN:=M[1,1];
MAXI:=1;
MINI:=1;
FOR I:=1 TO N DO
FOR J:=1 TO K DO
BEGIN
IF M[I,J]>MAX THEN
BEGIN
MAX:=M[I,J];
MAXI:=I
END;
IF M[I,J]<MIN THEN
BEGIN
MIN:=M[I,J];
MINI:=I
END
END;
FOR J:=1 TO K DO
BEGIN
M1:=M[MAXI,J];
M[MAXI,J]:=M[MINI,J];
M[MINI,J]:=M1;
END;
WRITELN('МАТРИЦЯ ПІСЛЯ ПЕРЕСТАНОВКИ РЯДКІВ');
FOR I:=1 TO N DO
BEGIN
FOR J:=1 TO K DO WRITE (M[I,J]:7:2);
WRITELN
END
END.