domingo, 8 de septiembre de 2013

Practica 2.- Uso de la Recursividad para calcular el factorial de un numero


¿Recursividad?
Es una técnica que existe para resolver problemas a través de llamadas al mismo problema.

Nota: con la recursividad puede sustituir a los ciclos pero no son muy eficientes.


  • Practica 2.- calcular el factorial de un numero 

  1. Diagramas UML




2.- Aquí comienza la clase Factorial:

public class Factorial 

{

private int numero;

   private int fat;



    public int getNumero() {

        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public int getFat() {
        return fat;
    }

    public void setFat(int fat) {
        this.fat = fat;
    }
           public void captura ()
           {
               numero=Integer.parseInt(JOptionPane.showInputDialog("Numero:  "));
           }

           public int calcularFactorial(int n)
           {
              if(n==1 || n==0)
              {
                  return 1;
           }
           else
           {
               fat= n*calcularFactorial(n-1);
               return fat;

           }
         }

          public void imprimirFactorial()
          {
              JOptionPane.showMessageDialog(null,"El Factorial es: " +fat);
          }
}

3.- Aquí comienza la clase solución:

public class Solucion_factorial

{

    public static void main(String []arg)

    {

        Factorial n;

        n=new  Factorial();

        int numVeces;

        numVeces=Integer.parseInt(JOptionPane.showInputDialog("Factorial a calcular"));
        for(int i=1; i<numVeces; i++)
        {
            //n.captura();
        n.calcularFactorial(i);
        n.imprimirFactorial();
    }
    }
}

* Aquí ya comienza a correr el programa pidiendo el factorial a calcular.




* Aquí se muestra como ya se lleva a cabo el método calcular factorial. 







Conclusión 


La recursividad es una técnica muy útil en el ámbito de los lenguajes de programación orientada a objetos  ya que tiene sus ventajas y desventajas ya que puede sustituir a los ciclos pero pues al mismo tiempo pueden ser no muy eficientes.

Publicado por: Dickner Steven Barrios & Yenifer Mina Castillo

No hay comentarios:

Publicar un comentario