Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
A continuación se muestra un programa desarrollado en Visual Basic 2005 que utiliza funciones
recursivas para resolver ejercicios comunes de programación.
EJERCICIOS
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
EJERCICIO 4
FORMULARIO DE INICIO
a^n RECURSIVAMENTE
FIBONACCI RECURSIVAMENTE
MCD RECURSIVAMENTE
MCD RECURSIVAMENTE
COMBINATORIO RECURSIVAMENTE
CÓDIGO DEL PROGRAMA
Module Module1
Public Function potencia(ByVal a As Integer, ByVal n As Integer) As Integer
'Esta función recursiva es para calcular el resultado de a^n.
If n = 0 Then 'Todo número elevado a la 0 da como resultado 1.
Return 1
Else
Return a * potencia(a, n - 1) 'Aplicando recursividad.
End If
End Function
Public Function combinatorio(ByVal n As Integer, ByVal r As Integer) As Integer
'Esta función recursiva es para calcular el combinatorio, por ejemplo "8C3=56", que
significa que 8 elementos tomando 3 a la vez da un combinatorio de 56 posibilidades.
If (r = 0) Or (r = n) Then
Return 1
Else
If (r = 1) Then
Return n
Else
Return combinatorio(n - 1, r) + combinatorio(n - 1, r - 1)
'Aplicando recursividad.
End If
End If
End Function
Public Function fibonacci(ByVal numero As Integer) As Integer 'Esta función
recursiva es para calcular el fibonacci de un número dado.
If (numero = 0) Or (numero = 1) Then
Return 1
Else
Return fibonacci(numero - 1) + fibonacci(numero - 2) 'Aplicando
recursividad.
End If
End Function
Public Function mcd(ByVal numero1 As Integer, ByVal numero2 As Integer) As
Integer
If (numero2 = 0) Then
Return numero1
Else
Return mcd(numero2, numero1 Mod numero2) 'Aplicando recursividad.
End If
End Function
End Module
(FORMULARIO DE INICIO)
(FORMULARIO DE a^n)
(FORMULARIO COMBINATORIO)
(FORMULARIO FIBONACCI)
Como se puede observar, las funciones recursivas permiten realizar interesantes y útiles
operaciones con unas pocas líneas de código. Programar recursivamente ofrece excelentes beneficios,
especialmente en cuanto al ahorro de código para tener una programación ordenada y simplificada sin
necesidad de utilizar tantas variables ni complicar la programación de aplicaciones.
Jaime Montoya
webmaster@jaimemontoya.com
www.jaimemontoya.com
Santa Ana, 5 de febrero de 2008
El Salvador