[SOLUCIONADO] C# - Recursividad: Conceptos básicos

Iniciado por Noporfavor, Agosto 30, 2016, 08:24:36 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Agosto 30, 2016, 08:24:36 AM Ultima modificación: Agosto 30, 2016, 01:58:04 PM por S@nde
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
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

Agosto 30, 2016, 08:34:48 AM #1 Ultima modificación: Agosto 30, 2016, 08:36:29 AM por Hu3c0
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...!


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.

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.
RollthBuen hacker mejor No tienes permitido ver enlaces. Registrate o Entra a tu cuenta/No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

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.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta


Agosto 30, 2016, 01:11:50 PM #5 Ultima modificación: Agosto 31, 2016, 03:43:00 AM por Noporfavor
Hola de nuevo,
la duda del codigo esta resuelta. Pero tengo un ultimo codigo del mismo tema todavia.

Se los paso:

Código: text

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:

Código: text

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


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

Gracias y saludos


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.
RollthBuen hacker mejor No tienes permitido ver enlaces. Registrate o Entra a tu cuenta/No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Buena rollth,
que torpe de mi parte verlo complicado. Gracias!!!