Acceder Registrarme

FUNDAMENTOS DE PROGRAMACIÓN CON C#: 015-RECURSIVIDAD


Ahora veamos el tema de recursividad, lo que realmente puede ser interesante e importante para la implementación de muchos tipos de trabajo.

Autor: Kevin Arias (Ver todos sus post)

C# C Sharp Fundamentos de programación Recursividad Métodos Funciones

Fecha de publicación: 2016-08-29 11:40:19

Ayúdanos con el arduo trabajo que realizamos.
[FUNDAMENTOS DE PROGRAMACIÓN CON C#] FUNDAMENTOS DE PROGRAMACIÓN CON C#: 015-RECURSIVIDAD

Es cierto que la recursividad en gran parte puede ser reemplazado por un flujo de trabajo normal basado en bucles, sin embargo, existen casos en los que son necesarios usar netamente el tema de recursividad por la manera en que esto trabaja que consiste generalmente en la instancia de un método dentro de si misma con lo que el proceso se adentra hasta el último punto y empieza a resolver la operación asignada de forma recursiva en la inversión de esta.

Seguidamente les dejo con el código que se aplica en este ejemplo para el manejo de la suma de los primeros "n" números naturales.

El ejemplo se hizo con dos opciones; uno mediante la resolución de bucles y otro mediante la aplicación de recursividad por lo que en el siguiente código existe la representación de ambos casos.

Clase MiClase.cs

namespace AppFirst
{
    public class MiClase
    {
        public int operarBucle(int n)
        {
            int resultado = 0;

            for (int i = n; i > 0; i--)
            {
                resultado += i;//resultado=resultado+i;
            }

            return resultado;
        }

        public int operarRecursividad(int n)
        {
            if (n == 1)
            {
                return 1;
            }

            return operarRecursividad(n - 1)+n;
        }

        /*
            operarRecursividad(3)=operarRecursividad(2)+3
                                  operarRecursividad(2)=operarRecursividad(1)+2
                                                        operarRecursividad(1)=1

        

            operarRecursividad(3)=3+3
                                  operarRecursividad(2)=1+2=3
                                                        operarRecursividad(1)=1
        */
    }
}

Clase principal Program.cs

using System;

namespace AppFirst
{
    public class Program
    {
        public static void Main(string[] args)
        {
            MiClase miClase = new MiClase();

            Console.WriteLine(miClase.operarBucle(190));
            Console.WriteLine(miClase.operarRecursividad(190));

            Console.ReadLine();
        }
    }
}

Como pueden ver en el código anterior, existe la posibilidad de alternar la solución al ejercicio planteado de dos maneras tal como se mencionó al principio del post.

Para mayor información de este ejemplo, les dejo a continuación con un video donde se explica a detalle cada aspecto de este tema.




INFORMACIÓN SOBRE EL AUTOR DEL ARTÍCULO
KEVIN ARNOLD ARIAS FIGUEROA (SOFTWARE ARCHITECT - CODIDEEP E.I.R.L.): Profesional en tecnologías de la información con más de 10 años de experiencia en desarrollo de software empresarial, con amplios conocimientos en manejo de arquitecturas de software de escala vertical y horizontal, gestión de proyectos, liderazgo de equipos y dominio en modelado de procesos a gran escala.


  • Debes estar logueado para realizar comentarios