Вычислить и вывести значения следующих матриц: Z=(A^T)+B, Y=(B^T)+A - Turbo Pascal
Формулировка задачи:
Пожалуйста помогите составить программу. Используя подпрограммы ввода и вывода массива, вычислить и вывести значения следующих матриц: Z=(A^T)+B, Y=(B^T)+A, где A, B- исходные матрицы. Все матрицы квадратные и одинаковой размерности
Решение задачи: «Вычислить и вывести значения следующих матриц: Z=(A^T)+B, Y=(B^T)+A»
textual
Листинг программы
uses crt; const n=5; type mtr=array[1..n,1..n] of integer; procedure vvod(var a:mtr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do a[i,j]:=random(50); end; procedure print(a:mtr;s:string); var i,j:byte; begin writeln(s); for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; procedure trans(a:mtr;var at:mtr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do at[i,j]:=a[j,i]; end; procedure summa(a,b:mtr;var c:mtr); var i,j:byte; begin for i:=1 to n do for j:=1 to n do c[i,j]:=a[i,j]+b[i,j]; end; var a,b,at,bt,z,y:mtr; begin clrscr; randomize; vvod(a); vvod(b); print(a,'Матрица А'); print(b,'Матрица B'); trans(a,at); summa(at,b,z); print(z,'Матрица Z=A^t+B'); trans(b,bt); summa(bt,a,y); print(y,'Матрица Y=B^t+A'); readln end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он содержит следующие процедуры и переменные:
vvod(var a:mtr);- процедура, которая заполняет матрицу случайными значениями.print(a:mtr;s:string);- процедура, которая выводит значения матрицы в строковом формате.trans(a:mtr;var at:mtr);- процедура, которая выполняет транспонирование матрицы.summa(a,b:mtr;var c:mtr);- процедура, которая вычисляет сумму двух матриц.var a,b,at,bt,z,y:mtr;- переменные для хранения матриц.clrscr();- процедура, которая очищает экран.randomize;- процедура, которая инициализирует генератор случайных чисел.vvod(a);- вызов процедуры, который заполняет матрицуaслучайными значениями.vvod(b);- вызов процедуры, который заполняет матрицуbслучайными значениями.print(a,'Матрица А');- вызов процедуры, который выводит название матрицы и ее значения.print(b,'Матрица B');- вызов процедуры, который выводит название матрицы и ее значения.trans(a,at);- вызов процедуры, который выполняет транспонирование матрицыaи сохраняет результат в матрицеat.summa(at,b,z);- вызов процедуры, который вычисляет сумму матрицatиbи сохраняет результат в матрицеz.print(z,'Матрица Z=A^t+B');- вызов процедуры, который выводит название матрицы и ее значения.trans(b,bt);- вызов процедуры, который выполняет транспонирование матрицыbи сохраняет результат в матрицеbt.summa(bt,a,y);- вызов процедуры, который вычисляет сумму матрицbtиaи сохраняет результат в матрицеy.print(y,'Матрица Y=B^t+A');- вызов процедуры, который выводит название матрицы и ее значения.readln();- процедура, которая читает ввод пользователя.end.- завершение программы.