Здравствуйте, [b]Андрей Васин[/b]!Пример находится в приложении.
Насколько Вы знаете, можно перемножать только матрицы, у которых количество рядов первой матрицы равно количеству столбцов второй, а перемножение происходит матрицы 6А на А, таким образом А должна являться квадратной матрицей. Соответственно, В должна иметь ту же размерность, что и А, т.е. тоже является квадратной.
В примере производится ввод только размера матриц, а заполнение производится автоматическое (случайными числами), но, если Вы захотите, можете реализовать ручное заполнение матриц.
В приведенной задаче Т (
В[sup]Т[/sup]) является не степенью, а признаком того, что
матрица транспонирована. В примере использовано свойство матриц:
А+В = В+АТ.е. матрица С вычисляется так:
В[sup]Т[/sup]+6А*АСвойства матриц и операции над матрицами можно посмотреть здесь:
Матрица_(математика)Удачи!Приложение:
program Q160447;
const
{ Максимальный размер матрицы }
MX_SIZE = 10;
type
{ Квадратная матрица }
TMatrix = array[1..MX_SIZE, 1..MX_SIZE] of Integer;
var
A, B, C: TMatrix;
n, i, j, t: Byte;
begin
{ Вводим размер матрицы }
repeat
write('n = '); readln(n);
until ((n > 0) and (n <= MX_SIZE));
randomize;
{ Подготовка и вывод матриц }
writeln('A = ');
for j:= 1 to n do
begin
write(j:2, ': ');
for i:= 1 to n do
begin
A[i, j]:= random(19) - 9;
B[i, j]:= random(19) - 9;
write(A[i, j]:3);
end;
writeln;
end;
{ Вывод матрицы В }
writeln;
writeln('B = ');
for j:= 1 to n do
begin
write(j:2, ': ');
for i:= 1 to n do
write(B[i, j]:3);
writeln;
end;
{ Даем возможность просмотреть матрицы }
{ Ждем, когда пользователь нажмет [Enter] }
readln;
{ Вычисление матрицы С }
writeln('C = ');
for j:= 1 to n do
begin
write(j:2, ': ');
for i:= 1 to n do
begin
{ Сразу прибавляем транспонированную матрицу В }
C[i, j]:= B[j, i];
for t:= 1 to n do
{ К транспонированной матрице В }
{ добавляем 6*A*A }
C[i, j]:= C[i, j] + 6*A[i, t]*A[t, j];
{ Выводим результат }
write(C[i, j]:5);
end;
writeln;
end;
{ Ждем, когда пользователь нажмет [Enter] }
Readln;
end.