Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере - Turbo Pascal
Формулировка задачи:
транспонирование, умножение матриц, сложение матриц;
B^3-A^T
Реализовать в одной программере.
Помогите решить
Решение задачи: «Транспонирование, умножение матриц, сложение матриц Реализовать в одной программере»
textual
Листинг программы
uses
SysUtils;
var
a: array [0..100, 0..100] of Integer;
b: array [0..100, 0..100] of Integer;
c: array [0..100, 0..100] of Integer;
d: array [0..100, 0..100] of Integer;
AT: array [0..100, 0..100] of Integer;
i,j,k,N,s: Integer;
begin
Writeln('Enter matrix size');
readln(N);
//Ввод матрицы А
Writeln('Enter Matrix A');
for i := 1 to N do
begin
for j := 1 to N do
begin
Read(a[i,j]);
end;
Readln;
end;
//Ввод матрицы В
Writeln('Enter Matrix B');
for i := 1 to N do
begin
for j := 1 to N do
begin
Read(b[i,j]);
end;
Readln;
end;
Writeln;
Writeln('Matrix A');
//Вывод матрицы А
for i := 1 to N do
begin
for j := 1 to N do
begin
Write(a[i,j],' ');
end;
Writeln;
end;
Writeln;
//Вывод матрицы B
Writeln('Matrix B');
for i := 1 to N do
begin
for j := 1 to N do
begin
Write(b[i,j],' ');
end;
Writeln;
end;
s:=0;
//****Произведение матриц*********
//****Квадрат матрицы*************
for i := 1 to N do
begin
for j := 1 to N do
begin
for k := 1 to N do
begin
s:=s+b[i,k]*b[k,j];
end;
d[i,j]:=s;
s:=0;
end;
s:=0;
end;
//****Произведение матриц*********
//****Куб матрицы*************
for i := 1 to N do
begin
for j := 1 to N do
begin
for k := 1 to N do
begin
s:=s+b[i,k]*d[k,j];
end;
c[i,j]:=s;
s:=0;
end;
s:=0;
end;
Writeln;
//Вывод матрицы C
Writeln('Matrix C');
for i := 1 to N do
begin
for j := 1 to N do
begin
Write(c[i,j],' ');
end;
Writeln;
end;
//Транспонирование матрицы А
for i := 1 to N do
begin
for j := 1 to N do
AT[i,j]:=a[j,i];
end;
//Вывод матрицы АТ
Writeln('Matrix AT');
for i := 1 to N do
begin
for j := 1 to N do
begin
Write(AT[i,j],' ');
end;
Writeln;
end;
//***Разность матриц***
for i := 1 to N do
begin
for j := 1 to N do
d[i,j]:=c[i,j]-AT[i,j];
end;
//Вывод результатов
Writeln('Results');
for i := 1 to N do
begin
for j := 1 to N do
begin
Write(d[i,j],' ');
end;
Writeln;
end;
Readln;
end.
Объяснение кода листинга программы
- Создание переменных для матрицы А, В и С, а также для матрицы AT и массива d.
- Ввод матрицы А и В с помощью функции Read.
- Вывод матрицы А и B с помощью функции Write.
- Вычисление произведения матриц с использованием формулы для произведения матриц.
- Вычисление транспонированной матрицы А с помощью циклов.
- Вывод матрицы AT.
- Вычисление разности матриц с использованием формулы для разности матриц.
- Вывод результатов вычислений.