lunes, 23 de diciembre de 2013

Recursividad



Saludos Amig@s:
En el día de hoy tocare el tema de Recursividad, para complacer algunos de mis lectores que me han pedido alguna explicación sobre este particular.
Pues bien, antes de adentrarnos en lo que es la recursividad, debemos decir, que en programación se utilizan los ciclos repetitivos, como su nombre lo indica, nos permite repetir n cantidad de veces una o varias acciones. Y es exactamente ese, el objetivo de la recursividad, pero sin utilizar ciclos repetitivos, tales como for, do while, etc.
En pocas palabras Recursividad, es la capacidad que tiene un método o function para llamarse a sí misma.
Veamos un ejemplo:
Imaginemos que deseamos imprimir los número del 24 al 1, es decir, que iniciando en 24 y restando 1 a cada número por lo que el resultado debe ser algo como esto:
24
23
22
21
20
19
18
  .
  .
  .
1
Pues bien esto lo podemos hacer perfectamente con un for de la siguiente manera.
       class dmRecursividad
       {
 
        
        static void Main(string[] args)
        {
            for (int n=24;n>0;n--)
              {
                  Console.WriteLine(n + " ");
              }
            Console.ReadKey();
           
        }






Ahora veremos cómo logramos exactamente lo mismo utilizando un método recursivo, sin la necesidad de utilizar un ciclo for.
    class dmRecursividad
    {
       void imprimir(int x)
        {
        if (x>0)
        {
            Console.WriteLine(x + " ");
           imprimir(x-1);
        }    
       }
        static void Main(string[] args)
        {
            dmRecursividad re = new dmRecursividad();
            re.imprimir(24);
            Console.ReadKey();
           
        }


Para el ejemplo anterior declaramos un método llamado imprimir, el cual recibe un entero  X y luego la función se llama a sí misma y va restando 1 al resultado.
Esto es un ejemplo sencillo, pero puede servir de base para que ustedes sigan con este interesante tema.


1 comentario:

  1. Dentro de los ejercicios mas interesantes con recursividad estan: los numeros Fibonacci, Multiplicacion de sumas sucesivas, Division de restas sucesivas, y uno muy interesante el triangulo de Khayyam

    ResponderEliminar