Autor Tema: Ejercicios CU00633B y CU00634B operadores de comparación java  (Leído 4387 veces)

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola envío el ejercicio CU00633B

Código: [Seleccionar]
/**
 * @author (Toni)
 * @version (0)
 * Atributos de la clase Medico...
 * nombre, apellidos, edad, casado, numeroDNI y especialidad
 */
public class Medico {

    String nombre;
    String apellidos;
    int edad;
    boolean casado;
    String numeroDNI;
    String especialidad;

    /**
     * Constructor inicializador
     */
    public Medico()
    {
        nombre = "DesConocido";
        apellidos = "DesConocidos";
        edad = 0;
        casado = false;
        numeroDNI = "DesConocido";
        especialidad = "DesConocido";
    }

    //Métodos para establecer atributos

    public void setNombre (String valorNombre) {
        System.out.println ("El médico conocido por < " + nombre +
            " > se ha cambiado el nombre por el de < " + valorNombre + " >.");
        nombre =  valorNombre;
    }

    public void setApellidos (String valorApellidos) {
        apellidos = valorApellidos;
        System.out.println ("Al médico de nombre < " + nombre +
            " > le corresponden los apellidos < " + apellidos + " >.");
    }

    public void setEdad (int valorEdad) {
        edad =  valorEdad;
        System.out.println ("Se hace saber que el médico < " + nombre + " " + apellidos +
            " > tiene una edad de < " + edad + " > años.");
        calculoParaMultiploEdad();
    }

    public void setCasado (boolean valorCasado) {
        casado = valorCasado;
        System.out.println ("Se nos ha comunicado que el médico < " + nombre + " " + apellidos +
            " > está casado, y hemos de decir que eso es < " + casado + " >.");
    }

    public void setNumeroDNI (String valorNumeroDNI) {
        numeroDNI = valorNumeroDNI;
        System.out.println ("Terminados los procesos de verificación, certificamos que el DNI " +
            "del médico < " + nombre + " " + apellidos + " > es: \n" + numeroDNI);
    }

    public void setEspecialidad(String valorEspecialidad){
        especialidad = valorEspecialidad;
        System.out.println("Ejectivamente, tras cotejar las titulaciones aportadas, " +
            "aseguramos que el médico < " + nombre + " " + apellidos + " > tiene la especialidad de: < " +
            especialidad + " >");
    }

    //Métodos para leer atributos

    public String getNombre () { return nombre; }

    public String getApellidos () { return apellidos; }

    public int getEdad () { return edad; }

    public boolean getCasado () { return casado; }

    public String getNumeroDNI () { return numeroDNI; }

    public String getEspecialidad () { return especialidad; }

    //Años que faltan para tener una edad múltiplo de 5
    public void calculoParaMultiploEdad () {
        int tempEdad = edad;
        int faltanAños = 0;
        faltanAños = 5 - (tempEdad % 5);
        System.out.println ("\tAtención. \nAl médico < " + nombre + " " + apellidos + " > \n" +
            "Con especialidad en < " + especialidad + " > le faltan < " + faltanAños + " > años para que su edad sea múltiplo de 5.");
    }
}

Y también el ejercicio CU00634B (evaluación de expresiones)

Código: [Seleccionar]
Dadas las variables de tipo int con valores A = 5, B = 3, C = -12 indicar si la evaluación de estas expresiones daría como resultado verdadero o falso:

EVALUACION EXPRESION
<True> a) A > 3
<True> b) A > C

<False> c) A < C
<False> d) B < C

<True> e) B != C
<False> f) A == 3

<True> g) A * B == 15
<False> h) A * B == -30

<True> i) C / B < A
<False> j) C / B == -10

<True> k) C / B == -4
<False> l) A + B + C == 5

<True> m) (A+B == 8) && (A-B == 2)
<True> n) (A+B == 8) || (A-B == 6)

<False> o) A > 3 && B > 3 && C < 3
<True> p) A > 3 && B >= 3 && C < -3

Saludos.
« Última modificación: 02 de Septiembre 2014, 18:16 por Alex Rodríguez »

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Ejercicios CU00633B y CU00634B para revisar.
« Respuesta #1 en: 16 de Junio 2014, 17:45 »
 Lo veo todo bien! Salu2!!

while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicios CU00633B y CU00634B para revisar.
« Respuesta #2 en: 16 de Junio 2014, 18:32 »
Hola Sniper. Gracias por tu comentario.
Permíteme una pregunta.
Yo he probado el código y me funciona, supongo que tu has hecho lo mismo, o compruebas que las instrucciones están bien escritas.

En cuanto a la evaluación de las expresiones ¿Tienes una plantilla de respuestas o algo asi?

Dime algo Sniper. Saludos.

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Ejercicios CU00633B y CU00634B para revisar.
« Respuesta #3 en: 16 de Junio 2014, 22:32 »
Hola Sniper. Gracias por tu comentario.
Permíteme una pregunta.
Yo he probado el código y me funciona, supongo que tu has hecho lo mismo, o compruebas que las instrucciones están bien escritas.

En cuanto a la evaluación de las expresiones ¿Tienes una plantilla de respuestas o algo asi?

Dime algo Sniper. Saludos.

  No me fue necesaria una plantilla de respuesta para identificar si las expresiones están correctas o no, solo basta con dominar el tema y evaluar cada expresion una por una.

En mi primera respuesta solo evalué las expresiones y pase por alto verificar el código de  tu clase Medico, para la cual tengo los siguientes comentarios:

El código compila sin errores y cumple su cometido con relación al ejercicio, no obstante hay (errores) si así se les podría llamar, los cuales el compilador java no reconoce como errores ni entra en disputa a la hora de compilar, para explicarme mejor un ejemplo seria este:
Código: [Seleccionar]
numeroDNI = "DesConocido";en ves de numeroDNI el cual interpretado logicamente se podria interpretar como numeroDocumentoNumeroIdentidad deverias de usar numeroDI que aria referencia a numeroDocumentoIdentidad o abreviado en ingles IDN identificationDocumentNumber o cualquier otro nombre dentro de lo que cabe, que se relacione mas con lo que se quiere plantear, en numeroDNI haces reseña dos veces a la palabra numero.

En esta parte:
Código: [Seleccionar]
    public void setNombre (String valorNombre) {
  System.out.println ("El médico conocido por < " + nombre +
   " > se ha cambiado el nombre por el de < " + valorNombre + " >.");
     nombre =  valorNombre;
    }
el cotejo de el mensaje que devuelve el método al recibir una cambio sobre su valor por defecto, pareciera como si un usuario esta usando el programa para consultar información sobre el medico, cuando lo correcto es que el medico esta usando el programa para actualizar sus datos y el programa le indica en un mensaje de tiempo real acerca de cada cambio en especifico una ves realizado dicho cambio, podría ser una secretaria quien use el programa para actualizar los datos del doctor, el caso es que dicho mensaje debe estar orientado a quien se supone que este realizando los cambios y no a alguien que este solicitando el valor de los cambios ya pre establecidos. esto se nota mas en este fragmento de tu código:
Código: [Seleccionar]
    public void setEdad (int valorEdad) {
  edad =  valorEdad;
 System.out.println ("Se hace saber que el médico < " + nombre + " " + apellidos +
  " > tiene una edad de < " + edad + " > años.");
 calculoParaMultiploEdad();// este metodo dentro de este setter es imnecesario!!!
    }
donde seria mas logico System.out.println
("ha cambiado la edad del médico < " + nombre + " " + apellidos +" > " + " su nueva edad es < " + edad + " > años.");
           
Estos (errores) que en lo personal para mi no son errores, sino variables y mensajes lógicamente mal expresados, no afectan en lo mas mínimo el buen funcionamiento del código, pero podría conllevar a confusiones tanto para el programador que puede ver el código (numeroDNI) como para el usuario que ínter actúa con el programa
("Se nos ha comunicado que el médico juan perez esta casado")

Espero que ayas captado la idea! salu2!!
« Última modificación: 16 de Junio 2014, 22:55 por Sniper »
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicios CU00633B y CU00634B para revisar.
« Respuesta #4 en: 17 de Junio 2014, 08:11 »
Hola Sniper, gracias por tus comentarios detallados.

Tienes razón. Para evaluar las expresiones, si dominas el tema, basta con evaluar cada expresión y ver si está bien o no. Espero conseguir un dominio así en un futuro próximo.

En cuanto a tus comentarios sobre la clase Medico, he aquí mi punto de vista.
Lo del nombre de las variables <numeroDNI>, puede que no sea apropiado, pero ese detalle solo lo vemos tu y yo al ver el código. El usuario que ejecuta el programa, ignora estos detalles.
Por otro lado, si las salidas por consola, no son adecuadas, o no son las las esperadas, pues que quieres que te diga. Un programa como este, listo para ser usado, tendría un propósito: Que lo use el médico, o un administrador, o distintas personas. Habría que decidir bien que respuestas da el programa.
Para mí en este momento, el primer propósito era dar respuesta por consola de los cambios, naturalmente, lo he hecho a mi manera, me parecía demasiado seco poner:
System.out.println ("El nombre del médico es: " + nombre); .

Acepto que mis respuestas (las que da el programa) puedan dar lugar a error (nunca engaño).
Gracias por tu punto de vista. Yo, nunca habría llegado a esas conclusiones.
Sal U2

 

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