Пока только первая.


const n=5;
type mas=array[1..(n+n*n)div 2] of byte;
matr=array[1..n,1..n] of byte;
var mas_inp:mas; {Описываем массив исходных данных}
mas_out:matr; {Описываем результирующую матрицу}
i,j,k:byte;
begin
randomize; {Инициализируем датчик случайных чисел}
k:=1;
for i:=1 to n do {Цикл нужен для формирования исходной матрицы случайным образом и распечатки ее в "красивом" виде}
begin {Можно массив вводить с клавиатуры, тогда цикл будет проще, for i:=1 to (n+n*n) div 2 do read(mas_inp[i]);}
for j:=1 to n-i+1 do
begin
mas_inp[k]:=random(100);
write(mas_inp[k]:3);
inc(k)
end;
writeln;
write(' ':3*i)
end;
writeln;
k:=1;
for i:=1 to n do
for j:=i to n do
begin
mas_out[i,j]:=mas_inp[k];
mas_out[j,i]:=mas_inp[k];
inc(k)
end;
for i:=1 to n do
begin
for j:=1 to n do
write(mas_out[i,j]:3);
writeln
end;
readln
end.