viernes, 2 de septiembre de 2011

Como Programar en Java: Ejercicio 4.38

Aquí esta el ejercicio 4.38 de Como Programar en Java séptima edición.


package com.jlm.ccb.ejercicios.capitulo4;

/**
 * Clase encargada de realizar distintos calculos
 * utilizando el factorial.
 * Ejercicio 4.38
 * @author LorettoTG
 * @version 1.0
 *
 */
public class OperacionesFactorial {
    /**
     * Método encargado de calcular el factorial de
     * un número positivo utilizando un método iterativo.
     * Si se ingresa un número negativo regresara un -1 como
     * resultado.
     * @param entero int Con el entero a calcular su factorial.
     * @return resultado int Con el factorial calculado.
     */
    public int calcularFactorial (int entero) {
        /**
         * Contiene el contador utilizado como condición en el
         * ciclo while para calcular su factorial.
         */
        int contador = 1;
        /**
         * Almacena el resultado del factorial, por ser multiplicaciones
         * lo que se utilizara se inicializa en 1.
         */
        int resultado = 1;

        if (entero >= 0) {
            //En el caso del ciclo while: Primero se evalúa la condición
            //de entrada si es verdadera ejecuta las sentencias en su
            //cuerpo, luego vuelve a verificar la condición de entrada y
            //hasta que sea falsa sale del ciclo.
            while (contador <= entero) {
                resultado = resultado * contador;
                contador++;
            }
            return resultado;
        } else {
            return -1;
        }
    }

    /**
     * Método encargado de estimar el valor de la constante
     * matemática e.
     * @param iteraciones int Con el número de iteraciones que
     * realizara el método.
     * @return resultado double Con la aproximación de la
     * constante matemática e.
     */
    public double estimarE(int iteraciones) {
        /**
         * Contiene el resultado de la estimación de
         * la constante matemática e.
         */
        double resultado = 0;

        /**
         * Contiene el contador utilizado como condición en el
         * ciclo while para calcular la constante matemática e.
         */
        int contador = 1;

        //En el caso del ciclo while: Primero se evalúa la
        //condición de entrada si es verdadera ejecuta las
        //sentencias en su cuerpo, luego vuelve a verificar
        //la condición de entrada y hasta que sea falsa sale
        //del ciclo.
        while (contador < iteraciones) {
            resultado += (double) contador/(calcularFactorial(contador));
            contador++;
        }
        return resultado;
    }

    /**
     * Método encargado de calcular e a la x.
     * @param iteraciones int Con el número de iteraciones que
     * realizara el método.
     * @param numero double Que representa a 'x'.
     * @return resultado double Con la aproximación de la
     * constante matemática e.
     */
    public double estimarEaLa(int iteraciones, double numero) {
        /**
         * Contiene el resultado de elevar e a la x.
         */
        double resultado = 1;

        /**
         * Contiene el contador utilizado como condición en el
         * ciclo while para calcular e a la x.
         */
        int contador = 1;

        //En el caso del ciclo while: Primero se evalúa la
        //condición de entrada si es verdadera ejecuta las
        //sentencias en su cuerpo, luego vuelve a verificar
        //la condición de entrada y hasta que sea falsa sale
        //del ciclo.
        while (contador < iteraciones) {
            resultado += (double) Math.pow(numero, contador)
                    /(calcularFactorial(contador));
            contador++;
        }
        return resultado;
    }

    /**
     * Punto de entrada a la clase y a la aplicación.
     * @param args matriz de argumentos de cadena.
     */
    public static void main(String[] args) {
        //El operador new es el encargado de crear instancias de
        //una clase, es decir los objetos que tienen las características
        //de la clase. El operador new de Java es capaz de reservar la
        //memoria para un objeto de este tipo sabiendo los atributos que
        //tiene según la definición de la clase.
        OperacionesFactorial operacion = new OperacionesFactorial();
        System.out.println(operacion.calcularFactorial(10));
        System.out.println(operacion.estimarE(15));
        System.out.println(operacion.estimarEaLa(20, 2));
    }
}

No hay comentarios:

Publicar un comentario