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

Slides:



Advertisements
Presentaciones similares
Arreglos.
Advertisements

UNIVERSIDAD NACIONAL DE INGENIERÍA UNI- NORTE
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
Defina una clase TempMinEstacion que encapsule la representación de las temperaturas mínimas registradas en una estación meteorológica en un período y.
Introducción a la Programación Orientada a Objetos Una Universidad administra varias residencias para estudiantes extranjeros. Cada residencia ocupa un.
Tipos de Datos Abstractos Vector de Racionales
TDA Matriz Racionales Implementar un TDA MatrizRac que brinde operaciones para calcular el producto de un escalar por una matriz, la suma de dos matrices,
El proceso de desarrollo de software
Abstracciones y Modelos
Reusabilidad La productividad está basada en reusabilidad y extensibilidad El reusabilidad permite desarrollar nuevas aplicaciones a partir de componentes.
El proceso de desarrollo de software
INFORMATICA I Funciones CLASE 13.
Tema 5 Grafos. Implementación (I)..
Tema 1. Introducción a la programación (Lenguaje java).
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
El concepto de clase Con frecuencia un término puede definirse de diferentes maneras según el enfoque. Desde el punto de vista del análisis y el diseño.
Genericidad Una clase genérica encapsula una estructura y brinda un conjunto de servicios cuya implementación no depende del tipo de las componentes.
Genericidad Los datos de aplicaciones muy diferentes puede modelarse con frecuencia a partir de tipos de datos cuyas operaciones no dependen del tipo de.
Vectores en java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
JAVA J.A.C..
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
MATRICES Y DETERMINANTES.
ARREGLOS BIDIMENSIONALES
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
METODOLOGÍA DE LA PROGRAMACIÓN
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Programación I Arreglos II- Matrices.
Dinamismo y Contenedores Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires (C++ Avanzado) Depto. de Computación Algoritmos y Estructuras.
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
006 DETERMINANTES DETERMINANTES.
CAPITULO V ARREGLOS Y CADENAS.
Introducción a la Programación Orientada a Objetos VRacional Racional [] arreglo > VRacional (max : entero) > establecerElem (pos : entero, elem : Racional)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Genericidad.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tabla.
Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de ahorro bancaria definimos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Colección.
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
Entrada y Salida ES.leerChar (); ES.leerEntero (); ES.leerEnteroLargo (); ES.leerFloat (); ES.leerDouble (); System.out.print System.out.println.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Polimorfismo.
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción.
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
Algoritmo.
Abstracción El concepto de abstracción es esencial en ciencias de la computación. Un programa es en sí mismo una abstracción, un modelo de la resolución.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Caso.
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
ALGEBRA CON VECTORES Y MATRICES Uso de MatLab.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
ArreglosBidimensionales enjava. Sonestructurasdetamañofijoorganizadasporfilasy columnas. Estas estructuras almacenan valores del MISMO TIPO de dato. Cada.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Diseño y Programación Orientada a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Sonia Rueda Herencia y Polimorfismo
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Arreglos en Java.
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Transcripción de la presentación:

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.

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

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

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

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

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.

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]; }

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; }

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]; }

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; }

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; }

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; }

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; }

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz r=3 Producto de matriz por escalar. para cada posición i,j mr i,j = mr i,j *r

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

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); }; }

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; }

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; }

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

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz esIdentidad(n)

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz esIdentidad(n)

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz esIdentidad(n)

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz esIdentidad(n)

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz

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

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)); }

Introducción a la Programación Orientada a Objetos Arreglos de 2 dimensiones TDA Matriz public Matriz sumaMatriz (Matriz m) { } suma=new Matriz (obtNFil(),obtNCol()); … return suma;

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]; }

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

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

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