Hola RadamantiS.
No me queda bién en claro si deseas cambiar los valores de las variables máximo y mínimo, en cuyo caso es tan simple como:
Código Delphi
[-]
var
aux: Integer;
begin
aux:= Minimo;
Minimo:= Maximo;
Maximo:= aux;
...
o deseas que intercambien las posiciciones dentro de la matriz. Si este último es el caso, te hice un ejemplo muy simple para que te sirva de guía:
Código Delphi
[-]
program Project1; {$APPTYPE CONSOLE}
uses
SysUtils, Types;
const
MAX_FIL = 5;
MAX_COL = 5;
type
TMatrix = array[1..MAX_FIL, 1..MAX_COL] of Integer;
procedure LoadMatrix(var mat: TMatrix);
var
f,c: Integer;
begin
Randomize;
for f:= 1 to 5 do
for c:= 1 to 5 do
mat[f,c]:= Random(100);
end;
procedure ShowMatrix(Mat: TMatrix);
var
f,c: Integer;
begin
Randomize;
for f:= 1 to 5 do
begin
for c:= 1 to 5 do
Write(mat[f,c]:3);
writeln;
end;
end;
function MaxMinValues(Mat: TMatrix; var Mayor, Menor:integer): TRect;
var
f, c: Integer;
begin
Mayor:= mat[1,1];
Menor:= mat[1,1];
for f:= 1 to MAX_FIL do
for c:= 1 to MAX_COL do
if mat[f,c] < Menor then
begin
Menor:= Mat[f,c];
Result.Left:= f; Result.Top:= c; end
else if Mat[f,c] > Mayor then
begin
Mayor:= Mat[f,c];
Result.Right:= f; Result.Bottom:= c; end;
end;
procedure SwapValues(var Mat: TMatrix; T: TRect);
var
aux: Integer;
begin
aux:= Mat[T.Left,T.Top];
Mat[T.Left,T.Top]:= Mat[T.Right, T.Bottom];
Mat[T.Right, T.Bottom]:= aux;
end;
var
May, Min: Integer;
Mat: TMatrix;
T: TRect;
begin
LoadMatrix(Mat);
Writeln('Carga inicial:');
ShowMatrix(Mat);
T:= MaxMinValues(Mat, May, Min);
writeln (#10,'Menor elemento: ',Min,' Mayor elemento: ',May,#10);
Writeln('Valores intercambiados');
SwapValues(Mat, T);
ShowMatrix(Mat);
Readln;
end.
Ahora bién, hay que tomar en cuenta que al cargarse de forma aleatoria puede haber repetición de valores. Es decir que si en la matriz tenemos duplicados los valores mínimos y máximos posibles (en el ejemplo 0 y 99), sólo se hará un intercambio.
Un saludo.
Edito: Dos comentarios, no olvides incluir
Types en la cláusula uses. La función
MaxMinValues bién podría prescindir de los argumentos por referencia
Mayor y
Menor, pero los dejé por si necesitas utilizar su valor en otra parte del programa.