Сложение и умножение матриц - Pascal ABC (18910)
Формулировка задачи:
Даны две целочисленные квадратные матрицы A и B размерности N x N . Получить матрицу C=AxB+BxA
Решение задачи: «Сложение и умножение матриц»
textual
Листинг программы
uses crt; const n=4; var a,b,c:array [-n..n,-n..n] of integer; i,j:integer; begin writeln('ГЊГ*òðèöГ* A:'); for i:=1 to n do begin writeln; for j:=1 to n do begin a[i,j]:=random(20); write('| ',a[i,j]); end; end; writeln; writeln; writeln('ГЊГ*òðèöГ* B:'); for i:=1 to n do begin; writeln; for j:=1 to n do begin b[i,j]:=random(20); write('| ',b[i,j]); end; end; writeln; writeln; writeln('ГЌГ*æìè Enter'); readln; writeln('ГЊГ*òðèöГ* A*B'); for i:=-n to -1 do begin writeln; for j:=-n to -1 do begin a[i,j]:=a[-i,-j]*b[-i,-j]; write('| ',a[i,j]); end; end; writeln; writeln; writeln('ГЊГ*òðèöГ* B*A'); for i:=-n to -1 do begin writeln; for j:=-n to -1 do begin b[i,j]:=b[-i,-j]*a[-i,-j]; write('| ',b[i,j]); end; end; for i:=-n to -1 do begin for j:=-n to -1 do begin c[i,j]:=a[i,j]+b[i,j]; end; end; writeln; writeln; writeln('ГЊГ*Г±Г±ГЁГў A+B'); for i:=-n to -1 do begin writeln; for j:=-n to -1 do begin write('| ',c[i,j]); end; end; readln; end.
Объяснение кода листинга программы
- Объявлены массивы a, b, c размером n x n для хранения результатов.
- В цикле выводятся элементы матрицы a.
- В цикле выводятся элементы матрицы b.
- Введенный пользователем символ Enter служит разделителем между матрицами a и b.
- Цикл выполняет умножение элементов матрицы a на элементы матрицы b и сохраняет результаты в матрицу c.
- Цикл выполняет умножение элементов матрицы b на элементы матрицы a и сохраняет результаты в матрицу c.
- Цикл выполняет сложение элементов матрицы a и матрицы b и сохраняет результаты в матрицу c.
- Выводятся элементы матрицы c.
- Введенный пользователем символ Enter служит разделителем между матрицами a+b и c.
- Программа завершается чтением символа от пользователя.