module MatrixOps; type Matrix = array {math} *,* of integer; procedure WriteMatrix(x: array {math} *,* of integer); var i,j: integer; begin for i := 0 to len(x,0) - 1 do for j := 0 to len(x,1) - 1 do write(x[i,j]); end; writeln; end end WriteMatrix; procedure Transposition; var m,x: Matrix; begin m := [[1,2,3],[3,4,5]]; (* matrix initialization *) x := !m; (* matrix trasposition *) WriteMatrix(x); end Transposition; begin Transposition; end MatrixOps.