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

[AYUDA] Métodos públicos y de clase

Estas en el tema de [AYUDA] Métodos públicos y de clase en el foro de Java en Foros del Web. Hola de nuevo, ahora presento algunas dudas sobre métodos públicos (public) y de clase (static); Nos dieron algunos ejemplos: 1. Este método devuelve el número ...
  #1 (permalink)  
Antiguo 19/10/2010, 08:58
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 14 años, 5 meses
Puntos: 0
[AYUDA] Métodos públicos y de clase

Hola de nuevo, ahora presento algunas dudas sobre métodos públicos (public) y de clase (static);

Nos dieron algunos ejemplos:
1. Este método devuelve el número de cifras de [n] cuando n esté en base 10:
Código:
public static int numCifras (int n) {
int cuenta=1;
n=n/10;
while (n!=0) {
cuenta ++; n=n/10;
}
return cuenta;
}
2. Este método devuelve la suma de las cifras de [n] cuando n esté en base 10:
Código:
public static int sumaCifras (int n) {
if (n<0) n=-n;
int suma=0;
while (n!=0) {
suma += n % 10;
n=n/10;
}
return suma
}
Y tenemos que construir estos métodos:
1. Un método que devuelva la mayor de las cifras de [n] cuando n esté en base10.
2. Un método que devuelva [true] si y solo si [a] y [b] son primos entre si.
3. Un método que devuelva el mayor de los valores de a, b y c.
4. Un método que devuelva el mayor de los valores de a y b.
5. Un método que devuelva un String que representa [cifra] como un número romano, cifra>=0 y cifra<=9.

Sus respectivos códigos tienen que ser así:
1.
Código:
public static int cifraMayor (int n) {      CODIGO      }
2.
Código:
public static boolean sonPrimosEntreSi (int a, int b) {     CODIGO     }
3.
Código:
public static int mayor (int a, int b) {    CODIGO          }
4.
Código:
public static int mayor (int a, int b, int c) {      CODIGO    }
5.
Código:
public static String romanizarCifra (int cifra) {       CODIGO      }
Entonces, yo tengo algunas ideas, vosotros me corregís y ayudáis :)

Mis ideas son:

Del número 1, si por ejemplo tenemos el número en base10: 4186, evidentemente, la cifra mayor es el 8. Pues habrá que construir un método que compare las cifras del número en base10 y devuelva la mayor, algo como hacer un rango de que el número tiene que estar entre el 0 y el 9, entonces hacer. Si el número es el 4186, la cosa sería como en el metodo de numero de cifras, dividir por 10, tenemos el 418, dividir por 10, el 41, dividir por 10, el 4, dividir y obtenemos el 0. A partir de ahí comparar las 4 cifras y ver cuál es mayor. Eso en código Java no sé muy bien como expresarlo :l

Y del número 5 poner:
Código:
public static String romanizarCifra (int cifra) {
cifra>=0 && cifra<=9
if (cifra==1)
return I;
else if (cifra==2)
return II;
else if (cifra==3)
return III;
else if (cifra==4)
return IV;
else if (cifra==5)
return V;
else if (cifra==6)
return VI;
else if (cifra==7)
return VII;
else if (cifra==8)
return VIII;
else if (cifra==9)
return IX;

}
Eso es lo que se me ha ocurrido poner hasta el momento.

¿Ideas para ayudarme y/o corregirme? Serán bienvenidas ;)
  #2 (permalink)  
Antiguo 19/10/2010, 15:39
 
Fecha de Ingreso: febrero-2010
Mensajes: 128
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: [AYUDA] Métodos públicos y de clase

El pseudocodigo que has buscado para romanizar esta bien, pero no esta bien sintacticamente.

Un String ha de ir entrecomillado

Te falta comentar la primera línea o añadirla a un if.

Te falta el caso del 0

Te falta x ejemplo una clausula else para que siempre te retorne un valor.

Se puede mejorar

Suerte
  #3 (permalink)  
Antiguo 19/10/2010, 19:24
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: [AYUDA] Métodos públicos y de clase

Hola,

Cita:
Iniciado por Iggy16 Ver Mensaje
1. Este método devuelve el número de cifras de [n] cuando n esté en base 10:
Código:
public static int numCifras (int n) {
int cuenta=1;
n=n/10;
while (n!=0) {
cuenta ++; n=n/10;
}
return cuenta;
}

Y tenemos que construir estos métodos:
1. Un método que devuelva la mayor de las cifras de [n] cuando n esté en base10.

1.
Código:
public static int cifraMayor (int n) {      CODIGO      }
Entonces, yo tengo algunas ideas, vosotros me corregís y ayudáis :)

Mis ideas son:

Del número 1, si por ejemplo tenemos el número en base10: 4186, evidentemente, la cifra mayor es el 8. Pues habrá que construir un método que compare las cifras del número en base10 y devuelva la mayor, algo como hacer un rango de que el número tiene que estar entre el 0 y el 9, entonces hacer. Si el número es el 4186, la cosa sería como en el metodo de numero de cifras, dividir por 10, tenemos el 418, dividir por 10, el 41, dividir por 10, el 4, dividir y obtenemos el 0. A partir de ahí comparar las 4 cifras y ver cuál es mayor. Eso en código Java no sé muy bien como expresarlo :l
Básicamente es el uso de operaciones matemáticas, y lo más simple es hacer un listado en papel para ver los objetivos y resultados:

4865 % 10 = 5
4865 / 10 = 486

486 % 10 = 6
486 / 10 = 48

etc...
  1. Tomar el número y sacar el residuo de la división entre 10. (4865 % 10 = 5)
  2. Ver si el residuo obtenido (5) es el dígito mayor usando IF.
    1. Si es mayor guardarlo y reemplazar como el mayor en una variable.
  3. Tomar el número y dividir (entero) entre 10. (4865 \ 10 = 486)
  4. Repetir mientras sea mayor que 0.
  5. Devolver el mayor.

Saludos,
  #4 (permalink)  
Antiguo 20/10/2010, 07:58
 
Fecha de Ingreso: noviembre-2009
Mensajes: 16
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: [AYUDA] Métodos públicos y de clase

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



Básicamente es el uso de operaciones matemáticas, y lo más simple es hacer un listado en papel para ver los objetivos y resultados:

4865 % 10 = 5
4865 / 10 = 486

486 % 10 = 6
486 / 10 = 48

etc...
  1. Tomar el número y sacar el residuo de la división entre 10. (4865 % 10 = 5)
  2. Ver si el residuo obtenido (5) es el dígito mayor usando IF.
    1. Si es mayor guardarlo y reemplazar como el mayor en una variable.
  3. Tomar el número y dividir (entero) entre 10. (4865 \ 10 = 486)
  4. Repetir mientras sea mayor que 0.
  5. Devolver el mayor.

Saludos,

Si, me comentaron eso de sacar el resto de la división e ir comparando, mas o menos lo entiendo, eso en código como seria?xd

Etiquetas: clase
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 04:08.