Мда, негусто.
В общем так.
1. Тебе нужна функция, по переданным i, j рассчитывающая значение в ячейке.
2. Первый цикл, находжение макс. элемента диагонали. Сохраняем так же индекс.
3. По найденному выше индексу строим массив (одномерный) для нужного столбца.
4. Сортируем полученный массив - да хоть пузырек - он самый простой в реализации.
5. Делаем замену.
6. Выводим результат.
Как-то так (кое-что лень писать, так как и так понятно, что делать):
Код:
function GetValue(i, j : Integer) : Double;
begin
// Здесь твоя формула.
end;
var
I, J, Idx : Integer;
vMax : Double;
A : Array Of Double;
begin
// Max элемент
vMax := GetValue(1,1);
Idx := 1;
For I := 2 To N Do // N - размер матрицы
If vMax < GetValue(I,I) Then
Begin
vMax := GetValue(I,I);
Idx := I;
End;
// Получаем столбец
SetLength(A,N);
For I := 1 To N Do
A[I-1] := GetValue(Idx,I);
// Сортировка
For I := 0 To N-2 Do
For J := I+1 To N-1 Do
IF A[i] > A[J] Then
Begin
vMax := A[i];
A[i] := A[J];
A[J] := vMax;
End;
// Обмен (индекс дин. массива начинается с 0)
vMax := A[2-1];
A[2-1] := A[4-1];
A[4-1] := vMax;
// Тут делаешь вывод получившегося массива A
...
end;