Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función para la Descomposición Factorial de un Número con recursividad

| 1 Comment

Esta Función realiza la descomposición factorial de un número, se sabe que todo número es el producto de otros números llamados números primos.

La función tiene la forma siguiente Factores(valor), donde el valor es el parámetro de ingreso, el cual será descompuesto por su factores; el resultado sera una cadena donde muestra todos los factores del número ingresado.

Código de la función Factores (VBA)

(Para mayor visualización de la imagen, hacer click en la misma)

Como se observa en la figura, la función principal Factores, utiliza una función auxiliar Menordivisor, el cual devuelve el menor número(mayor de 1), por el cual se puede dividir un número dado, esta función es de ayuda al momento de realizar las divisiones simultaneas del número que se quiere descomponer en factores.

En la función Menor divisor se utiliza el bucle Do – Loop Until, que se interrumpe cuando se ubica el menor divisor, el programa detecta cuando es un divisor si el resto de la división es cero, con la ayuda del operador Mod que devuelve el resto de una división

La  función principal Factores, tiene la particularidad que se llama a si misma(recursiva), hasta que el resultado de la división del número y su menor divisor se igual a 1 (valor1 = 1), en este momento va a construir la cadena con todos los factores.

Depuración

Valor = 6  parametro ingresado en este ejemplo

–          Valor  = 1  ?        NO         ‘en este momento Valor = 6

–          Entonces realiza

  • Valor1 = 6 / 2(valor obtenido por la función menor divisor) = 3  ‘ es el valor resultante del numero entre su menor divisor, que sera el valor de  entrada cuando se llame nuevamente a la función.
  • Factores = “2”(el menor divisor) + “*” + =Factores(3)  ‘llama nuevamente a la funcion                 [A]
    • Valor  = 1  ?       NO         ‘en este momento Valor = 3
    • Entonces realiza
    • Valor1 = 3 / 3(valor obtenido por la función menor divisor) = 1 ‘ es el valor resultante del numero entre su menor divisor, que sera el valor de  entrada cuando se llame nuevamente a la función.
    • Factores = “3”(el menor divisor) +  = Factores(1)  ‘llama nuevamente a la funcion          [B]
    • Valor = 1  ?        SI       ‘en este momento Valor = 1
      • Factores = “”   ‘ya no llama nuevamente a la función y retorna valores                        [C]
      • En Este momento ya no se puede dividir el número y construirá la cadena con los valores calculados
      • En [B] retornaria Factores = “3”
      • En [A] retornaria el valor de “2” +”*” +”3”
      • L a función devolveria 2 * 3

 Elaborado por Germán Vara O.

One Comment

  1. Muy buena explicación y entendible.

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5