Mostrando entradas con la etiqueta programa. Mostrar todas las entradas
Mostrando entradas con la etiqueta programa. Mostrar todas las entradas

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.