Recursividad
en c# y Vb.net
Por Diógenes Amaury MS
Debemos
iniciar por definir, lo que significa recursividad, es cuando un subprograma o
función puede llamarse a sí misma. La recursividad es una alternativa a la
iteración o repetición (el uso de bucles), existen numerosas situaciones en la
que la recursividad es una solución
simple y natural que en caso contrario sería difícil de resolver.
Por esta
razón se puede decir que la recursividad es una herramienta potente y útil en
la resolución de problemas que tengan naturaleza recursiva y, por ende, en la
programación.
Veamos de
una forma más clara estos conceptos en la creación de un programa que determine
el factorial de un número dado, y el cual será digitado en un textbox
En nuestro
formulario, insertamos dos textbox, uno
llamado TXTNUMERO y otro llamado TXTFACTORIAL,
agregamos un botón, que será el que contendrá el evento para llamar a la
función recursiva que determina el factorial de un número N.
Código para
c#
Creado la
función recursiva
int Factorial(int n)
{
if ((n == 0)
|| (n == 1))
return (1);
else
return (n *
Factorial(n - 1));
}
Como pueden
notar, en la codición estoy preguntado si el numero es 0 ó 1 y en tal caso
retorno 1 a función Factorial(el or en c# es representado por este signo || ),
en caso contrario multiplico a n por la misma función factorial, y es aquí
donde se aplica la recursividad, ya que la misma función factorial se llama
dentro de ella.
En el Botón
btncalcular escribo el código para llamar a la función recursiva Factorial.
private void btncalcular _Click(object
sender, EventArgs e)
{
TXTFACTORIAL.Text = Convert.ToString(Factorial(Convert.ToInt32(TXTNUMERO.Text)));
}
Código para vb.net
Function Factorial(ByVal n As Integer) As Integer
If n = 0 Or n = 1 Then
Factorial = 1
Else
Factorial = n * Factorial(n - 1)
End If
End Function
en el botón escribimos este código para llamar la función factorial y mostrarlar en el textbox TXTFACTORIAL.
TXTFACTORIAL.Text
= Factorial(Val(TXTNUMERO.Text))
Cuando la vida te de la espalda, difruta viéndole sus glúteos!!!.
DM.