Inicio Apuntes FPApuntes DAW Ejercicio Básico 25 PHP: Crea una Clase que calcule el factorial de un número entero
php logo

Ejercicio Básico 25 PHP: Crea una Clase que calcule el factorial de un número entero

por entreunosyceros
Publicado el: Última actualización:

El ejercicio de hoy sobre PHP trata sobre como crear clases que devuelvan un valor. Se trata de crear una clase que calcule el factorial de un número entero que será introducido en el código. Esta pequeña aplicación se dispondrá en dos archivos. Uno que será index.php y la clase irá incluída dentro de un directorio llamado clase.

Se omiten las comprobaciones de errores y demás cosas, ya que por el momento eso no lo controlo del todo … y alguna vez me han dicho, cíñete a lo que te piden en la pregunta.

Por si alguien no lo sabe, el factorial de un entero positivo n, el factorial de n o n factorial se define en principio como el producto de todos los números enteros positivos desde 1 (es decir, los números naturales) hasta n. Por ejemplo:

5 ! = 1 × 2 × 3 × 4 × 5 = 120.

La operación de factorial aparece en muchas áreas de las matemáticas, particularmente en combinatoria y análisis matemático. De manera fundamental el factorial de n representa el número de formas distintas de ordenar n objetos distintos (elementos sin repetición). Este hecho ha sido conocido desde hace varios siglos, en el siglo XII por los estudiosos hindúes.

La función factorial se representa con un signo de exclamación “!” detrás de un número. Esta exclamación quiere decir que hay que multiplicar todos los números enteros positivos que hay entre ese número y el 1.

calcular el factorial de un número con PHP

Esta función también se puede extender a números no naturales manteniendo sus propiedades fundamentales, pero se requieren matemáticas avanzadas, particularmente del análisis matemático.

Código de una clase que calcule el factorial de un número entero

El código es el siguiente …

Archivo: index.php

    <?php
    require_once("clase/factorial.php");
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Práctica 25</title>
        </head>
        <body>
            <?php
            //Inicializamos la variable con el número del que queremos saber el factorial
            $fac=6;
            //Creamos una instancia de la clase
            $num = new Factorial($fac);
            ?>
            <!--imprimimos el número y su factorial que nos devuelve la función _toString()-->
            <table border="1" align="center">
                <tr>
                    <td align="center">
                        Número
                    </td>
                    <td align="center">
                        Operación
                    </td>
                    <td align="center">
                        Factorial
                    </td>
                </tr>
                <tr>
                    <td  align="center"><?php
                    //Imprimos el número del que queremos  calcular el factorial
                    echo $fac
                    ?></td>
               
                    <td  align="center">!=</td>
                   
                    <td  align="center"><?php
                    //Imprimos el resultado que devuelve la función factorial
                    echo $num->factorial()
                    ?></td>
                </tr>  
                     
            </table>
        </body>
    </html>

Archivo: clase/factorial.php

    <?php
    //Clase clase/factorial.php del ejercicio25
     
    /**
     * Añade el método para calcular el Facotial a un número
     */
    class Factorial {
     
        /**
         *  Constructor que trae el numero del index.php
         */
        public function __construct($num) {
            $this->numero = $num;
        }
     
        /**
         * Función para calcular el factorial.
         * El factorial de un número se define como el producto de todos
         * los números enteros positivos desde 1
         * (es decir, los números naturales) hasta el número del que queremos
         * saber su factorial (ejemplo, el factorial de 4 sería 24).
         *
         */
        public function factorial() {
            //guardamos el número que llega desde el index dentro de $numero
            $numero = $this->numero;
            //iniciamos $fact en 1, y se recorre cada uno de los valores de $numero
            //descontando uno de dicho valor en cada iteración hasta llegar a 1.
            for ($fact = 1; $numero > 1; $numero--) {
                //multiplicamos cada uno de los valores de número por el contenido de $fact
                $fact = $fact*$numero; //
            }
            //se devuelve el $fact
            return $fact;
        }
     
    }


Esta quizás no sea la forma más elegante de calcular un factorial utilizando el lenguaje PHP, pero funciona correctamente.


También te puede interesar ...

Deja tu comentario

* Al utilizar este formulario, acepta que este sitio web almacene y maneje sus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.