Ejercicio Java

Iniciado por enrique8923, 23 Febrero 2009, 07:20 AM

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

enrique8923

Bueno, no lei, y supongo que este problema puede ir aqui.

El ejercicio es el siguiente, si me ayudan a resolverlo, se los agradeceria mucho.

Disenie un programa para caluclar la suma de n terminos de la siguiente serie:

1, -1/2 , 1/3 , -1/4, 1/5........

bueno , si meayudan se los agradeceria de antemano.

Banti

Si ya diseñaste el programa, cual problema hay?

Yo nose nada de java (no me gusta):
El programa seria (en pseudocodigo (version Vaati's)):

n=-1
c=0
Mientras (c < 500)
c = c + 1
Si (n=-1)
  n=1
Sino
  n=-1
Fin si
resultado=n+c
Imprimir (resultado)
Fin Mientras


No?

enrique8923

   void procesar(){
   
   int num=1, deno=1;
   double suma=0;
      
   for (int conta=0;conta<5;conta++){
      
      imprimir(num+"/"+deno);
      
      suma+=(double)num/deno;
      
      if (num>-1)
         num-=2;
      else num+=2;
      
      deno+=1;   
         
   }
   
   txtS.append("Suma es: "+suma);         
   
   }

Yo hice eso, tambien vale? :O, Gracias brother, sos lo maximo, te debo 1 XD

juancho77

void procesar() quedo bien. Yo lo haría algo así: (un poco mas elegante digamos)

en vez de sumar y restar dos unidades a num, haria:

Código (java) [Seleccionar]
num=num*-1;

y en vez de tener dos variables "iguales" como son deno y conta, podes usar conta para marcar el denominador, iniciarlo en 1 y en vez de terminarlo en menor que veces, lo terminas en menor igual.

y debes arreglar el bucle FOR ya que eso solo calcula los 5 primeros términos. Puedes hacerlo cambiando el 5 por una variable N que entre como parametro. El resultado puede ser devuelto por la función:

Código (java) [Seleccionar]

public double procesar(int veces){
   
   int num=1;
   double suma=0;
     
   for (int conta=1;conta<=veces;conta++){
     
      imprimir(num+"/"+conta);
      suma+=(double)num/conta;
 
      num= num*1;
         
   }
    return suma;   
   }



saludos!