viernes, 13 de septiembre de 2013

Tercera practica del laboratorio (Hanoi)

 



 EL PROBLEMA DE LA TORRE DE HANOI


Es un problema clásico de recursión ya que se pertenece a la clase de problemas cuya solución se simplifica notablemente al utilizar recursión. Se tienen 3 torres y un conjunto de N discos de diferentes temarios. Cada uno de los mismos tiene una perforación en el centro en el que permiten deslizarse por cualquiera de las torres inicialmente; los N discos están ordenados de mayor a menor en una de las torres. Se deben pasar los discos a otra torre, utilizando la tercera como un auxiliar.
Este movimiento debe hacerse respetando las siguientes reglas.
1.   En cada movimiento solo puede intervenir un disco, por lo tanto siempre será disco superior al que pueda moverse.
2.   No puede quedar un disco sobre uno de menor tamaño.

Supongamos que las torres se identifican con los nombres A,B,C. los discos están inicialmente en la torre A(origen) se los quiere transferir a la torre B(destino), utilizando la torre C como un auxiliar. A continuación se presentara el resultado.



PROBLEMA:

ELABORAR UN PROGRAMA QUE CALCULE LOS MOVIMIENTOS DE LA TORRE DE HANOI






SOLUCIÓN EN JAVA








Aqui se encuentra los atributos numDiscos y numMovimientos, donde son de tipo de datos enteros. Donde despues los encapsulamos para que sean privados y sean gets y sets.




Aqui se encuentran los metodos Intercambio y Jugar, donde intercambio mueve los dscos del poste A al poste B, del poste A al poste C y Jugar hace el total de los movimientos efectuados.



Aqui se encuentra la clase Solucionorres, donde esta el metodo main; como tambien intercambio y jugar.



Aqui mustra el mensaje donde muetra el numero de movimientos y el total.





 



CONCLUSIÓN


A qui aprendimos a encontrar un modelo para relacionar el mínimo numero de movimientos (M) con el numero de discos de la torre de Hanoi (N) y de esta forma efectuar la recursion  de manera clásica ya que pertenece a la clase de problemas cuya solución se simplifica notablemente al utilizar recursion.




jueves, 12 de septiembre de 2013

Segunda Practica De Laboratorio (Factorial)

RECURSION

La recursión: Es un concepto amplio, difícil de precisar aparece en numerosas actividades de la vida diaria, por ejemplo, en una fotografía de una fotografía. otro caso de recursión muy ilustrativo, es el que se representa en los programas de televisión en los cuales un periodista transfiere el control otro periodista que se encuentra en otra ciudad y este a su vez  pudiera transferirlo a un tercero.


La recursión permite definir un objeto (problemas, estructura de datos) en términos de si mismo.

Casos típicos de estructuras de datos definidas de manera re cursiva son los arboles y las listas ligadas.


 


 

 

Problema

Elabora un programa que calcule el factorial de un numero


Diagramas UML del programa














SOLUCION EN JAVA

 




En este programa se encuentra los atributos de la clase, los encapsulamientos donde están los set y get
 






Aquí se encuentra los métodos de la clase






Aquí se encuentra la solución del programa Factorial



CONCLUSIÓN

En este programa   primero aprendimos que la recursividad no es una estructura de datos, sino que es una técnica de programación que nos permite que un bloque de instrucciones se ejecute n veces. en ocasiones remplaza a estructuras repetitivas. En Java los métodos pueden llamarse a sí mismos. Si dentro de un método existe la llamada a sí mismo decimos que el método es recursivo. 


 

 

Primer practica del laboratorio (Rectangulo)

PROBLEMA


Elabora un programa que calcule el área y el perímetro de 3 rectángulos y un triangulo.





 DIAGRAMAS DE UML 














 SOLUCIÓN  EN  JAVA





Aquí presentamos los atributos que son base, altura, perímetro y área  que son de tipo de dato entero donde después encapsulamos para que sean privados y sean también gets y sets.





A qui se representan los métodos captura, donde pide la base del rectangulo y la altura, calcularArea, calcularPerimetro e imprimir donde da el resultado.


 



Aquí se muestra la clase triangulo donde están los atributos base, altura, área y perímetro  donde son de tipo de datos Enteros, donde después los encapsulamos para que sean privados y como también sean gets y sets.

Aquí se muestra los métodos de la clase triangulo, que son captura donde pide la base y la altura  del triangulo, Área donde hace la opearacion y Perímetro y por ultimo Imprimir donde los muestra.



Aquí se muestra el mensaje de la solución del rectángulo y el triangulo.






CONCLUSIÓN


 En el primer programa aprendimos muchas cosas entre ellas  como usar un UML que contiene las clases, los atributos, etc.  y aplicarlo a la codificación de un programa y de esa forma facilitarnos la codificación en java,  también aprendimos la manera de como encapsular las clases todo lo que aprendimos nos servirá para mejorar nuestros programas y hacerlos de manera fácil y rápida.







Introducción, Mensaje de bienvenida


Estructura de datos

Mensaje de Bienvenida

Te doy la más cordial bienvenida a mi blog;  Sera una ventana mas para compartir con los usuarios.


En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.

  Una estructura de datos define la organización e interrelación de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:

.  Alta, adicionar un nuevo valor a la estructura.

.  Baja, borrar un valor de la estructura.

. búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).

Otras operaciones que se pueden realizar son:

.  ordenamiento, de los elementos pertenecientes a la estructura.

.  Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.

Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos.









OBJETIVO



El objetivo de la estructura de datos es identificar, seleccionar y aplicar eficientemente tipos  de datos abstractos, métodos de ordenamiento y búsqueda para optimizar el rendimiento de soluciones de problemas del mundo real.


 






                                   arbolo binario y árbol AVL