Foro de elhacker.net

Programación => Java => Mensaje iniciado por: bengy en 27 Marzo 2011, 19:28 pm



Título: ejercicios basicos para recursividad en java
Publicado por: bengy en 27 Marzo 2011, 19:28 pm

                  EJERCICIOS EN POO Y RECURSIVIDAD EN JAVA


aka les dejo para que lo analicen estos codigos de recursividad
se trata de recursividad por la forma de deduccion

Código:

public int cancer(int n){
   int res=0;
    if(n==1){
        res=1;
    }
    else{
        res=n+cancer(n-1);
    }
return res;
}




Código:
public int cancer(int n ){
      int res=0;
        while(n>0){
       res=res+n;
       n=n-1;
        }
        return res;
    }

Código:
public int cancer2(int n){
int res=0;
if(n==1){
res=1;
}
else{
res=cancer2(n-1)+n+n-1;
}
return res;
}

espero que les aya interesado
si no entienden me preguntan sus dudas porfa
o mas bien poner algun metodo aca en este tema y asi colaborarnos entre colegas
jajaj bye y suerte


Título: Re: ejercicios basicos para recursividad en java
Publicado por: Tryptophan en 28 Marzo 2011, 02:06 am
La función cancer devuelve una suma, cuyos resultados a medida que el "n" va "creciendo" sigue el orden ascendente de los naturales.
Digo:

0 -> 0
1 -> 1
2 -> 3
3 -> 6
4 -> 10

Entre 0 y 1 la diferencia es 1, entre 1 y 2 la diferencia es 2, entre 2 y 3 la diferencia es 3 y así sucesivamente...


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 29 Marzo 2011, 03:00 am
bueno yo ota vez les dejo aka dos ejercicios mas solo para novatos por faaaaaa

public int divisorCociente(int n, int div){
        // devuelve el cociente de una division
        int res=0;
        if(n< div){
            res=0;
        }
        else{
            res=divisorCociente(n-div, div)+1;
       
        }
        return res;
   
    }
    public int residuo(int n, int div){
        //devuelve el residuo de una division
        int res=0;
        if(n<div){
            res=n;
        }
        else{
        res=residuo(n-div,div);
        }
        return res;
    }


si te caes alguna ves y piensas que estas acabado pues lo estas y si no que esperas para levantarte "animo"


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 31 Marzo 2011, 01:30 am
    public int elevado(int a,int b ){
        // devuelve el resultado de "a" a la potencia b sin
        // utilizar la potencia
    int res=0;
    if(b==0){
    res=1;
    }
    else{
    res= elevado(a,b-1)*a;
    }
    return res;
    }
    public int multiplicar(int a, int b){
    int res=0;
    if(a==0 || b==0){
    res=0;
    }
    else{
        res=multiplicar(a,b-1)+a;
        // ojo en "+a" eso es lo que agarra cada ves que vuelve al metodo
    }
    return res;
    }

bueno aka yo devuelta para responder todas sus dudas de solo novatos

bye bye


Título: Re: ejercicios basicos para recursividad en java
Publicado por: Shell Root en 31 Marzo 2011, 01:45 am
Quizás se pueda suplir con esto, no entiendo, ¿Para que haces esto?
Código
  1.   public static int sPoW( Integer num, Integer exp )
  2.   {
  3.     /*
  4.       * Funcion que devuelve la
  5.       * potencia de un numero,
  6.       * sin usar la libreria Math.
  7.       */
  8.      Integer sReturn = 1;
  9.      if( exp == 0 ){ return 1; }
  10.      for(Integer i=0; i<exp; i++){ sReturn *= num; }
  11.      return sReturn;
  12.   }


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 31 Marzo 2011, 22:43 pm
hola a todos de nuevo

espero que leas esto Shell Root buenoo lo que pude observar en el codigo que enviaste es un codigo de programacion POO mientras que el codigo que yo utilizo es netamente RECURSIVIDAD y la recursividad tiene dos formas de hacerlas
la forma 1 es deduccion y la 2 es induccion

pero me gusto mucho tu codigo es muy bueno espero que me hayas entendido bye bye


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 8 Abril 2011, 23:07 pm
bueno aky hayyyyy mas ejerccios
Código:
public int cantDigPares(int n){
    int res=0;
    if(n<10 && n==2 || n==4 || n==6||n==8){
    res=1;
    }
 
    else if((n%10)%2==0){
    res= cantDigPares(n/10)+1;
    }
    else{
    res= cantDigPares(n/10);
    }
    return res;
    }



Título: Re: ejercicios basicos para recursividad en java
Publicado por: .mokk. en 9 Abril 2011, 09:44 am
Bueno antes que nada gracias ahora empiezo a comprender mejor, lo que es la recursividad.
Ultimamente nos han pedido trabajos usando recursividad, pero como para mi no la entendia lo hacia sin ser recursivo y pues los programas me han andado y todo, entonces a lo que viene mi pregunta ¿En que casos es bueno usar la recursividad?, ya que para mi es mucho mas sencillo hacerlo sin ser recursivo puesto que nose muy bien manejarlo, y aun asi he tenido mejor trabajo sin ello y pues aveces me pongo a pensar de que me sirve la recursividad, ya que pocas veces la he usado, ahi si me podrias hechar una mano en ello gracias n_n, asi como Shell Root la mayoria de mis codes los hago de esa forma jeje.


Sayo*! n_n

P.D. Para mi no importa que sea recursivo o no, simplemente con que mi programa cumpla de forma efectiva  su objetivo con ello me doy mas que satisfecho, pero tambien deseo saber el porque usar recursividad y en que casos jeje


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 10 Abril 2011, 23:37 pm

hola disculpa el retraso de mi respuesta es que ultimamente estoy sin tiempo

bueno yo tambien soy estudiante de informatica

  mi punto de vista sobre la recursividad es que ocupa mucho tiempo en memoria
  pero es otro modo muy interesante de programar y aveces es mucho mas sencillo
por ejemplo:
en un codigo de POO tienes que hacer muchas restricciones para un problema mientras en recursividad solo lo deduces (supones que funcionara) y funciona

la proxima semana pondre mas ejercicios de las cuales seran en POO y los mismos en  recursividad y ahi veras que aveces en mejor pero vuelvo a repetir no es muy economico en memoria bye bye hasta la proxima'''''''''

y gracias por tu comentario...........


Título: Re: ejercicios basicos para recursividad en java
Publicado por: .mokk. en 12 Abril 2011, 08:13 am
wow gracias n_n, espero ver los otros ejercicios, aunque ahora empiezo a entender mejor lo que es la recursividad aunque si fue algo que empece a ver que el llamarse a si mismo seria mas memoria como lo que vendria siendo en unos textos que lei sobre en linux el overflow usando fork.


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 14 Abril 2011, 21:41 pm
Código:
public int hexagono (int n){
        int res;
        if (n==1)       res=6;
        else
       res=hexagono(n-1)+6*(3*n-2);
        return res;
}
espero que les sirva valeeeee bye bye


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 14 Abril 2011, 21:42 pm

aqui va uno mas

Código:
public int cubito(int n){
int res;
if(n==1){
res=1;
}
else{

res= cubito(n-1)+(3*n*(n-1))+1;
}
return res;
}
publiquen ustedes igual cualquier metodo interesante
      y asi nos ayudamos entre colegas vale bye


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 15 Abril 2011, 16:56 pm
Código:
    public int cantDigImpares(int n){
    int res=0;
    if(n<10 && n==3 || n==5 || n==7|| n==9){
    res=1;
    }
    else{
    res=cantDigitos(n)-cantDigPares(n);
    }
    return res;
    }

bueno diganme sus dudas porfa sin miedo jajaja

bye bye ;-) :rolleyes: >:D :laugh: :laugh: :laugh: :laugh:


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 15 Abril 2011, 18:32 pm
hola a todos bueno
aki les dejo un programita que les sirva de mucho lo interesante de este metodo es
que hace 3 veces la llamada recursiva
1
21
321
4321
54321
654321
asi sucecivamente
Código:
 public int triangulo(int n){
        int res=0;
        if(n==1){
            res=1;
        }
        else{
            res=(int)Math.pow(10,cantDigitos(triangulo(n-1) ))*n+triangulo(n-1);
        }
        return res;
    }


Título: Re: ejercicios basicos para recursividad en java
Publicado por: Tryptophan en 15 Abril 2011, 22:46 pm
Citar
mi punto de vista sobre la recursividad es que ocupa mucho tiempo en memoria

Esto depende de la profundidad que adquiera la recursividad y como se vayan guardando los datos en el stack... Si hablamos de una estructura con pocos elementos no hay problema, ahora, si hablamos de una gran estructura de datos, ahí es otra cosa...


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 17 Abril 2011, 23:19 pm
      

wauuu les aconsejo que practiquen a programar en juez UVA
 :rolleyes: :( :o >:D ;-) :laugh: :silbar: ;-) :xD :o





Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 19 Abril 2011, 02:19 am
Código:
public int cancer(int n ){
      int res=0;
        while(n>0){
       res=res+n;
       n=n-1;
        }
        return res;
    }
[/color]


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 11 Octubre 2011, 15:54 pm
posteen mas ejercicios!!!


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 13 Febrero 2012, 02:23 am
este foro se esta yendo de bajada!!! k hacer para mejorarlo???


Título: Re: ejercicios basicos para recursividad en java
Publicado por: RyogiShiki en 13 Febrero 2012, 02:33 am
este foro se esta yendo de bajada!!! k hacer para mejorarlo???


Cierto en el foro de Java nunca ha habido una actividad muy fluida a comparación de otros SubForos, en todo caso dejo este, no es muy dificil:

*Listar el contenido de un directorio incluyendo todos los subdirectorios y los contenidos de estos, lo que formalmente seria "listar recursivamente" los contenidos de un directorio.

Saludos


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 13 Febrero 2012, 16:17 pm
Cierto en el foro de Java nunca ha habido una actividad muy fluida a comparación de otros SubForos, en todo caso dejo este, no es muy dificil:

*Listar el contenido de un directorio incluyendo todos los subdirectorios y los contenidos de estos, lo que formalmente seria "listar recursivamente" los contenidos de un directorio.

Saludos

el ejercicio que posteaste es netamente bash!!!


Título: Re: ejercicios basicos para recursividad en java
Publicado por: RyogiShiki en 13 Febrero 2012, 16:37 pm
el ejercicio que posteaste es netamente bash!!!

Claro que no XD se puede resolver prácticamente en cualquier lenguaje de programación!


Título: Re: ejercicios basicos para recursividad en java
Publicado por: bengy en 13 Febrero 2012, 17:15 pm
Claro que no XD se puede resolver prácticamente en cualquier lenguaje de programación!
interesante aver demuestranos y aprenderemos
gracias por la colaboracion...


Título: Re: ejercicios basicos para recursividad en java
Publicado por: RyogiShiki en 13 Febrero 2012, 17:47 pm
claro, yo lo haría de la siguiente manera:

Código
  1. package recursivedirlist;
  2.  
  3. import java.io.File;
  4.  
  5. public class RecursiveDirList {
  6.    public static void main(String[] args) {
  7.        listFiles(args[0]);
  8.    }
  9.  
  10.    public static void listFiles(String path) {
  11.        File rootFolder = new File(path);
  12.  
  13.        if (rootFolder.isDirectory()) {
  14.            File[] files = rootFolder.listFiles();
  15.  
  16.            if (files != null) {
  17.                for (File file : files) {
  18.                    System.out.println("Archivo: " + file.getName());
  19.                    if (file.isDirectory()) {
  20.                        System.out.println("Entrando al directorio: " + file.getName());
  21.                        listFiles(file.getAbsolutePath());
  22.                    }
  23.                }
  24.            }
  25.        } else {
  26.            System.out.println("No es un directorio, intenta nuevamente...");
  27.        }
  28.    }
  29. }

La forma de usarlo sería:
Código
  1. java RecursiveDirList /path/al/directorio
o
Código
  1. java -jar RecursiveDirList.jar /path/al/directorio
Si alguien tiene una forma más sencilla bienvenida es.

Saludos


Título: Re: ejercicios basicos para recursividad en java
Publicado por: xyiyox en 27 Marzo 2012, 07:53 am
A mi me encantaria que me ayudaras con un metodo en java que me ordene 3 numeros ingresados de mayor a menor pero de la formas mas recursiva posible ! =D