Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - bartvander

Páginas: [1]
1
Bueno pues estoy con los algoritmo recursivos y no soy capaz de saber como función. Pongo un ejemplo:

int factorial (int n)
    if (n==0) return 1;
    else return n*factorial(n-1)

yo entiendo que le metes un número n y como llama a la misma función dentro del metodo se va llamando recursivamente. Mi duda es cuando llega a n=0 tendría que devolver 1 y sin en cambio devuelve el factorial de n. Me podrías explicar como va funcionando este bucle. Otra de las dudas que me surgen es se realiza el primer bucle y donde se guarda el resultado de ese bucle, por ejemplo:

si queremos el factorial de 5, en la primera vuelta sería:

return 5 + factorial (n-1) que es 4= 20. devuelve ese valor, pero no lo almacena para sumar el siguiente resultado.

2
Estoy mirando por internet intentando encontrar la deficion de que es pasar parametros en Java por valor y por referencia y como se utilizan dentro de Java. Lo que he encontrado, no lo entiendo muy bien. Alguien podría explicarme esto.

Gracias de nuevo por vuestra ayuda.

3
Aprender a programar desde cero / Listas enlazadas java
« en: 08 de Marzo 2013, 17:18 »
Estoy estudiando las listas en lazadas y me gustaría que me ayudaseis a resolver estas dudas:

tengo este trozo de código de un constructor para una lista y actual sería el primer elemento a menos que la lista este vacía.

public ListaEnlazarIter (ListaEnlazada unaLista)
{
      laLista = unaLista;
      actual = laLista.esVacia() ?
                 unalista.cabecera  :  unaLista.cabecera.siguiente;
}

Tengo dudas sobre como funcionaría este código. No se que significa el símbolo interrogación en el código. Los : de la linea final se que se utilizan en iteradores, pero no se que es lo que hace en esa última linea.

A ver si podéis aclarare un poco. Gracias.


4
Tengo una duda en java en cuanto a bucles anidados. Expongo en problema y seguro que debe de ser sencillo, pero yo no logro averiguar como funciona. se trata del ejemplo de subsecuencia de suma máxima. Un algoritmo que busca la máxima suma consecutiva.

Uno de los algoritmos con eficiencia N cubo.

public stactic int subsecuenciaSumaMaxima ( int [] a)
{
     int sumaMax = 0;
     for( int i = 0; i < a.length; i++)   lo tengo claro recorre el vector "a"
          for( int j = i; j < a.length; j++)   por lo que yo entiendo vuelve a recorrer el vector.
          {
                  int sumaActual = 0;
   
                  for (int k = i; k <= j; k++)  coge k el valor de i y va hasta el valor de j y luego el valor de k lo utiliza como posición de vector.
                        sumaActual += a[k];

                  if ( sumaActual < sumaMax)
                  {
                             sumMax = sumaActual;
                             secIni = i;
                             secFin = j;

        }
    }
  return sumaMax;
}


Mi duda es sobre como funciona el anudamiento. En el primer for, coge la i el valor 0. Pasa al segundo vector y la j debe de coger el valor 0 que tiene la i. en el último for la k coge el valor de i que es 0 y lo compara con el valor de j que debe de ser 0. Por lo que no entiendo muy bien como funciona este algoritmo. Si alguien me pudiera explicar como funcionan los anidamiéntos se lo agradecería porque es donde creo que fallo que no se como funcionan, porque el algoritmo es correcto.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".