Показать сообщение отдельно
  #4  
Старый 24.06.2012, 02:26
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,107
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Мда, негусто.

В общем так.
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;
Ответить с цитированием