{Escribir un programa en Pascal que genera la matriz transpuesta de una matriz
de 3 filas y 4 columnas. la matriz transpuesta de una matriz M (M, n) se obtiene
intercambiando filas por columnas y viceversa;
el resultado se tiene que almacenar
en una nueva matriz M_TRANS (n, M) .}

PROGRAM EJERC100;
USES CRT;
CONST matriz : ARRAY [1..3, 1..4] OF
 
INTEGER = ( (12, 67, - 23, - 45),
  (
45, - 34, 23, - 12),
  (
- 34, 22, 88, - 10) );
VAR m_tra : ARRAY [1..4, 1..3] OF
 
INTEGER;
VAR f, c : INTEGER;
BEGIN
 
CLRSCR;
 
FOR c := 1 TO 3 DO
      BEGIN
      FOR
f := 1 TO 4 DO
          BEGIN
         
m_tra [f, c] := matriz [c, f];
         
WRITE ('(', f, ',', c, ') ');
         
WRITELN (m_tra [f, c] : 3);
         
END;
     
END;
END.
PROGRAM EJERC100;
USES CRT;
CONST m_orig : ARRAY [1..3, 1..4] OF
 
REAL = ( (2, 3, 4, 12),
  (
7, 9, 8, 11),
  (
5, 6, 1, 19) );
 
VAR m_tran : ARRAY [1..4, 1..3] OF
   
REAL;
   
VAR i, j : INTEGER;
     
BEGIN
     
CLRSCR;
     
FOR i := 1 TO 3 DO
          FOR
j := 1 TO 4 DO
             
m_tran [j, i] := m_orig [i, j];
     
FOR i := 1 TO 3 DO
          BEGIN
          FOR
j := 1 TO 4 DO
             
WRITE (m_orig [i, j] : 5 : 2, ' ');
         
WRITELN (' ');
         
END;
     
WRITELN (' ');
     
FOR i := 1 TO 4 DO
          BEGIN
          FOR
j := 1 TO 3 DO
             
WRITE (m_tran [i, j] : 5 : 2, ' ');
         
WRITELN (' ');
         
END;
     
END.