Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Propuesta de solución


public class DonanteSangre {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Ingrese la edad del donante: ");
        int edad = scanner.nextInt();

        System.out.print("Ingrese el peso del donante (kg): ");
        double peso = scanner.nextDouble();

        boolean edadValida = (edad >= 18 && edad <= 65);
        boolean pesoValido = (peso > 50);

        if (edadValida && pesoValido) {
            System.out.println("El donante es compatible para donar sangre.");
        } else {
            System.out.println("El donante NO es compatible para donar sangre.");
            if (!edadValida) {
                System.out.println("- No cumple con el criterio de edad (debe tener entre 18 y 65 años).");
            }
            if (!pesoValido) {
                System.out.println("- No cumple con el criterio de peso (debe pesar más de 50 kg).");
            }
        }

        scanner.close();
    }
}
1 respuesta

Hola Roberto, espero que estés bien

Tu propuesta de solución para verificar la compatibilidad de un donante de sangre parece estar bien encaminada. El código que has compartido efectivamente solicita la edad y el peso del donante, y luego verifica si cumple con los criterios establecidos. Además, proporciona un mensaje detallado sobre qué criterio no se ha cumplido, lo cual es excelente.

Aquí tienes algunos puntos a considerar o mejorar:

  1. Mensajes de salida: Asegúrate de que los mensajes de salida sean claros y concisos. Por ejemplo, podrías ajustar el mensaje para que coincida exactamente con el ejemplo de salida esperada que mencionaste. Esto podría implicar cambiar "El donante NO es compatible para donar sangre." por "El donante no es compatible." y "Motivo:" antes de listar los criterios no cumplidos.

  2. Ejemplo de ejecución: Asegúrate de que el formato de entrada y salida coincida con lo que se espera en el ejercicio. Tu código ya está bastante alineado con esto.

  3. Cierre del scanner: Ya estás cerrando el scanner al final del programa, lo cual es una buena práctica para liberar recursos.

Aquí tienes un pequeño ajuste en el mensaje de salida para que coincida más con el ejemplo proporcionado:

if (edadValida && pesoValido) {
    System.out.println("El donante es compatible para donar sangre.");
} else {
    System.out.println("El donante no es compatible.");
    System.out.println("Motivo:");
    if (!edadValida) {
        System.out.println("- Debe tener entre 18 y 65 años.");
    }
    if (!pesoValido) {
        System.out.println("- Debe pesar más de 50 kg.");
    }
}

Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!