• Sábado 4 de Mayo de 2024, 08:44

Autor Tema:  [DUDA] Métodos públicos y de clase  (Leído 2119 veces)

Iggy16

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
[DUDA] Métodos públicos y de clase
« en: Martes 19 de Octubre de 2010, 16:59 »
0
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: Text
  1. public static int numCifras (int n) {
  2. int cuenta=1;
  3. n=n/10;
  4. while (n!=0) {
  5. cuenta ++; n=n/10;
  6. }
  7. return cuenta;
  8. }
  9.  

2. Este método devuelve la suma de las cifras de [n] cuando n esté en base 10:
Código: Text
  1. public static int sumaCifras (int n) {
  2. if (n<0) n=-n;
  3. int suma=0;
  4. while (n!=0) {
  5. suma += n % 10;
  6. n=n/10;
  7. }
  8. return suma
  9. }
  10.  

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 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: Text
  1. public static int cifraMayor (int n) {      CODIGO      }
  2.  
2.
Código: Text
  1. public static boolean sonPrimosEntreSi (int a, int b) {     CODIGO     }
  2.  
3.
Código: Text
  1. public static int mayor (int a, int b) {    CODIGO          }
  2.  
4.
Código: Text
  1. public static int mayor (int a, int b, int c) {      CODIGO    }
  2.  
5.
Código: Text
  1. public static String romanizarCifra (int cifra) {       CODIGO      }
  2.  

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: Text
  1. public static String romanizarCifra (int cifra) {
  2. cifra>=0 && cifra<=9
  3. if (cifra==1)
  4. return I;
  5. else if (cifra==2)
  6. return II;
  7. else if (cifra==3)
  8. return III;
  9. else if (cifra==4)
  10. return IV;
  11. else if (cifra==5)
  12. return V;
  13. else if (cifra==6)
  14. return VI;
  15. else if (cifra==7)
  16. return VII;
  17. else if (cifra==8)
  18. return VIII;
  19. else if (cifra==9)
  20. return IX;
  21.  
  22. }
  23.  

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

¿Ideas para ayudarme y/o corregirme? Serán bienvenidas ;)

LuisYactayo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: pe
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #1 en: Martes 19 de Octubre de 2010, 19:02 »
0
Muy bien explicada tu pregunta. Tu si ah  :D . Bueno. Eso de base 10 quiere decir decimal??? o sea son los numeros que se usa normalmente no?

public static int cifraMayor (int n) {      
int cifra,mayor=0;
while (n!=0){
   cifra = n % 10;
   if (cifra>mayor){
      mayor = cifra;
   }
   n= n /10;
}
return mayor;
 }

Cualquier explicacion de este codigo me escribes. los otros metodos despues lo hare

Iggy16

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #2 en: Martes 19 de Octubre de 2010, 20:37 »
0
Entendí tu método (1), gracias por contestar.

PD: si, es base decimal, x eso se divide por 10  :P

LuisYactayo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: pe
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #3 en: Jueves 21 de Octubre de 2010, 18:14 »
0
public static int mayor (int a, int b, int c) {
   int mayor=0;
     if (a>b) {
    mayor = a;
    }else{
    mayor=b;
    }
  if (c > mayor){

   mayor =c;
  }
return mayor;
     }

LuisYactayo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: pe
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #4 en: Jueves 21 de Octubre de 2010, 18:22 »
0
public static int mayor (int a, int b) {
int mayor=0;

 if (a>b){
mayor = a;
}else{
mayor = b;
}
return mayor;
  }

LuisYactayo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: pe
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #5 en: Jueves 21 de Octubre de 2010, 18:29 »
0
public static String romanizarCifra (int cifra) {  
String r=" ";
switch (cifra){
   case 1 : r = "I";break;
   case 2 : r = "II";break;
   case 3 : r = "III";break;
   case 4 : r = "IV";break;
   case 5 : r = "V";break;
   case 6 : r = "VI";break;
   case 7 : r = "VII";break;
   case 8 : r = "VIII";break;
   case 9 : r = "IX";break;
}
return r;
    }

Iggy16

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: [DUDA] Métodos públicos y de clase
« Respuesta #6 en: Jueves 21 de Octubre de 2010, 20:35 »
0
Ok, te falta 1  el de son primos entre si :D

Gracias.