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









lunes, 9 de septiembre de 2013

FACTORIAL DE NUMEROS


Segunda prática

Problema a resolver:
Calcular el factorial de un numero, que lea y calcule los factoriales de 1 hasta el numero leído de mayor a menor.


Procedimiento:
1.      Comenzamos a analizar el programa a resolver.
2.      Identificamos los datos de entrada (cualquier numero) y salida (factorial del numero).
3.      Creamos el diagrama uml, la cual contiene el nombre de la clase, atributos y métodos.
4.      Comenzamos a codificar y creamos la llamada factorial.
5.      Después utilizamos una herramienta de java conocida como re factor para las variables (int numero, int fact) y de esa manera realizamos el programa más mejor organizado.
6.      Posteriormente comenzamos a crear los métodos a crear los métodos: captura, clacularfactorial e imprimir factorial.
7.      Luego creamos la clase llamada usofactorial, en la que integramos un ciclo for que decremento para que los factoriales de dichos números se realicen de mayor a menor.
8.      Por ultimo ejecutamos el programa, así logrando imprimir las factoriales deseadas.

Diagramas de  UML




Solución en java



Comienza la clase Factorial


package Ortiz;

import javax.swing.JOptionPane;
public class Factorial
{

    private int numero;
   private int fact;

    public void captura()
    {
    numero=Integer.parseInt(JOptionPane.showInputDialog("Numero: "));  
    }
   public int calcularfactorial(int n)
   {
    if(n==1 || n==0){
     return fact=1;
    }
    else{
        fact=n*calcularfactorial(n-1);
        return fact;
    }
   }
   public void imprimirfactorial(){
       JOptionPane.showMessageDialog(null,"El factorial es "+fact);
   }
}

Termina la clase Factorial



Comienza la clase Usofactorial


package Ortiz;

import javax.swing.JOptionPane;
public class Usofactorial
{
    public static void main (String []arg)
    {
       Factorial n;
       n=new Factorial();
       int numveces;
       numveces=Integer.parseInt(JOptionPane.showInputDialog("factorial a calcular"));
       for(int i=numveces;i>=1;i--){
        //n.captura();
        n.calcularfactorial(i);
        n.imprimirfactorial();
       }
     
    }
 
}

Termina la clase Usofactorial


conclusión

En esta segunda practica aprendimos atravez de la programación orientada a objetos a calcular de factorial de la cantidad de números que deseábamos, al principio se nos dificulto pero al final logramos nuestro objetivo, logrando codificar el programa. Utilizando  estos conceptos básicos que aquí se introducen son fundamentales para la realización del programa para lograr una programación estructurada.Nos dimos cuenta que podemos usar la clase usofactorial que nos facilita para que nos realice los números de mayor a menor algo que nosotros no habíamos aprendido y con esto sabemos que se puede ejecutar mejor un programa.


Autores

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





miércoles, 4 de septiembre de 2013

ÁREAS Y PERÍMETROS DE TRIÁNGULOS Y RECTANGULOS


PRIMERA PRACTICA 

         

Practica a resolver:
Calcular el área y perímetro de 3 rectángulos y 1 triangulo.

Procedimiento:
  1. Comenzamos a analizar el programa a resolver.
  2. Identificamos los datos de entrada(los 3 rectángulos, el triángulo, la base y la altura) y salida (áreas y perímetros).
  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 rectángulos.
  5. Después utilizamos una herramienta de java conocido como re factor para las variables (base, altura, área y perímetro)y de esa manera realizamos el programa más  fácil y practico.
  6. Posteriormente comenzamos a crear los métodos: captura, calculararea, calcularperimetro e imprimir.
  7. Creamos otra clase llamado triangulo y repetimos los pasos 5,6; con la excepción del nombre de la clase la cual llamamos triangulo.
  8. Luego creamos la clase llamada solución.
  9. Por ultimo ejecutamos el programa, así logrando imprimir los resultados deseados.

Diagramas de UML











Solución en java


Empieza la clase Rectangulo


package ORTIZ;

import javax.swing.JOptionPane;
public class Rectangulo 
{
//atributos
    private int base;
    private int altura;
    private int area;
    private int perimetro;

    public void captura()
    {
      base=Integer.parseInt(JOptionPane.showInputDialog("base"));  
      altura=Integer.parseInt(JOptionPane.showInputDialog("altura"));
    }
    public void calculararea()
    {
       area=base*altura; 
    }
    public void calcularperimetro()
    {
      perimetro=2*base+2*altura;  
    }
    public void imprimir()
    {
      JOptionPane.showMessageDialog(null,"el area del rectangulo es  "+area);  
      JOptionPane.showMessageDialog(null,"el´perimetro del rectangulo es  "+perimetro);
    }
}

Termina la clase Rectangulo

Empieza la clase Triangulo

package ORTIZ;

import javax.swing.JOptionPane;
public class Triangulo 
  //
{
    private int base;
    private int altura;
    private int perimetro;
    private float area;

     public void captura()
    {
        base=Integer.parseInt(JOptionPane.showInputDialog("base"));
        altura=Integer.parseInt(JOptionPane.showInputDialog("altura"));
    }


    public void calculararea()
     {
         area= (base*altura)/2;
     }

     public void calcularperimetro()
     {
         perimetro=base+base+base;
     }

     public void imprimir()
     {
         JOptionPane.showMessageDialog(null,"el area del triangulo es  "+area  );
         JOptionPane.showMessageDialog(null,"el perimetro del triangulo es  "   +perimetro);
     }
}

Termina la clase Triangulo


Comienza la clase Solución


package ORTIZ;

public class Solucion
{
    public static void main(String []largs)
    {
     //declarando los objetos
       Triangulo t1; 
       Rectangulo r1,r2,r3;
       //creando los objetos
       t1=new Triangulo();
       r1=new Rectangulo();
       r2=new Rectangulo();
       r3=new Rectangulo();
       
       t1.captura();
       t1.calculararea();
       t1.calcularperimetro();
       t1.imprimir();
       
       
       r1.captura();
       r1.calculararea();
       r1.calcularperimetro();
       r1.imprimir();
       
       r2.captura();
       r2.calculararea();
       r2.calcularperimetro();
       r2.imprimir();
       
       r3.captura();
       r3.calculararea();
       r3.calcularperimetro();
       r3.imprimir();
               
    }
    
}

Termina la clase solución



Conclusión

En esta primera practica aprendimos a realizar diagramas de UML, realizamos el programa en java de manera sencillo, rápida y mas fácil.
Ademas analizamos la manera eficaz de aplicar la programación orientada a objetos(POO) en la solución de problemas de la vida real y facilitar los labores cotidianos y profesionales.

Autores

Xavier Gonzalez, Manuel Mendez y Saulo Ortiz