Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Noporfavor en Agosto 30, 2016, 08:24:36 AM

Título: [SOLUCIONADO] C# - Recursividad: Conceptos básicos
Publicado por: Noporfavor en Agosto 30, 2016, 08:24:36 AM
Hola,

queria implementar un método recursivo que imprima en forma descendente de 5 a 1 de uno en uno. Me encontre en internet con esto:


Código (csharp) [Seleccionar]
public class Recursividad {

    void imprimir(int x) {
        if (x>0) {
            System.out.println(x);
            imprimir(x-1);
        }   
    }
   
    public static void main(String[] ar) {
        Recursividad re=new Recursividad();
        re.imprimir(5);
    }


Pero tengo un problema:
Que significa System.out.println?

Gracias y saludos
Título: Re:C# - Recursividad: Conceptos básicos
Publicado por: Hu3c0 en Agosto 30, 2016, 08:34:48 AM
Pues
System.out.println(' Lo que hace es imprimir por la consola de tu preferencia Netbeans o Eclipse o IntellyJ lo que pongas entre paréntesis');

System.out.println("El código que muestras es para Java");

System.out.println("En tu caso imprime el valor de x que es una integer");

System.out.println("Por otro lado la recursividad es una función que se llama asi misma");


System.out.println("En el código que muestras se llama de esta manera imprimir(x-1); pasando como parámetro x-1 " );

System.out.println('"Con lo cual cuando llegué a cero ya no imprimirá el valor de x " );

Espero haber aclarado tu duda brother...!


Título: Re:C# - Recursividad: Conceptos básicos
Publicado por: Noporfavor en Agosto 30, 2016, 08:42:56 AM
Ahhh muchisimas gracias!!! Hermano

Creio que era para C#.
Entonces si lo quiero hacer para C# creeria que tendria que reemplazar el System.out.println por Console.Write.
Título: Re:C# - Recursividad: Conceptos básicos
Publicado por: rollth en Agosto 30, 2016, 09:06:29 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Ahhh muchisimas gracias!!! Hermano

Creio que era para C#.
Entonces si lo quiero hacer para C# creeria que tendria que reemplazar el System.out.println por Console.Write.

La lógica sería la misma, solo tendrías que cambiar la sintaxis.
Doy el tema por resuelto.

Saludos.
Título: Re:C# - Recursividad: Conceptos básicos
Publicado por: Hu3c0 en Agosto 30, 2016, 09:08:18 AM
Efectivamente amigo así es tienen tanta similitud los códigos de ambos lenguajes ¡Yo! no tengo ni idea de C# y cuando leo códigos en la mayoría de los casos los comprendo a la perfección.

Saludos y cualquier cosa que podamos ayudar aquí estamos yo me considero un aprendiz y me gusta ayudar porque siempre se aprenden cosas nuevas cuando uno ayuda.
Título: Re:[SOLUCIONADO] C# - Recursividad: Conceptos básicos
Publicado por: Noporfavor en Agosto 30, 2016, 01:11:50 PM
Hola de nuevo,
la duda del codigo esta resuelta. Pero tengo un ultimo codigo del mismo tema todavia.

Se los paso:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Recursividad6
{
    class Recursivdad
    {
        int[] vec = { 312, 614, 88, 22, 54 };

        void Ordenar(int[] v, int cant)
        {
            if (cant > 1)
            {
                for (int f = 0; f < cant - 1; f++)
                {
                    if (v[f] > v[f + 1])
                    {
                        int aux = v[f];
                        v[f] = v[f + 1];
                        v[f + 1] = aux;
                    }
                }
                Ordenar (v, cant - 1);
            }
        }

        void Procesar()
        {
            Ordenar(vec, vec.Length);
        }

        void Imprimir()
        {
            for (int f = 0 ; f < vec.Length ; f++)
                Console.WriteLine (vec [f] + "  ");
            Console.WriteLine();
        }


   
        static void Main(string[] args)
        {
            Recursivdad r = new Recursivdad();
            r.Imprimir();
            r.Procesar();
            r.Imprimir();
            Console.ReadKey();
        }
    }
}


Bueno por ser tan complicado (para mi)(hasta el mas complicado con el que me tope), tengo muchas preguntas. La primera esta en este metodo:


void Procesar()
        {
            Ordenar(vec, vec.Length);
        }


En vec se pasa como parametro estos elementos?: { 312, 614, 88, 22, 54 }

Gracias y saludos

Título: Re:[SOLUCIONADO] C# - Recursividad: Conceptos básicos
Publicado por: rollth en Agosto 30, 2016, 01:48:43 PM
Sí, mete ese vector, después dentro de la función vuelve a llamar a la misma función y entra el mismo vector pero con los números en otro orden, ese código si no has programado nunca puede ser dificil de entender, hay formas de ordenar mas sencillas que no llevan a cabo recursividad.
Título: Re:[SOLUCIONADO] C# - Recursividad: Conceptos básicos
Publicado por: Noporfavor en Agosto 31, 2016, 03:43:40 AM
Buena rollth,
que torpe de mi parte verlo complicado. Gracias!!!