Autor Tema: CU00633B tutorial iniciación java  (Leído 3532 veces)

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
CU00633B tutorial iniciación java
« en: 28 de Agosto 2014, 03:22 »
hola buenas noches,
quisiera que alguien me corrige este ejercicio por favor para ver si lo he hecho bien o no.

el código me funciona pero si la edad es un numero múltiplo de 5 en vez de ser 0 los años que faltan para que el medico tenga una edad múltiplo de 5 el resultado sera 5 (El médico de nombre david con especialidad quirofano tendrá una edad múltiplo de 5 dentro de 5 años).
me explico:
por ejemplo si el medico tiene 25 años
pues

calculoParaMultiploEdad = (múltiplo - (edad % múltiplo))
calculoParaMultiploEdad = (5 - (25 % 5))
calculoParaMultiploEdad =5

no se podría poner por ejemplo un metodo que determina lo siguiente ?:
if edad % multiplo = 0
System.out.println (" El medico tiene una edad multiplo de 5 ")

lo he intentado pero hubo problemas de compilación

gracias por su atención

Código: [Seleccionar]
public class Medico
{//declaracion de los atributos
    String nombre;
    String apellidos;
    int edad;
    boolean casado;
    String numeroDocumentoIdentidad;
    String especialidad; 
    int calculoParaMultiploEdad;
    //constructor
    public Medico()
    {//inicializacion
        nombre = " ";
        apellidos = " ";
        edad = -99;
        casado = false;
        numeroDocumentoIdentidad = " ";
        especialidad = " ";
        calculoParaMultiploEdad = -1;

    }//cierre del constructor
    //metodo para establecer el nombre del medico
    public void setNombre (String valorNombre)
    {nombre=valorNombre;}//cierre del metodo

    //metodo para establecer los apellidos
    public void setApellidos (String valorApellidos)
    {apellidos=valorApellidos;}//cierre del metodo

    //metodo para establecer la edad
    public void setEdad (int valorEdad)
    {edad=valorEdad;}//cierre del metodo

    //metodo para si el objeto medico esta casado o no
    public void setCasado (boolean valorCasado)
    {casado=valorCasado;}//cierre del metodo

    //metodos para establecer el DNI
    public void setNumeroDocumentoIdentidad (String valorNumeroDocumentoIdentidad)
    {numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo

    //metodo para establecer la especialidad del objeto medico
    public void setEspecialidad (String valorEspecialidad)
    {especialidad = valorEspecialidad;}

 
    public void setCalculoParaMultiploEdad ()
    {calculoParaMultiploEdad = (5 - (edad % 5));

        System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + calculoParaMultiploEdad + " años");}//cierre del metodo
    //metodo para obtener el nombre
    public String getNombre ()
    {return nombre;}//cierre del metodo

    //metodo para obtener los apellidos del medico
    public String getApellidos ()
    {return apellidos;}//cierre del metodo

    //metodo para obtener la edad del medico
    public int getEdad ()
    {return edad;}//cierre del metodo

    //metodo para obtener si el medico esta casado o no
    public boolean getCasado ()
    {return casado;}//cierre del metodo
    //metodo para el DNI del objeto medico
    public String getNumeroDocumentoIdentidad ()
    {return numeroDocumentoIdentidad;}//cierre del metodo
    //metodo para obtener la especialidad del objeto medico
    public String getEspecialidad ()
    {return especialidad;}//cierre del metodo
}//cierre de la clase

« Última modificación: 31 de Agosto 2014, 10:39 por Alex Rodríguez »

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:CU00633B
« Respuesta #1 en: 28 de Agosto 2014, 09:39 »
Hola, int calculoParaMultiploEdad; no debes declararlo como atributo, sino dentro del método donde lo vas a usar, ya que no es una información que deba llevar un médico y además es algo que se calcula a partir de otro dato (la edad), tener ambos como atributos sería redundante.

El nombre del método setCalculoParaMultiploEdad no es correcto. get y set sólo se usan para recuperar y establecer atributos. El método debe tener otro nombre como determinarTiempoParaMultiploCinco...

Lo que comentas sobre que si la edad es múltiplo de 5 es cierto y lo puedes resolver simplemente con un if, aquí tienes un ejemplo de cómo hacerlo:

Código: [Seleccionar]
    public void determinarTiempoParaMultiploCinco ()
    {int calculoParaMultiploEdad;
        calculoParaMultiploEdad = (5 - (edad % 5));
        if(calculoParaMultiploEdad ==5) {System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tiene edad multiplo de 5"); }
        else{
        System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + calculoParaMultiploEdad + " años");}
    }//cierre del metodo

Saludos

Thieba

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:CU00633B
« Respuesta #2 en: 28 de Agosto 2014, 21:06 »
gracias  Javi,
la verdad es que no entendi bien este metodo,pero ahora sí que me parece que lo he entendido un poco mejor
a continuacion dejo el codigo corregido,

Código: [Seleccionar]
public class Medico
{//declaracion de los atributos
    String nombre;
    String apellidos;
    int edad;
    boolean casado;
    String numeroDocumentoIdentidad;
    String especialidad; 
    //constructor
    public Medico()
    {//inicializacion
        nombre = " ";
        apellidos = " ";
        edad = -99;
        casado = false;
        numeroDocumentoIdentidad = " ";
        especialidad = " ";
     
    }//cierre del constructor
    //metodo para establecer el nombre del medico
    public void setNombre (String valorNombre)
    {nombre=valorNombre;}//cierre del metodo

    //metodo para establecer los apellidos
    public void setApellidos (String valorApellidos)
    {apellidos=valorApellidos;}//cierre del metodo

    //metodo para establecer la edad
    public void setEdad (int valorEdad)
    {edad=valorEdad;}//cierre del metodo

    //metodo para si el objeto medico esta casado o no
    public void setCasado (boolean valorCasado)
    {casado=valorCasado;}//cierre del metodo

    //metodos para establecer el DNI
    public void setNumeroDocumentoIdentidad (String valorNumeroDocumentoIdentidad)
    {numeroDocumentoIdentidad= valorNumeroDocumentoIdentidad;}//cierre del metodo

    //metodo para establecer la especialidad del objeto medico
    public void setEspecialidad (String valorEspecialidad)
    {especialidad = valorEspecialidad;}

 
     public void determinarTiempoParaMultiploCinco ()
    {int calculoParaMultiploEdad;
        calculoParaMultiploEdad = (5 - (edad % 5));
        if(calculoParaMultiploEdad ==5) {System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tiene edad multiplo de 5"); }
        else{
        System.out.println ("El médico de nombre " + nombre + " con especialidad " + especialidad + " tendrá una edad múltiplo de 5 dentro de " + calculoParaMultiploEdad + " años");}
    }//cierre del metodo
    public String getNombre ()
    {return nombre;}//cierre del metodo

    //metodo para obtener los apellidos del medico
    public String getApellidos ()
    {return apellidos;}//cierre del metodo

    //metodo para obtener la edad del medico
    public int getEdad ()
    {return edad;}//cierre del metodo

    //metodo para obtener si el medico esta casado o no
    public boolean getCasado ()
    {return casado;}//cierre del metodo
    //metodo para el DNI del objeto medico
    public String getNumeroDocumentoIdentidad ()
    {return numeroDocumentoIdentidad;}//cierre del metodo
    //metodo para obtener la especialidad del objeto medico
    public String getEspecialidad ()
    {return especialidad;}//cierre del metodo
}//cierre de la clase

BelCrow

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 46
  • Técnico en Redes (CCNA-IT).
    • Ver Perfil
Re:CU00633B
« Respuesta #3 en: 29 de Agosto 2014, 00:57 »
ahora si que el código esta mejor (en mi opinión), al agregarle el if lo perfeccionaste un poco, pero en teoría no debiste usarlo ya que no lo veras hasta el ejercicio CU00636B, osea que sin el if estaría perfecto igual....
public lenguajePoderoso () {
          java = "poder";
       }

 

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".