Trasponer+matriz+cuadrada

=__**Leer, Mostrar y Trasponer una matriz cuadada**__= > code format="pascal" PROGRAM TrasponerMatrizCuadrada ; USES Crt ; CONST iMAX_DIMENSIONES = 5 ; TYPE taiMatriz = ARRAY [1..iMAX_DIMENSIONES, 1..iMAX_DIMENSIONES] OF Integer ;

PROCEDURE LeerDimensiones (VAR byDimension : Byte) ; BEGIN REPEAT Write ('Introduce dimension de la matriz cuadrada (1..', iMAX_DIMENSIONES, '): ') ; Readln (byDimension) ; UNTIL (0 < byDimension) AND (byDimension <= iMAX_DIMENSIONES) ; END ; { LeerDimensiones }

PROCEDURE LeerMatriz (VAR aiMatriz : taiMatriz ; byDimension : Byte) ; VAR i, j : Byte ; BEGIN FOR i := 1 TO byDimension DO     BEGIN Writeln ('Introduciendo fila ', i, ':') ; FOR j := 1 TO byDimension DO         BEGIN Write ('Elemento [', i, ',', j, ']: ') ; Readln (aiMatriz [i, j]) ; END ; END ; END ; { LeerMatriz }

PROCEDURE MostrarMatriz (CONST aiMatriz : taiMatriz ; byDimension : Byte) ; VAR i, j : Byte ; BEGIN Writeln ; FOR i := 1 TO byDimension DO     BEGIN FOR j := 1 TO byDimension DO         Write (aiMatriz [i, j]:8) ; Writeln ; END ; Writeln ; END ; { MostrarMatriz }

PROCEDURE Intercambiar (VAR iNum_1, iNum_2 : Integer) ; VAR iAux : Integer ; BEGIN iAux  := iNum_1 ; iNum_1 := iNum_2 ; iNum_2 := iAux ; END ; { Intercambiar }

PROCEDURE TrasponerMatriz (VAR aiMatriz: taiMatriz ; byDimension : Byte) ; VAR i, j : Byte ; BEGIN FOR i := 1 TO byDimension DO     FOR j := i + 1 TO byDimension DO          Intercambiar (aiMatriz [i,j], aiMatriz [j,i]) ; END ; { TrasponerMatriz }

{-- Variables del programa principal --} VAR aiMatriz_A   : taiMatriz ; byDimension_A : Byte ;

BEGIN { Programa Principal } Writeln ; Writeln ('Escribe la matriz:') ; LeerDimensiones (byDimension_A) ; LeerMatriz (aiMatriz_A, byDimension_A) ;

Writeln ; Writeln ('La matriz leída es: ') ; MostrarMatriz (aiMatriz_A, byDimension_A) ;

TrasponerMatriz (aiMatriz_A, byDimension_A) ;

Writeln ; Writeln ('La matriz traspuesta es: ') ; MostrarMatriz (aiMatriz_A, byDimension_A) ;

Writeln ; Readln ; END. { Final de TrasponerMatrizCuadrada.PAS } code