const
TAMANO=2;//es una matriz de tamano 3 inicia del 0..al..2 son 3 posiciones
Type
TMatriz=array [0..TAMANO,0..TAMANO]of integer;
//Intercambia las filas de una matriz si el numero de la fila es negativa o es mayor
// al tamano de la matriz toma su valor valido mas cercano
//ejemplo:
//si filaOringen o filaDestino es -1 toma el valor de cero
//si filaOringen o filaDestino es mayor que el maximo de la matriz asigna el maximo valor valido
//
//
//Parametros:
// matriz: es donde contendra el arreglo de 2 dimensiones
//filaOringen: fila que se intercambiara
//filaDestino: es la fila por la cual sera intercambiada filaOrigen
//
//Retorno: la funcion retorna una matriz de tipo TMATRIZ con los cambios realizados despues del intercambio
function intercambiarFIlas(matriz:TMatriz; filaOrigen:LongInt; filaDestino:LongInt):TMatriz;
var
matrizTemporal:TMatriz;
i:integer;
begin
matrizTemporal:=matriz;
if(filaOrigen<0)then filaOrigen:=0;
if(filaDestino<0) then filaDestino:=0;
if(filaOrigen>TAMANO)then filaOrigen:=TAMANO;
if(filaDestino>TAMANO) then filaDestino:=TAMANO;
for i:=0 to TAMANO do
begin
matrizTemporal[filaOrigen,i]:=matriz[filaDestino,i];
matrizTemporal[filaDestino,i]:=matriz[filaOrigen,i];
end;
Result:=matrizTemporal;
end;
//rellena la matriz con valores de cero a N la matriz es pasado por referencia
procedure rellenarMatriz(var matriz:TMatriz);
var
i,j,cont:Integer;
begin
cont:=1;
for i:=Low(matriz) to High(matriz)do
begin
for j:=Low(matriz[0]) to High(matriz[0]) do
begin
matriz[i,j]:=cont;
inc(cont);
end;
end;
end;
//funcion que imprime la matriz por la consola
procedure imprimirMatriz(matriz:TMatriz);
var
i,j:Integer;
begin
for i:=Low(matriz) to High(matriz)do
begin
for j:=Low(matriz[0]) to High(matriz[0]) do
begin
Write(matriz[i,j],' ');
end;
WriteLn;
end;
WriteLn;
end;
var
matriz:TMatriz;
begin
WriteLn('Matriz original');
rellenarMatriz(matriz);
imprimirMatriz(matriz);
WriteLn('Intercambiamos la matriz la fila cero por la fila 2');
matriz:=intercambiarFIlas(matriz,0,2);
imprimirMatriz(matriz);
WriteLn('Intercambiamos la matriz la fila 2 por la fila 1');
matriz:=intercambiarFIlas(matriz,2,1);
imprimirMatriz(matriz);
end.