jueves, 12 de septiembre de 2013

TORRES DE HANOI

Tercera práctica



Problema a resolver:

calcular los movimientos que se realiza de "n" discos en 3 postes.

Procedimiento:
1.   Comenzamos a analizar el programa a resolver.
2.   Identificamos los datos de entrada (numero de discos y postes) y salida (numero de movimientos).
3.   Creamos  el diagrama UML, la cual contiene el  nombre de la clase,  atributos y métodos.
4.   Comenzamos a codificar y creamos la clase llamada TorresHanoi.
5.   Después utilizamos una herramienta de java conocido como refactor  para encapsular  las variables (numdiscos  y nummovimientos) y de esa manera realizamos  el programa más fácil y práctico. 
6.   Posteriormente comenzamos  a crear los métodos: intercambio y jugar.
7.   Creamos otra clase llamado Torres  para solución de la clase TorresHanoi.


8.   Por último ejecutamos el programa, así logrando imprimir los resultados deseados.


Diagrama UML






  solución en java

Comienza la clase TorresHanoi

package Ortiz;

import javax.swing.JOptionPane;
public class TorresHanoi {
   
    private int numdiscos;
    private int nummovimientos;

    public void intercambio( int numdiscos,char A,char B,char C){
        
      if(numdiscos==1){
          setNummovimientos(getNummovimientos() +1);
          JOptionPane.showMessageDialog(null,"mover disco del poste A al poste B  "+"\n"+"numeros de movimientos "+nummovimientos);  
      }  
      else{
          intercambio(numdiscos-1,A,B,C);
          setNummovimientos(getNummovimientos()+1);
          JOptionPane.showMessageDialog(null,"mover disco del poste A al poste C "+"\n"+"numeros de movimientos "+nummovimientos); 
          intercambio(numdiscos-1,A,B,C);
      }
    }
    public void jugar(){
    JOptionPane.showMessageDialog(null,"el total de movimientos efectuados fueron  "+ nummovimientos);    
    }
  

Termina la clase TorresHanoi

comienza la clase Torres

package Ortiz;

public class Torres {
    public static void main(String []largs){
        
        TorresHanoi x;
        x=new TorresHanoi();
        
        x.intercambio(3, 'A' ,'B', 'C');
        x.jugar();
    }
}
}
    

}


}

fin de la clase




Conclusión:


 En esta tercera practica; consistió en cambiar los discos de una torre a otro, con la condicion no poder mover un disco grande a un pequeño; analizamos las supuestas combinaciones tratando de cumplir la condición, para llegar a lo deseado.
   En esta practica pudimos notar que se nos complico ya que tuvimos, que analizar los movimientos.

Autores

Javier  Arley Gonzalez Roblero, Manuel  Alejandro Mendez lopez y Saulo Ortiz Ortiz









No hay comentarios:

Publicar un comentario