Autor Tema: Ejercicio CU00633B: (Operadores aritméticos en Java)  (Leído 5625 veces)

B4rduck

  • Sin experiencia
  • *
  • Mensajes: 29
    • Ver Perfil
Ejercicio CU00633B: (Operadores aritméticos en Java)
« en: 29 de Octubre 2014, 05:02 »
Si bien es cierto que el código que publico en este tema es muy parecido al anterior a diferencia del método con el cual se pide calcular el múltiplo de la edad del objeto, quisiera aclarar que no estoy del todo seguro de haber entendido el ejercicio y como siemre agradeceré todos sus comentarios.
Código: [Seleccionar]
public class medico {
   
    private String nombre; // Nombre del médico
    private String apellidos; // Apellidos del médico
    private int edad; // Edad del médico
    private boolean casado; // Estado civil del médico
    private String numeroID; // Número de documento de identidad del médico
    private String especialidad; // Área en la que se especializa el médico
    private int calculoParaMultiploEdad;
   
    // Constructor
    public medico (){
        nombre = "Desconocido";
        apellidos = "Desconocido";
        edad = 0;
        casado = false;
        numeroID = "Desconocido";
        especialidad = "Desconocido";
    } // Cierre del constructor
   
    // Método para establecer el nombre del médico
    public void setNombre (String valorNombre) {
        nombre = valorNombre;
        System.out.println("Se ha introducido el nombre del médico... El nombre del médico es: " + nombre);
    } // Cierre del método
   
     // Método para establecer los apellidos del médico
    public void setApellidos (String valorApellidos) {
        apellidos = valorApellidos;
        System.out.println("Se han introducido los apellidos del médico... Los apellidos del médico son: " + apellidos);
    } // Cierre del médotodo
   
     // Método para establecer la edad del médico
    public void setEdad (int valorEdad) {
        edad = valorEdad;
        System.out.println("Se ha introducido la edad del médico... La edad del médico es: " + edad);
    } // Cierre del método
   
     // Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
    public void setCalculoParaMultiploEdad (){
        calculoParaMultiploEdad = (5-(edad%5));
        System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + calculoParaMultiploEdad + " años");
    } // Cierre del método
   
       // Método para establecer el estado civil del médico
    public void setCasado (boolean valorCasado) {
        casado = valorCasado;
        System.out.println("Se ha introducido el estado civil del médico... El médico está casado: " + casado);
    } // Cierre del método
   
       // Método para establecer el número de ID del médico
    public void setNumeroID (String valorNumeroID) {
        numeroID = valorNumeroID;
        System.out.println("Se ha introducido el número de Identificación del médico... El ID es: " + numeroID);
    } // Cierre del método
   
       // Método para establecer la especialidad del médico
    public void setEspecialidad (String valorEspecialidad) {
        especialidad = valorEspecialidad;
        System.out.println("Se ha introducido la especialidad del médico... La especialidad del médico es: " + especialidad);
    } // Cierre del método
   
    // Método para obtener los años restantes para que el médico tenga una edad múltiplo de 5
    public int getCalculoParaMultiploEdad (){
        return calculoParaMultiploEdad;
    }// Cierre del método
   
    // Método para obtener el nombre del médico
    public String getNombre (){
        return nombre;
    }// Cierre del método
   
     // Método para obtener los apellidos del médico
    public String getApellidos (){
        return apellidos;
    }// Cierre del método
   
     // Método para obtener la edad del médico
    public int getEdad (){
        return edad;
    }// Cierre del método
   
     // Método para obtener el estado civil del médico
    public boolean getCasado (){
        return casado;
    }// Cierre del método
   
     // Método para obtener el número de ID del médico
    public String getNumeroID (){
        return numeroID;
    }// Cierre del método
   
     // Método para obtener la especialidad del médico
    public String getEspecialidad (){
        return especialidad;
    }// Cierre del método
   
    }

Agradezco de antemano a quienes me proporcionen sus opiniones.

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00633B: (Operadores aritméticos en Java)
« Respuesta #1 en: 29 de Octubre 2014, 23:16 »
Hola Arja
Este ejercicio es parecido al anterior CU00632B.
Aunque en este no se pedia mostrar mensajes al cambiar los atributos, solo se pedía un método de tipo procedimiento 'calculoParaMultiploEdad' para que devolviera un mensaje tomando la edad como referencia.

Si relees el enunciado del ejercicio verás que no se pide la creación del atributo 'int calculoParaMultiploEdad'
Tu método
public void setCalculoParaMultiploEdad ()
realiza bien su cometido, informar de los años que faltan para que la edad del médico sea múltiplo de 5

En este ejercicio realizando unos pequeños cambios, quedará según lo requerido.

Cambios a realizar:
Quitar la declaración
private int calculoParaMultiploEdad;

Quitar los mensajes en los métodos set

Rebautizar el método
public void setCalculoParaMultiploEdad ()
por
public void calculoParaMultiploEdad ()

Quitar el método
public int getCalculoParaMultiploEdad ()

El resto perfecto

Saludos

B4rduck

  • Sin experiencia
  • *
  • Mensajes: 29
    • Ver Perfil
Re:Ejercicio CU00633B: (Operadores aritméticos en Java)
« Respuesta #2 en: 01 de Noviembre 2014, 15:53 »
Toni, a continuación dejo el código con las correcciones o cambios que pides. Y quiero mencionarte que al retirar la declaración "private int claculoParaMultiploEdad;" no se me permite realizar la compilación del código, recibo un error de sintaxis y justo por esa razón es que en primera instancia me vi obligado a crearla, por lo que no voy a perder la oportunidad para hacerte la pregunta: ¿Cuál será la razón?

Aquí el código:
Código: [Seleccionar]
public class medico {
   
    private String nombre; // Nombre del médico
    private String apellidos; // Apellidos del médico
    private int edad; // Edad del médico
    private boolean casado; // Estado civil del médico
    private String numeroID; // Número de documento de identidad del médico
    private String especialidad; // Área en la que se especializa el médico
   
    // Constructor
    public medico (){
        nombre = "Desconocido";
        apellidos = "Desconocido";
        edad = 0;
        casado = false;
        numeroID = "Desconocido";
        especialidad = "Desconocido";
    } // Cierre del constructor
   
    // Método para establecer el nombre del médico
    public void setNombre (String valorNombre) {
        nombre = valorNombre;
    } // Cierre del método
   
     // Método para establecer los apellidos del médico
    public void setApellidos (String valorApellidos) {
        apellidos = valorApellidos;
    } // Cierre del médotodo
   
     // Método para establecer la edad del médico
    public void setEdad (int valorEdad) {
        edad = valorEdad;
    } // Cierre del método
   
     // Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
    public void calculoParaMultiploEdad (){
        calculoParaMultiploEdad = (5-(edad%5));
        System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + calculoParaMultiploEdad + " años");
    } // Cierre del método
   
       // Método para establecer el estado civil del médico
    public void setCasado (boolean valorCasado) {
        casado = valorCasado;
    } // Cierre del método
   
       // Método para establecer el número de ID del médico
    public void setNumeroID (String valorNumeroID) {
        numeroID = valorNumeroID;
    } // Cierre del método
   
       // Método para establecer la especialidad del médico
    public void setEspecialidad (String valorEspecialidad) {
        especialidad = valorEspecialidad;
    } // Cierre del método
   
    // Método para obtener el nombre del médico
    public String getNombre (){
        return nombre;
    }// Cierre del método
   
     // Método para obtener los apellidos del médico
    public String getApellidos (){
        return apellidos;
    }// Cierre del método
   
     // Método para obtener la edad del médico
    public int getEdad (){
        return edad;
    }// Cierre del método
   
     // Método para obtener el estado civil del médico
    public boolean getCasado (){
        return casado;
    }// Cierre del método
   
     // Método para obtener el número de ID del médico
    public String getNumeroID (){
        return numeroID;
    }// Cierre del método
   
     // Método para obtener la especialidad del médico
    public String getEspecialidad (){
        return especialidad;
    }// Cierre del método
   
    }

Desde ya, te agradezco la atención prestada!

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00633B: (Operadores aritméticos en Java)
« Respuesta #3 en: 02 de Noviembre 2014, 10:15 »
Hola Arja
Si tienes razón, tu nuevo código da el error:
cannot find symbol - variable calculoParaMultiploEdad
Es decir, no se encuentra la declaración para la variable calculoParaMultiploEdad

En parte es culpa mía, al decirte que eliminaras el atributo calculoParaMultiploEdad y cambiaras solo el nombre del método a: public void calculoParaMultiploEdad ()

Para solucionarlo, la primera línea del método la podíamos cambiar a lo siguiente
en lugar de:
calculoParaMultiploEdad = (5-(edad%5));
cambiar a:
int calculoParaMultiploEdad = (5-(edad%5));
Como ves creamos una variable de tipo int en el método, de esta forma desaparecerá el error.

Otra forma de hacerlo sin variable interna sería:
public void calculoParaMultiploEdad () {
        System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + (5-(edad%5)) + " años");
    }
// Cierre del método

Cualquiera de las dos soluciones es válida.

Saludos

B4rduck

  • Sin experiencia
  • *
  • Mensajes: 29
    • Ver Perfil
Re:Ejercicio CU00633B: (Operadores aritméticos en Java)
« Respuesta #4 en: 03 de Noviembre 2014, 03:07 »
Excelente Toni, opté por la segunda opción, personalmente me pareció un tanto más práctica y efectivamente el error dejó de aparecer. Agradezco tu amable atención, también aprovecho para comentarte que gracias a tu ayuda pude aclarar ciertas dudas y en efecto, aprendí algo nuevo, gracias nuevamente!

Dejo el código ya corregido para que verifiques que hice las correcciones:

Código: [Seleccionar]
public class medico {
   
    private String nombre; // Nombre del médico
    private String apellidos; // Apellidos del médico
    private int edad; // Edad del médico
    private boolean casado; // Estado civil del médico
    private String numeroID; // Número de documento de identidad del médico
    private String especialidad; // Área en la que se especializa el médico
   
    // Constructor
    public medico (){
        nombre = "Desconocido";
        apellidos = "Desconocido";
        edad = 0;
        casado = false;
        numeroID = "Desconocido";
        especialidad = "Desconocido";
    } // Cierre del constructor
   
    // Método para establecer el nombre del médico
    public void setNombre (String valorNombre) {
        nombre = valorNombre;
    } // Cierre del método
   
     // Método para establecer los apellidos del médico
    public void setApellidos (String valorApellidos) {
        apellidos = valorApellidos;
    } // Cierre del médotodo
   
     // Método para establecer la edad del médico
    public void setEdad (int valorEdad) {
        edad = valorEdad;
    } // Cierre del método
   
     // Método para determinar y mostrar a través de cónsola la cantidad de años restantes para que el médico en cuestión tenga una edad múltiplo de 5.
     public void calculoParaMultiploEdad (){
        System.out.println("El médico de nombre: " + nombre + ", con espacialidad: " + especialidad + ", tendrá una edad multiplo de 5 dentro de: " + (5-(edad%5)) + " años");
    } // Cierre del método
   
       // Método para establecer el estado civil del médico
    public void setCasado (boolean valorCasado) {
        casado = valorCasado;
    } // Cierre del método
   
       // Método para establecer el número de ID del médico
    public void setNumeroID (String valorNumeroID) {
        numeroID = valorNumeroID;
    } // Cierre del método
   
       // Método para establecer la especialidad del médico
    public void setEspecialidad (String valorEspecialidad) {
        especialidad = valorEspecialidad;
    } // Cierre del método
   
    // Método para obtener el nombre del médico
    public String getNombre (){
        return nombre;
    }// Cierre del método
   
     // Método para obtener los apellidos del médico
    public String getApellidos (){
        return apellidos;
    }// Cierre del método
   
     // Método para obtener la edad del médico
    public int getEdad (){
        return edad;
    }// Cierre del método
   
     // Método para obtener el estado civil del médico
    public boolean getCasado (){
        return casado;
    }// Cierre del método
   
     // Método para obtener el número de ID del médico
    public String getNumeroID (){
        return numeroID;
    }// Cierre del método
   
     // Método para obtener la especialidad del médico
    public String getEspecialidad (){
        return especialidad;
    }// Cierre del método
   
    }

Gracias y hasta la próxima!

Saludos!

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00633B: (Operadores aritméticos en Java)
« Respuesta #5 en: 03 de Noviembre 2014, 21:01 »
Si Arja, ahora está perfecto. Nada que añadir.

Saludos

 

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