Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/03/2013, 06:45
Avatar de El_Metallick
El_Metallick
 
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años
Puntos: 16
Respuesta: Calculo del factorial con la estructura for

Veamoslo paso a paso.

Lo primero que se debe saber es que es el factorial de un número. por definición matemática el favtorial se define según la siguiente fórmula:

F(x) = x*F(x-1)

lo cual para un caso por ejemplo de x=3 sería

F(3) = 3 * F(2)
F(2) = 2 * F(1)
F(1) = 1

(acá no recuerdo bien la condición de término, recuerdo que por regla F(0)=1 pero no recuerdo si se termina en F(0) o en F(1))

Según el ejemplo anterior y reemplazando de abajo hacia arriba tendremos:

F(3) = 3 * 2 * 1 = 6 ==> 3! = 6

Teniendo claro el concepto matemático, podemos proceder a estudiar el código que presentas:

En la primera línea simplemente se solicita al usuario que ingrese el número del cual quiere obtener el factorial

En la segunda línea, tenemos un acumulador (muy usado normalmente en la programación, como cont para la suma e inicia en 0 (el neutro aditivo) y acum para la multiplicación e inicia en 1 (el neutro multiplicativo)

Luego tenemos un for (un ciclo) que repite para todo 1<=i<=N (donde N es el número que se le solicitó al usuario en la primera línea) la operación

resultado *= i

Esto es utilizado en algunos lenguajes de programación como una forma abreviada de escribir

resultado = resultado*i

Finalmente, se envía un alert con el resultado de la operación y así mostrarlo al usuario.

Veamos una traza de este ciclo para un N=3 (mismo caso usado en la definición matemática)

1º iteración del ciclo tenemos:
resultado = 1 (definido en la segunda línea de código)
i = 1
resultado = resultado * i = 1 * 1 = 1

2º iteración del ciclo tenemos:
resultado = 1 (de la iteración anterior)
i = 2 (segunda iteración incrementa el valor de i)
resultado = resultado * i = 1 * 2 = 2

3º iteración del ciclo tenemos:
resultado = 2 (de la iteración anterior)
i = 3 (tercera iteración incrementa nuevamente el valor de i)
resultado = resultado * i = 2 * 3 = 6

Se sale del ciclo en cuanto a que 4(incremento del i)>3
Se imprime por pantalla el contenido de resultado, es decir, el valor 6 correspondiente a 3!

Espero mi explicación te aclare un poco tu duda.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!