Unidad 4. VBA. Más estructuras (XVI)



Ejemplo 28

Escriba un procedimiento para resolver problemas de conteo o enumeración. El procedimiento debe tener una rutina principal donde se decida qué tipo de técnica se usará.

Solución

El procedimiento principal se llamará                                     : MainTc

La función que calcula el factorial se llamará                        : Factorial

La función que calcule las permutaciones se llamará           : Permut

La función que calcule las permutaciones con repetición:    : PermutRep

La función que calcule las combinaciones se llamará           : Combinat

La rutina principal se encargará de pedir que se ingrese el código de operación a realizar. 1 = Factorial; 2 = Permutaciones; 3 = Permutaciones con repetición; 4 = Combinaciones

A continuación pedirá que se ingrese el o los valores según la operación seleccionada.

La sentencia Select Case se encarga de decodificar la operación deseada.

Observe cómo se pide el ingreso de los datos, dentro de los argumentos que se pasan a la función.

A continuación se da el código:

Sub MainTc()

Code = InputBox("Digite el numeral deseado: " + Chr(13) + Chr(10) _

+ "1. Factorial F(n)" + Chr(13) + Chr(10) + "2. Permutaciones P(n,m)" + Chr(13) + Chr(10) _

+ "3. Permutaciones con repetición Pr(n,m)" + Chr(13) + Chr(10) + "4. Combinaciones C(n,m)")

Select Case Code

    Case 1:

        Result = Factorial(InputBox("Factorial de: "))

    Case 2:

    Result = Permut(InputBox("Permutaciones de n = "), InputBox("tomados de m = "))

    Case 3:

    Result = PermutRep(InputBox("Permut. con repet. de n = "), InputBox("tomados de m = "))

    Case 4:

        Result = Combinat(InputBox("Combinaciones de n = "), InputBox("tomados de m = "))

End Select

MsgBox Result

End Sub

Function Factorial(n)

Factorial = n

If Factorial = 1 Then

Else

    Factorial = Factorial * Factorial(n - 1)

End If

End Function

Function Permut(n, m)

If n >= m Then

    Permut = Factorial(n) / Factorial(n - m)

Else

    MsgBox "Error en datos..."

End If

End Function

Function PermutRep(n, m)

PermutRep = n ^ m

End Function

Function Combinat(n, m)

If n >= m Then

    Combinat = Factorial(n) / (Factorial(m) * Factorial(n - m))

Else

    MsgBox "Error en datos..."

End If

End Function

Noviembre-2010
Pág. 4.16

Atrás  Inicio  Adelante





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies