Autor Tema: Ayuda con ejercicio de Java desde cero [operadores aritmeticos en java]  (Leído 5811 veces)

jonathan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
link:
https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=462:operadores-aritmeticos-en-java-y-operador-mod-o-resto-de-una-division-entre-enteros-cu00633b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188

EJERCICIO

Define una clase Medico considerando los siguientes atributos de clase: nombre (String), apellidos (String), edad (int), casado (boolean), numeroDocumentoIdentidad (String), especialidad (String). Define un constructor asignando unos valores de defecto a los atributos y los métodos para poder establecer y obtener los valores de los atributos. Define un método de nombre “calculoParaMultiploEdad” que no recibe parámetros y es tipo procedimiento cuyo cometido será el siguiente: determinar cuántos años faltan para que la edad del médico sea múltiplo de 5 y mostrar un mensaje informativo por pantalla. Por ejemplo si el médico tiene 22 años deberá en primer lugar obtener el resto de la división de 22 entre 5, que es 2. Ahora obtendrá los años que faltan para que el médico tenga una edad múltiplo de 5, que serán 5-2 = 3 años. A continuación deberá mostrar un mensaje por consola del tipo: “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años”. Compila el código para comprobar que no presenta errores, crea un objeto, usa sus métodos y comprueba que aparezcan correctamente los mensajes por consola, y que cuando cambias la edad aparece correctamente el tiempo que falta para que la edad sea múltiplo de 5. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

algoritmo:
Citar
public class Medico{
    String nombre;
    String apellido;
    int edad;
    boolean casado;
    String dni;
    String especialidad;
   
    public Medico(){
        nombre = "";
        apellido = "";
        edad = 0;
        casado = false;
        dni = "";
        especialidad = "";
    }
   
    //metodo introduccion de datos setters
    public void setNombre (String valorNombre){
        nombre = valorNombre;
        System.out.println("Ha cambiado el nombre, el nuevo nombre es " + nombre);
    }
   
    public void setApellido (String valorApellido){
        apellido = valorApellido;
       
    }
   
    public void setEdad (int valorEdad){
        edad = valorEdad;
    }
   
    public void setCasado (boolean valorCasado){
        casado = valorCasado;
    }
   
    public void setDni (String valorDni){
        dni = valorDni;
    }
   
    public void setEspecialidad (String valorEspecialidad){
        especialidad = valorEspecialidad;
    }
   
    //metodo obtencion getters
    public String getNombre () {return nombre;}
   
    public String getApellido () {return apellido;}
   
    public int Edad () {return edad;}
   
    public boolean getCasado () {return casado;}
   
    public String getDni () {return dni;}
   
    public String getEspecialidad () {return especialidad;}
   
}

dice que debo crear un metodo llamado “calculoParaMultiploEdad” y tiene que hacer calculos y devolver mensajes con el numero de años faltantes para ser multiplo de 5... pero ahi dice que debe ser un procedimiento pero yo creo que es una funcion (una funcion es aquel metodo de devuelve un valor).


Porfavor Corrijanme!!!!.... Mil gracias!

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola, el código es correcto. Respecto a la duda que planteas, es razonable. Podrías cumplir el objetivo de mostrar el mensaje “El médico de nombre … con especialidad … tendrá una edad múltiplo de 5 dentro de … años” usando un método tipo función. No obstante, si haces exactamente lo que dice el enunciado, tendrías que declarar un método tipo procedimiento (void), dentro del método hacer un cálculo, y mostrar un mensaje por pantalla sin que el método devuelva ningún resultado (que haga un cálculo y muestre un resultado es distinto a que devuelva un resultado). La diferencia entre devolver o no devolver resultados la irás comprendiendo mejor a medida que avances en la programación Java, de momento ten en cuenta que si declaras el método como void realiza un proceso, pero no devuelve un resultado.

Por tanto respecto a qué hacer te diría que hagas lo que dice el enunciado, a medida que avances irás interpretando mejor las ventajas de hacer las cosas de una forma o de otra. Saludos.
Responsable de departamento de producción aprenderaprogramar.com

jonathan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
ok! mil gracias! ire probando!!

jonathan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
otra pregunta, como meto el procedimiento? tengo mi prototipo de procedimiento que he hecho pero nose si esta bien tampoco como meterlo en el codigo:


Citar
public void setApellido (String valorApellido){
        apellido = valorApellido;
       
    }
   
    public void setEdad (int valorEdad){
        edad = valorEdad;
        calculoparamultiploedad ();
            restante = (Medico.edad)%5; //cantidad para ser igual a 5
            faltante = 5-restante;//años faltantes
        }
    }
   
    public void setCasado (boolean valorCasado){
        casado = valorCasado;
    }
   

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Cuando quieras insertar código en el foro no utilices "Citar" sino pulsa el icono # que te aparece en el editor del foro y cuando te aparezcan las etiquetas [ code] ... [ / code] pega el código entre esas dos etiquetas, luego pulsa previsualizar y comprueba que se vea bien.

Sobre dónde meter el procedimiento: es un método más de la clase, igual que los setters y los getters. Puedes meterlo después de los getters por ejemplo. Respecto a cómo definirlo te pongo un ejemplo suponiendo que fuera un procedimiento que tiene que mostrar cuántos años son 3 veces la edad y 5 veces la edad.

Primero: elegir el nombre del procedimiento. No deberá empezar con get ni con set porque no es un método para recuperar ni establecer el valor de atributos. Elegiríamos por ejemplo mostrarMultiplosEdad.

Segundo: elegir qué parámetros necesita. Si va a utilizar la edad, la edad es un valor que ya está disponible como atributo de la clase. Por tanto no necesitamos pasárselo al método.

La signatura en este ejemplo quedaría public void mostrarMultiplosEdad () { ... }

Tercero: declarar al principio del método las variables que necesitemos para los cálculos. Suponemos que vamos a usar multiplo3Edad y multiplo5Edad

public void mostrarMultiplosEdad () { int multiplo3Edad;
int multiplo5Edad;
... }

Cuarto: escribir el código necesario para realizar los cálculos, mostrar lo que haya que mostrar, etc.

Código: [Seleccionar]
public void mostrarMultiplosEdad () { int multiplo3Edad;
int multiplo5Edad;
multiplo3Edad = edad*3;
multiplo5Edad = edad*5;
System.out.println("La edad multiplicada por 3 es " + multiplo3edad);
System.out.println("La edad multiplicada por 5 es " + multiplo5edad);
 }

Quinto: crear un objeto y probar que el método funciona
Responsable de departamento de producción aprenderaprogramar.com

jonathan

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 13
    • Ver Perfil
resuelto!!! mil gracias!!!!!!

 

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