Я так понял, что есть матрица вида
Код:
1 2 3 4
2 5 6 7
3 6 8 9
4 7 9 0
и хранится она в виде
Если так, то переведи в квадратную матрицу. Зная размерность, можно писать все элементы в соответствующие места
Код:
k:=1;
for i:=1 to N do
for j:=i to N do
begin
a[i,j]:=b[k];
inc(k);
end;
Потом относительно главной диагонали копируешь:
Код:
for i:=1 to N do
for j:=i+1 to N do
a[j,i]:=a[i,j];
Можно эти два шага сразу:
Код:
k:=1;
for i:=1 to N do
for j:=i to N do
begin
a[i,j]:=b[k];
a[j,i]:=b[k];
inc(k);
end;
Как-то так. Получишь нужную матрицу.
А дальше я не понимаю, что значит "произведение вида АТА". Если это А*Т*А то не знаю чего за Т.
Так что дальше спрашиваешь Вику или Гугл "умножение матриц", после чего выполняешь указанные там инструкции.