Ну, полный код писать лень.
Так что я тебе собственно функции напишу, а уж визуальную обвязку сделаешь сам.
Код:
type
TMatrixIndex = record
C, R : Integer;
end;
var
A : Array [1..9,1..9] Of Integer;
// возвращает координаты макс элемента
function GetMaxElementCR : TMatrixIndex
var
I, J : Integer;
begin
Result.C := 1;
Result.R := 1;
For I := 1 To 9 Do
For J := 1 To 9 Do
If A[I,J] > A[Result.C,Result.R] Then
Begin
Result.C := I;
Result.R := J;
End;
end;
// Делает 10 замен макс элемента на 0
function ReplaceMaxbyZero : Boolean;
var
I : Integer;
Idx : TMatrixIndex;
begin
Result := True;
For I := 1 To 10 Do
Begin
Idx := GetMaxElementCR;
Result := A[Idx.C,Idx.R] > 0;
If Result
Then A[Idx.C,Idx.R] := 0
Else Break;
End;
end;
Функция ReplaceMaxbyZero вернет True если были сделаны все 10 замен или False, если меньше.
ЗЫ. Там где-то в начале было что-то про исключение 1й и последний строк из замены. Если это нужно, то тогда строка 17 должна выглядеть так: