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

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

Publicado por entreunosyceros
Publicado el: Última actualización:

AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.

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 un comentario

* Al utilizar este formulario, aceptas que este sitio web almacene y maneje tus datos.

Resumen de privacidad
cookies entreunosyceros

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudarnos a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal de ningún tipo.

Tienes toda la información sobre privacidad, derechos legales y cookies en nuestra página sobre la política de privacidad o en la página sobre nuestra política de cookies.

Cookies necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.

Cookies de terceros

Esta web utiliza las siguientes cookies adicionales:

- Mailchimp: Recordar si ya estás suscrito al boletín de noticias y sino ofrecértelo al salir.

- Accesibilidad: Para saber tus ajustes de accesibilidad en cada visita.

- Comentarios: Saber si has leído y aceptado nuestra política de privacidad a la hora de dejar un comentario en la web.

- Google Analytics: Localización para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

- Goggle Adsense: Anuncios personalizados según tu geolocalización y preferencias.

Dejar estas cookies activadas nos permite mejorar nuestra web.

Adblock Detectado!!

Ayúdanos deshabilitando la extensión AdBlocker de tu navegador para visitar esta web.
Si no sabes hacerlo en Chrome, consulta el siguiente enlace. Si utilizas Firefox, puedes consultar este otro enlace.
Esto mejorará tu experiencia en este sitio web.