Задание:Найти элементы двумерного массива А={

}, где i = 1,…,5; j = 1,…,5 по правилу 

 = 

 . Упорядочить массив А по возрастанию элементов дробной части первой строки. Вывести на печать исходный и отсортированный массивы.
Моя программа:
Program 2;
Type    
	Matrix=array [1..5,1..5] of real;
Var     
	a: Matrix;
	R: Real;
	k,i,j: integer;
Begin
for i:=1 to 5 do
for j:=1 to 5 do
a[i,j]:=0.5*Exp(Cos(i*i*j)); {Вычисляем элементы массива}
{Печатаем массив в виде таблицы}
Writeln('Матрица A');
for i:=1 to 5 do begin
for j:=1 to 5 do
write(a[i,j]:6:3,'  ');  {Вывод на экран массива А}
Writeln; 
end;
Writeln;   {Пропуск пустой строки}
for i:=2 to 5 do
for j:= 4 downto i do
if int(a[j+1,4])<int(a[j,4]) then
for k:= 1 to 5 do {Перестановка строк}
  begin    R:=a[j-1,k];
           a[j-1,k]:=A[j,k];
           a[j,k]:=R;
  end;
Writeln('Отсортированная матрица А имеет вид');
for i:=1 to 5 do
for j:=1 to 5 do begin
write(a[i,j]:6:3,'  '); {Вывод на экран отсортированного массива А}
writeln;
        end;
End.
То что получилось:
Почему массив не в виде таблицы и не упорядочился?