Prácticas de Informática Práctica 8: Programación Orientada a Objetos Definición de Tipos Abstractos de Datos Objetivo de la práctica El objetivo de esta práctica es la implementación de un tipo abstracto de datos con la clase Matriz. Define la clase Matriz con los métodos (funciones y métodos especificados) y prueba la clase implementada con el programa progMatriz. import java.util.Scanner; public class Matriz { private int _filas; private int _columnas; private int [][] _m; public Matriz (int[][] m) public Matriz (int filas, int columnas) public int getValAt(int fila, int columna) public void setValAt(int fila, int columna, int valor) public int getFilas() public int getColumnas() public int [] getFila(int fila) public int [] getColumna(int columna) public private String toString () boolean todosDistintos(int []m) //auxiliar mccudz private static int maximo(int [] m) //auxiliar mccudz private static int posMax(int []m) //auxiliar mccudz public boolean mccud () public static Matriz leeMatriz() //lee matriz cuadrada public static Matriz leeMatriz(int dim) //lee matriz cuadrada public static Matriz leeMatriz(int filas, int columnas) public static Matriz producto (Matriz m1, Matriz m2) public static Matriz suma (Matriz m1, Matriz m2) public Matriz transpuesta () public void transponer () public boolean simetrica() public boolean triangular()//ceros debajo de la diagonal prin. } Departamento de Informática e Ingeniería de Sistemas Prácticas de Informática public class progMat { public static void main(String[] args){ int [][] mat_mccdu={{ 5, 6, 2,-4}, { 6, 7, 8, 3}, {10, 4,-5, 9}, { 4,-7, 1,12}}; int [][] no_mat_mccdu={{ 5, 6, 2,-4}, { 6, 7, 8, 3}, {10, 4,-5, 9}, { 4,-7, 12,1}}; int [][] ms={{1,2,3}, {2,1,4}, {3,4,5}}; int [][] mns={{1,2,3}, {7,1,4}, {3,4,5}}; int [][] mt={{1,2,3}, {0,1,4}, {0,0,5}}; Matriz Matriz Matriz Matriz Matriz matriz_mccdu=new Matriz(mat_mccdu); matriz_no_mccdu=new Matriz(no_mat_mccdu); matriz_ms=new Matriz(ms); matriz_mns=new Matriz(mns); matriz_mt=new Matriz(mt); System.out.println(matriz_mccdu); if (matriz_mccdu.mccud()) System.out.println("Es mccud"); else System.out.println("No es mccud"); System.out.println(matriz_no_mccdu); if (matriz_no_mccdu.mccud()) System.out.println("Es mccud"); else System.out.println("No es mccud"); System.out.println(matriz_ms); if (matriz_ms.simetrica()) System.out.println("Es simetrica"); else System.out.println("No es simetrica"); System.out.println(matriz_mns); if (matriz_mns.simetrica()) System.out.println("Es simetrica"); else System.out.println("No es simetrica"); System.out.println(matriz_mt); if (matriz_mt.triangular()) System.out.println("Es triangular"); else System.out.println("No es triangular"); System.out.println(matriz_mns); if (matriz_mns.triangular()) System.out.println("Es triangular"); else System.out.println("No es triangular"); System.out.println("suma Matrices"); System.out.println(matriz_mccdu); System.out.println("MAS");System.out.println(matriz_no_mccdu); System.out.println("IGUAL"); System.out.println(Matriz.suma(matriz_mccdu, matriz_no_mccdu)); System.out.println("producto Matrices"); System.out.println(matriz_mccdu); System.out.println("POR");System.out.println(matriz_no_mccdu); System.out.println("IGUAL"); System.out.println(Matriz.producto(matriz_mccdu, matriz_no_mccdu)); System.out.println("TRAPUESTA de"); System.out.println(matriz_mccdu); System.out.println("IGUAL"); System.out.println(matriz_mccdu.transpuesta()); System.out.println("TRANPONER"); System.out.println(matriz_mccdu); matriz_mccdu.transponer(); System.out.println("QUEDA"); System.out.println(matriz_mccdu); } } Departamento de Informática e Ingeniería de Sistemas