Proyecto 1er parcial de Estructuras de Datos (3era entrada)
by jaminson on Dic.15, 2015, under Proyecto de estructura de Datos 1er Parcial
Debido a limitaciones de hardware se acordó realizar modificaciones al proyecto. Los nuevos requerimientos de la aplicación son:
- Deberá permitir listar el top 10 de las películas por cada categoría
- Listar por año las películas.
- Buscar películas por coincidencia de palabras y mostrar la información asociada a las películas encontradas
- Revisar el listado de todas las películas ordenadas descendentemente por su calificación.
- Mostrar las películas ordenadas alfabéticamente o descendente por año.
En esta ocasión diseñaremos la interfaz gráfica de la aplicación, el IDE Netbeans nos proporciona herramientas de Drag and Drop para el diseño de GUI
Diseño de Interfaz Gráfica para el Proyecto
Para darle funcionalidad a los botones en necesario crear «Listeners» por ahora usaremos las herramientas de Netbeans para generar las firmas de estas funciones
Proyecto 1er parcial de Estructuras de Datos (2da entrada)
by jaminson on Dic.04, 2015, under Proyecto de estructura de Datos 1er Parcial
En esta ocasion solo crearemos las clases mas evidentes para el funcionamiento de nuestra aplicación
Creación de TDA necesarias:
Clase movie
Clase Rating
Aplicaciones de Pilas
by jaminson on Dic.02, 2015, under Estructuras de Datos
Una de las aplicaciones del TDA pila es la evaluación de expresiones aritméticas, por lo que en esta ocasión implementaremos en java un algoritmo que evalué una expresión aritmética en el notación postfix.
Existen 3 tres notaciones para representar expresiones aritméticas prefix, postfix e infix.
Notación Infix
Es la notación que los seres humanos usamos comúnmente en la que tenemos un operador y en medio dos operandos.
ej: A+B
A nosotros los humanos se nos hace muy natural, sin embargo para las computadoras es mas sencillo evaluar expresiones aritméticas si estas se encuentran en notación prefix o postfix.
Notación Prefix
En esta notación tenemos un operador antes de dos operandos
ej: +AB
Notación Postfix
En esta notación tenemos un operador antes de dos operandos
ej: AB+
Para nuestra implementación usaremos esta ultima notación.
Diseño
Antes de empezar a escribir código, tratemos de modelar el problema, identificando las clases que podríamos necesitar. Para mi implementación decidí crear 3 clases o TDAs.
La clase Expresión que representara a una expresión a evaluar, la clase Variable que representara a las variables dentro de la expresión y la clase UsoPilas que sera nuestra clase main en donde pediremos las entradas e imprimiremos las salidas.
Clase Expresión
Para la clase expresión necesitamos un método para verificar si la expresión que se recibe es valida, para esto asumiremos que la única manera en la que el usuario se puede equivocar es al momento de escribir paréntesis, es decir que no hay un numero par de paréntesis . También necesitaremos un método que convierta la expresión de infix a postfix. Adicionalmente necesitaremos un método para evaluar las expresiones y además nos serian útiles métodos que nos indiquen el orden de precedencia de los operadores y que hacer cuando se encuentra un paréntesis.
Clase Variable
Para esta clase o TDA solo necesitaremos el método constructor que inicialice los atributos nombre y valor de la variable.
Clase UsoPilas
En esta clase pediremos las entradas e imprimiremos las salidas.
Una vez que obtenemos las entradas se llama al método evaluarExpresion de la clase Expresión y se presentan los resultados.
Proyecto 1er parcial de Estructuras de Datos (1era entrada)
by jaminson on Nov.28, 2015, under Proyecto de estructura de Datos 1er Parcial
Durante la primera semana de trabajo, nos dedicamos a completar el grupo para el proyecto, ya que nuestro grupo solo tiene dos integrantes, también nos pusimos a leer los requerimientos y bases del proyecto ademas de descargar los archivos adjuntos al mismo del siguiente link: https://www.dropbox.com/s/e9cmmp80w9lh6rp/Netflix_prize_dataset.tar.gz?dl=0
En resumen, el proyecto consiste en crear una aplicación en Java que permita generar reportes en HTML acerca de las preferencias de los usuarios de Netflix. El proyecto tiene 3 entregables:
- Un documento con la presentación de la implementación de su proyecto
- El código fuente de su proyecto
- Entradas de un blog que describa los avances semanales del proyecto.
TDA Conjunto en Java
by jaminson on Nov.27, 2015, under Estructuras de Datos
Para crear el TDA Conjunto primero debemos pensar en el estado y comportamiento de un conjunto, es decir que atributos tiene un conjunto y que acciones u operaciones se pueden realizar con un conjunto.
Podemos en listar las siguientes operaciones:
- Unión
- Intersección
- Diferencia
- Complemento
En esta ocasión solo implementaremos los tres primeros métodos, para esto usaremos la clase LinkedList de Java ya que cuenta con métodos que nos serán útiles durante nuestra tarea.
Método Unión
Para este simular la operación unión entre conjuntos, recibiremos como parámetros dos LinkedLists (en el ejemplo c1 y c2) que seran los «conjuntos» a unir y devolveremos un nuevo «conjunto» (en el ejemplo c3) con los elementos unidos, usaremos los métodos addAll, removeAll de la clase LinkedList, a continuación describiré brevemente que hace cada método:
- AddAll(Colección c): Añade los elementos de la colección c al final de la lista que invoca el método.
- removeAll(Colección c): Remueve los elementos de la colección c de la lista que invoca el método.
Ahora que ya sabemos las herramientas con las que contamos podemos proceder a crear nuestro método unión, lo que haremos es usar el metodo AddAll para añadir los elementos de la listas c1 y c2 a la lista c3, pero debemos validar que en la lista que retornaremos no se repita ningún elemento, para esto usaremos el método removeAll que para eliminar de c3 los elementos que también se encuentren en c2 después de haberle añadido los elementos de c1 (ver imagen 1).
Imagen 1
Método Intersección
Para simular esta operación, recibiremos como parámetros dos LinkedLists (en el ejemplo c1 y c2) que seran los «conjuntos» a intersectar y devolveremos un nuevo «conjunto» (en el ejemplo c3) con los elementos intersectados, usaremos los métodos addAll y retainAll de la clase LinkedList, a continuación describiré brevemente que hace cada método:
- addAll(Colección c): Añade los elementos de la colección c al final de la lista que invoca el método.
- retainAll(Coleccion c): Elimina los elementos de la lista que invoca el método que no se encuentren en la colección c.
Lo que haremos sera usar el método addAll para añadir a c3 los elementos de c1 y luego usaremos retainAll para eliminar de la lista c3 cualquier elemento que no tenga en común con la lista c2 (ver imagen 2).
Imagen 2
Método Diferencia
Para simular esta operación, recibiremos como parámetros dos LinkedLists (en el ejemplo c1 y c2) que seran los «conjuntos» a diferenciar y devolveremos un nuevo «conjunto» (en el ejemplo c3) con la operación realizada, usaremos los métodos addAll y removeAll de la clase LinkedList, a continuación describiré brevemente que hace cada método:
- addAll(Colección c): Añade los elementos de la colección c al final de la lista que invoca el método.
- removeAll(Colección c): Remueve los elementos de la colección c de la lista que invoca el método.
Lo que haremos sera usar el método addAll para a la lista c3 los elementos de la lista c1 y luego usaremos removeAll para eliminar los elementos de c3 que estén en c2 (ver imagen 3).
Imagen 3
Proyecto Final herramientas de la Colaboracion Digital
by jaminson on Sep.01, 2013, under Proyecto - Herramientas de la colaboracion digital
4 Comments more...Examen de herramientas de la colaboracion digital
by jaminson on Ago.22, 2013, under Proyecto - Herramientas de la colaboracion digital
Leave a Comment more...¿Que hay en la Flama de una vela?
by jaminson on Ago.10, 2013, under Ciencia
Aqui dejo un experimento que encontre que demuestra que, aunque que muchos consideran que una llama no es realmente plasma, porque no es lo sufientemente caliente y por no tener una alta densidad de iones, aun asi contiene iones con ompirtantes propiedades electricas.