Пояснения к работе

Матрицей [A] называется упорядоченная система из n*m величин, расположенных в прямоугольной таблице из m строк и n столбцов. Величины a[i][j] (i = 0, 2,...,m; j=0, 2,...,n) называются элементами матрицы. Индекс i обозначает номер строки, j – номер столбца. Если m = n, то матрица называется квадратной порядка n. Следом матрицы [A] размером n*n называется сумма ее диагональных элементов. Любая матрица представляется в программе в виде двумерного массива величин. В языке С++ есть свои особенности в работе с массивами.

Напомним, что массив можно определить как совокупность величин одного типа, обозначаемых общим именем и размещенных в смежных ячейках памяти. Каждый массив необходимо объявить и по мере необходимости инициализировать.

Пример объявления для двумерного массива: int dvum [2][3].

Эта запись означает, что объявляется массив целого типа, содержащий две строки и три столбца.

Инициализация такого массива может выглядеть так:

int dvum [2][3] = {

{1, 2, 3},

{4, 5, 6}

}.

Допустима более простая форма записи:

int dvum [2][3]={1, 2, 3, 4, 5, 6}.

Подчеркнем следующие особенности языка С++. Размер массива, а также индексы элементов записываются в квадратные скобки. В случае многомерного массива каждый индекс заключается в свои скобки. Нумерация индексов начинается с нуля. Например, atr [3][4] означает элемент матрицы, размещенный в четвертой строке и в пятом столбце. В памяти элементы матрицы располагаются по строкам.

Для вывода матриц в языке С++ можно использовать оператор cout, включив его в соответствующий цикл. Каждое очередное обращение к cout не приводит к переводу строки, и организация перевода строки возлагается на пользователя. Ниже приводится фрагмент программы, обеспечивающий вывод матрицы [A] в естественном виде.

for (i=0; i<=n; i++)

{

cout<<"n";

for (j=0; j<=m; j++)

cout<< A[i][j]);

}

Действия с матрицами

Результатом сложения (вычитания) двух матриц [A] и [B] одинакового размера является матрица [C] такого же размера. Элементы матрицы C равны сумме (разности) соответствующих элементов матриц [A] и [B], т. е.

Cijijij – для сложения,

Cijij–Вij – для вычитания,

i=0,1,2,...,m–1, j=0,1,2,...,n–1 в языке Си.

Умножение матриц. При умножении матриц [A] и [B] необходимо, чтобы число столбцов матрицы [A] было равно числу строк матрицы [B]. Если рассмотреть умножение квадратных матриц одинакового порядка n, то результатом умножения будет квадратная матрица [C] того же порядка. Элементы квадратной матрицы

[C] получаются по следующему правилу: , т. е. чтобы получить произвольный элемент Cij, стоящий в i-й строке и j-м столбце матрицы [C], нужно элементы i-й строки матрицы [A] умножить на соответствующие элементы j-го столбца матрицы [B] и полученные произведения сложить.

Схема алгоритма программы умножения матриц показана на рис. 4.1.

Рис. 4.1. Схема алгоритма
умножения матриц