Двумерным массивом называется совокупность данных, каждое значение которых, зависит от его положения в строке и в столбце.
Каждый элемент двумерного массива описывается как a[i,j], где: где: а – имя массива i - номер строки j – номер столбца
Пример двумерного массива (матрицы): А[3,3]=
Если в матрице количество строк и столбцов совпадают, то она называется квадратной, в противном случае прямоугольной.
Главная диагональ квадратной матрицы проходит из левого верхнего угла в правый нижний. А[3,3]=
Побочная диагональ квадратной матрицы проходит из правого верхнего угла в левый нижний. А[3,3]=
Описание матрицы в разделе var аналогично описанию одномерного массива, только теперь необходимо указывать диапазон изменения столбцов и строк. Const n=10; m=12; Var a:array [1..n,1..m] of integer;
Для ввода матрицы в память существует много способов, это зависит от направления задачи. Рассмотрим два самых распространенных способа:
Writeln(Введите элементы матрицы по строкам); Writeln(В конце каждой строки нажимайте ENTER); For I:=1 to n do Begin For j:= 1 to m do For j:= 1 to m do Begin BeginReadln(a[i,j]);End;End;
Randomize; For I:=1 to n do Begin Begin For j:=1 to n do Begina[i,j]:=random(10); write(a[i,j], ); End;Writeln;End;
Вычисление суммы элементов главной диагонали квадратной матрицы:
Для решения данной задачи необходимо определить, чем отличаются элементы главной диагонали? А[3,3]=
Program Sumglav; const n=3; var a:array [1..n,1..n] of real; i, j: integer; S: real; Begin ВВОД МАССИВА; S:=0; for i:=1 to n do S:=S+a[i,i]; write(Сумма элементов главной диагонали =,S); readln;readlnend.
Нахождение наибольших элементов каждой строки массива:
Program Stroki; const n=3; m=4 var a:array [1..n,1..m] of real; max:array [1..n] of real; i, j: integer; Begin ВВОД МАССИВА; for i:=1 to n do beginmax[i]:=a[i,1]; for j:=2 to m do if max[i] ); for i:=1 to n do writeln(max[i]);readln;readlnend.
Перестановка строк массива:
Program Stroki2; const n=3; m=4; var a:array [1..n,1..m] of integer; i, j,k,l,c: integer; Begin ВВОД МАССИВА; writeln(Ведите номера меняемых местами строк); readln(k,l); for j:=1 to m do beginc:=a[k,j];a[k,j]:=a[l,j];a[l,j]:=c;end; writeln(Новый массив => ); for i:=1 to n do begin for j:=1 to m do write(a[i,j], ); writeln;end;readln;readlnend.
Задания для самостоятельной работы: Написать программы: 1)Нахождения наибольшего элемента всего массива; 2)Нахождения наибольшего элемента главной диагонали; 3)Нахождения наименьших элементов в столбцах массива.