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
Síguenos en: Facebook Sobre aulaClic Política de Cookies