La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular.

Presentaciones similares


Presentación del tema: "Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular."— Transcripción de la presentación:

1 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular el producto de un escalar por una matriz, la suma de dos matrices, establecer la matriz identidad, decidir si un matriz es cuadrada, decidir si una matriz es la matriz identidad, decidir si es una matriz simétrica. La matriz se representa mediante un arreglo de dos dimensiones de números reales. La clase que encapsula al arreglo brinda operaciones para establecer y obtener un elemento y para comparar, copiar y clonar matrices.

2 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 1 2 3 4 5 Matriz m1; … m1.obtenerElem (1,3); public float obtenerElem (int f,int c){ return mr[f][c]; } 012012

3 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Matriz real [] [] mr > Matriz (fMax,cMax : entero) > establecerElem (f,c : entero, elem : real) copy(m : Matriz) establecerIdentidad () invertirFilas(f1,f2:entero) xEscalar(r:real) Asume que la posición es válida Asume que se verificó que la matriz es cuadrada Asume que se verificó que f1 y f2 son válidas

4 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Matriz real [] [] mr > existePos(f,c : entero) : boolean obtenerNFil () : entero obtenerNCol () : entero obtenerElem (f,c : entero) : real clone() :Matriz equals(m:Matriz): boolean esCuadrada () : boolean esIdentidad():boolean esTriangularSuperior():boolean esSimetrica():boolean esRala():boolean Asume que la posición es válida Más de la mitad de los elementos son 0

5 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Matriz real [] [] mr > cantElem (elem : real) : entero estaElem(elem : real) : boolean mayorElemento () : real filaMayorElemento () : entero vectorMayores () :Vector suma (m:Matriz) : Matriz producto(m:Matriz):Matriz transpuesta():Matriz Asume que se controlaron filas y col Genera un vector con el mayor elemento de cada fila

6 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Establecer casos de prueba adecuados para cada consulta y comando.

7 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public class Matriz { private float[][] mr; \\ Constructor public Matriz(int nfil,int ncol){ mr=new float[nfil][ncol]; }

8 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public int obtenerNfil () { return mr.length; } public int obtenerNcol () { return mr[0].length; }

9 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public boolean existePos(int f, int c) { return (f>=0 && f < obtenerNfil()) && (c>=0 && c < obtenerNCol()); } public float obtenerElem(int f,int c){ \\ Asume que la posición es válida return mr[f][c]; }

10 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz \\ Comandos public void establecerElemento (int f,int c, float x) { \\Asume que la posición es válida mr[f][c]= x; }

11 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public void establecerIdentidad () { iniMatriz(); for (int j=0;j<obtenerNcol();j++) mr[j][j] = 1; }

12 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public void iniMatriz () { for (int i=0;i<obtenerNfil();i++) for (int j=0;j<obtenerNcol();j++) mr[i][j] = 0; }

13 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public void establecerIdentidad () { for (int i=0;i<obtenerNfil();i++) for (int j=0;j<obtenerNcol();j++) if (i==j) mr[i][j] = 1; else mr[i][j] = 0; }

14 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 60 -3-9 36 012012 0 1 20 -3 12 012012 0 1 r=3 Producto de matriz por escalar. para cada posición i,j mr i,j = mr i,j *r

15 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public void xEscalar (float r) { for (int i=0;i<obtenerNfil();i++) for (int j=0;j<obtenerNcol();j++) mr[i][j] = mr[i][j] * r; } para cada posición i,j mr i,j = mr i,j *r

16 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public void copy (Matriz m) { mr = new float[m.obtenerNfil()][m.obtenerNcol()]; for (int i=0;i<obtenerNfil();i++) { for (int j=0;j<obtenerNcol();j++) mr[i][j] = m.obtenerElem(i,j); }; }

17 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public int cantElem (float ele){ int cant = 0; for (int i=0;i< obtenerNfil();i++) for (int j=0;j< obtenerNcol();j++) if (mr[i][j] == ele) cant++ ; return cant; }

18 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public boolean estaElemento (float ele){ boolean hay= false; int i = 0; while (i<obtenerNfil() && !hay){ int j = 0; while (j < obtenerNcol()&& !hay){ hay = (mr[i][j] == ele); j++ ; } i++; } return hay; }

19 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public boolean esCuadrada () { return (obtenerNfil() == obtenerNcol()) ; }

20 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 1 2 3 4 5 012345012345 esIdentidad(n)

21 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 1 2 3 4 5 012345012345 esIdentidad(n)

22 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 1 2 3 4 5 012345012345 esIdentidad(n)

23 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 0 1 2 3 4 5 0 0 012345012345 0 0 00000 1 esIdentidad(n)

24 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz 0 1 2 3 4 5 012345012345

25 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Caso trivial Una matriz m de nxn con n = 1 es la matriz identidad si su único elemento es 1 Caso recursivo Una matriz m de nxn con n > 1 es la matriz identidad si m[i,n-1] = 0 para 0<= i < n-1 m[n-1,j] = 0 para 0<= j < n-1 m[n-1,n-1] = 1 y la matriz m’ de (n-1)x(n-1) es la matriz identidad Planteo Recursivo

26 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public boolean esIdent () { if (!esCuadrada()) return false; else return esIdentidad(obtNfil()); } private boolean esIdentidad (int n) { if (n == 0) return (mr[0][0] == 1); else return (mr[n-1][n-1] == 1 && esCeroFila(n-1) && esCeroColumna(n-1)&& esIdentidad(n-1)); }

27 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public Matriz sumaMatriz (Matriz m) { } 30 -3 31 012012 0 1 20 -3 12 012012 0 1 50 -4 43 012012 0 1 suma=new Matriz (obtNFil(),obtNCol()); … return suma;

28 Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public class Matriz { private float[][] mr; \\ Constructor public Matriz (int nfil,int ncol){ mr =new float[nfil][ncol]; }

29 Introducción a la Programación Orientada a Objetos Administración de Memoria /≡ float [][] mr; Se declara una variable mr que referenciará a un objeto de la clase array con componentes de tipo array con componentes de tipo float. mr

30 Introducción a la Programación Orientada a Objetos Administración de Memoria mr = new float[5][3]; 5 length 3 3 3 3 3 mr

31 Introducción a la Programación Orientada a Objetos Administración de Memoria m1 = new Matriz(5,3); 5 length 3 3 3 3 3 mr m1


Descargar ppt "Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz Implementar un TDA Matriz que brinde operaciones para calcular."

Presentaciones similares


Anuncios Google