Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Métodos estaticos - Problema

Estas en el tema de Métodos estaticos - Problema en el foro de Java en Foros del Web. Tengo un ejercicio propuesto en un libro y el código que me aparece no es válido según el compilador, lo he comprobado línea a línea ...
  #1 (permalink)  
Antiguo 27/02/2013, 05:38
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Métodos estaticos - Problema

Tengo un ejercicio propuesto en un libro y el código que me aparece no es válido según el compilador, lo he comprobado línea a línea para verificar que mi código es idéntico al del libro. No entiendo mucho este ejercicio y me gustaría poder acabarlo para repasar el código y ver si así lo entiendo:

El archivo se llama NúmeroPI.java:

Código Java:
Ver original
  1. public class NúmeroPI{
  2.     public static double dameValorPI(int nDecimales){
  3.         double pi=0, pi2=0;
  4.         int n=0;
  5.         double epsilon=1/Math.pow(10, nDecimales);
  6.         System.out.println("Epsilon= "+epsilon);
  7.        
  8.         do{
  9.             pi2=pi;
  10.             pi+=Math.pow(-1, n)/(2*n+1);
  11.             n++;
  12.         }while(Math.abs(4*pi-4*pi2)>epsilon);
  13.        
  14.         return 4*pi;
  15.     }
  16.    
  17.     public static void main(String args[]){
  18.         NúmeroPI api=new NúmeroPI();  //El compilador aquí dice que la variable api no está siendo usada
  19.         int nDecimales=6;
  20.         double pI=dameValorPI(nDecimales);
  21.         System.out.printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI);
  22.     }
  23. }

El resultado debería ser este:

Epsilon= 1.0E-6

El número PI con 6 decimales es 3,141593

Última edición por rufi88; 27/02/2013 a las 05:50
  #2 (permalink)  
Antiguo 27/02/2013, 06:01
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Métodos estaticos - Problema

El compilador dice que la variable api no esta siendo utilizada porque efectivamente, no se utiliza fijate que posteriormente a esa linea la variable api no vuelve a aparecer en el código y por lo tanto se genera esa advertencia

Probablemente los escritores del libro se equivocasen y esa linea sobra por lo tanto quedaría así:

Código Java:
Ver original
  1. public class NúmeroPI{
  2.         public static double dameValorPI(int nDecimales){
  3.             double pi=0, pi2=0;
  4.             int n=0;
  5.             double epsilon=1/Math.pow(10, nDecimales);
  6.             System.out.println("Epsilon= "+epsilon);
  7.            
  8.             do{
  9.                 pi2=pi;
  10.                 pi+=Math.pow(-1, n)/(2*n+1);
  11.                 n++;
  12.             }while(Math.abs(4*pi-4*pi2)>epsilon);
  13.            
  14.             return 4*pi;
  15.         }
  16.        
  17.         public static void main(String args[]){      
  18.             //Desaparece la línea que estaba aquí
  19.             int nDecimales=6;
  20.             double pI=dameValorPI(nDecimales);
  21.             System.out.printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI);
  22.         }
  23.     }

O que se olvidasen de hacer la llamada a través del objeto, por lo tanto quedaría así:

Código Java:
Ver original
  1. public class NúmeroPI{
  2.         public static double dameValorPI(int nDecimales){
  3.             double pi=0, pi2=0;
  4.             int n=0;
  5.             double epsilon=1/Math.pow(10, nDecimales);
  6.             System.out.println("Epsilon= "+epsilon);
  7.            
  8.             do{
  9.                 pi2=pi;
  10.                 pi+=Math.pow(-1, n)/(2*n+1);
  11.                 n++;
  12.             }while(Math.abs(4*pi-4*pi2)>epsilon);
  13.            
  14.             return 4*pi;
  15.         }
  16.        
  17.         public static void main(String args[]){      
  18.             NúmeroPI api=new NúmeroPI(); //Se crea un objeto de tipo NúmeroPI y se almacena en la variable api.
  19.             int nDecimales=6;
  20.             double pI=api.dameValorPI(nDecimales); //Se llama al método perteneciente al objeto declarado anteriormente
  21.             System.out.printf("El número PI con %d decimales es %8.6f\n", nDecimales, pI);
  22.         }
  23.     }

Evidentemente la opcion mas sencilla es la primera, aquí no es necesario crear ningun objeto para nada
  #3 (permalink)  
Antiguo 27/02/2013, 06:15
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Métodos estaticos - Problema

Lo de eliminar la creación de la variable api ya lo había probado y con tu segunda opción el programa sigue sin funcionar. Alguna idea de que podría ser?
  #4 (permalink)  
Antiguo 27/02/2013, 06:19
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Métodos estaticos - Problema

Ah yo pensaba que el compilador simplemente te decia

la variable api no está siendo usada

y que no entendias porque era!!

Que error te lanza el compilador entonces?
  #5 (permalink)  
Antiguo 27/02/2013, 06:24
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Métodos estaticos - Problema

Jajaj perdona si no me expliqué bien.

El mensaje del compilador al intentar ejecutarlo es: Error: no se ha encontrado o cargado la clase principal NumeroPI.
  #6 (permalink)  
Antiguo 27/02/2013, 06:30
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Métodos estaticos - Problema

¿Lo ejecutas desde un IDE (Eclipse/Netbeans?¿Has creado un jar ejecutable?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #7 (permalink)  
Antiguo 27/02/2013, 06:32
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Métodos estaticos - Problema

Lo ejecuto desde eclipse y perdona mi ignorancia pero no se si he creado un JAR (no se lo que es) lo he hecho como siempre:

Creo proyecto - src - paquete - .java
  #8 (permalink)  
Antiguo 27/02/2013, 06:38
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Métodos estaticos - Problema

Son cosas distintas, el jar ejecutable es para ejecutarlo fuera del IDE, necesita que se le indique la calse que contiene el main, pero este no es tu caso.

Revisa la configuración del proyecto, parece que estás compilando en un sitio y buscando el fichero en otro.

¿Lo has compilado?
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #9 (permalink)  
Antiguo 27/02/2013, 06:39
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Métodos estaticos - Problema

No tengo el eclipse instalado pero desde Netbeans he creado la aplicación copiado y pegado el código y me ha funcionado perfectamente!!!

Borra el proyecto e intenta crearlo otra vez.
  #10 (permalink)  
Antiguo 27/02/2013, 07:22
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Métodos estaticos - Problema

Cita:
Iniciado por rgf1987 Ver Mensaje
No tengo el eclipse instalado pero desde Netbeans he creado la aplicación copiado y pegado el código y me ha funcionado perfectamente!!!

Borra el proyecto e intenta crearlo otra vez.
Entonces debe de ser un problema de configuración de mi proyecto como dice Xerelo, mas tarde comprobare la configuración.

Gracias a ambos.
  #11 (permalink)  
Antiguo 27/02/2013, 11:13
 
Fecha de Ingreso: noviembre-2012
Ubicación: Adra
Mensajes: 36
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Métodos estaticos - Problema

Ya he podido solucionarlo, el problema era la tilde en NúmeroPI, en cuanto le he quitado la tilde me ha dado el resultado.

Gracias por interesaros en mi post :)
  #12 (permalink)  
Antiguo 03/03/2013, 14:14
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 21 años, 10 meses
Puntos: 361
Respuesta: Métodos estaticos - Problema

Hola:

Suele ser un error muy típico. No es nada recomendable utilizar "caracteres extraños" en los nombres de variables, métodos y clases, y cuando hablo de caracteres extraños me refiero a tildes, eñes, etc.

Saludos.


Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.