9. Uso de Ciclos en Otros Contextos

Aunque hasta este momento sólo hemos mostrado las instrucciones iterativas como una manera de manejar información que se encuentra en estructuras contenedoras, dichas instrucciones también se usan muy comúnmente en otros contextos. En el ejemplo 17 mostramos su uso para calcular el valor de una función aritmética.

Ejemplo 18

Objetivo: Mostrar el uso de las instrucciones iterativas en un contexto diferente al de manipulación de estructuras contenedoras.

En este ejemplo presentamos la manera de escribir un método para calcular el factorial de un número. La función factorial aplicada a un número entero n (en matemáticas a ese valor se le representa como n!) se define como el producto de todos los valores enteros positivos menores o iguales al valor en cuestión. Planteado de otra manera, tenemos que:

  • factorial( 0 ) es igual a 1.
  • factorial( 1 ) es igual a 1.
  • factorial( n ) = n * factorial( n – 1 ).

Por ejemplo, factorial(5) = 5 * 4 * 3 * 2 * 1 = 120

Si queremos construir un método capaz de calcular dicho valor, podemos utilizar una instrucción iterativa, como se muestra a continuación.

package  uniandes.cupi2.matematicas;
public class Matematica
{
    public  static int factorial( int pNum  )
    {
        int acum = 1;

        if( pNum > 0 )
        {   
            for( int i = 1; i <= num; i++ )
            {
                acum = acum * i;
            }
        }        
    }
    return acum;    
}

El método lo declaramos de manera especial (static) y su modo de uso es como aparece más
abajo en este mismo ejemplo.

El primer caso que tenemos es que el valor del parámetro sea 0. La respuesta en ese caso es 1.
Hasta ahí es fácil.

En el caso general, debemos multiplicar todos los valores desde 1 hasta el valor que recibimos
como parámetro e ir acumulando el resultado en una variable llamada "acum". Al final el método retorna dicho valor.

Esta solución no es otra que el patrón de recorrido total aplicado a la secuencia de números. Aunque no estén almacenados en un arreglo, se pueden imaginar uno después del otro, con el índice recorriéndolos de izquierda a derecha. Este uso de las instrucciones iterativas no tiene una teoría distinta a la vista en este capítulo.

int fact = Matematica.factorial( i );

La llamada del método se hace utilizando esta sintaxis. Como es una función aritmética que no
está asociada con ningún elemento del mundo, debemos usar el nombre de la clase para hacer la invocación.

results matching ""

    No results matching ""