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

Verificación de compatibilidad para donar sangre

/María trabaja en un banco de sangre y necesita verificar si un donante es compatible para
// donar sangre. Para ser compatible, el donante debe cumplir con los siguientes criterios:
//
//Tener entre 18 y 65 años.
//Pesar más de 50 kg.
//
//Ella desea un programa que reciba la edad y el peso del donante e indique si es compatible para donar sangre.
// Si no lo es, el programa debe indicar qué criterio no fue cumplido.
//
//¿Cómo crearías un programa que reciba la edad y el peso del donante  y muestre un mensaje indicando si es compatible o no, además de informar qué criterio no fue cumplido, si es el caso?


import java.util.Scanner;

public class Maria {
    public static void main(String[] args) {
        int  edadCorrecta=0;
        int pesoCorrecto=0;

        Scanner scanner=new Scanner(System.in);

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

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

        boolean edadAceptada = (edad >= 18 && edad <= 65);
        boolean pesoAceptado = peso>=50;

        if(edadAceptada && pesoAceptado){
            System.out.println("Es  donante apto.");
        } else if (!edadAceptada && pesoAceptado) {
            System.out.println("No puede ser donante. No cumple con la edad requerida.");
        } else if (edadAceptada && !pesoAceptado){
            System.out.println("No puede ser donante. No cumple con el peso requerido. ");
        }else{
            System.out.println("No puede ser donante. No cumple con ningunas de las condiciones.");
        }


    }
}




1 respuesta

Hola Paloma, espero que estés bien

¡Qué bueno que estás practicando con Java! Tu código está casi perfecto para resolver el problema de verificación de compatibilidad para donar sangre. Solo hay un pequeño detalle que podrías ajustar para que el mensaje de salida sea más claro y se alinee con el ejemplo proporcionado.

Tu código ya verifica correctamente si el donante cumple con los criterios de edad y peso. Sin embargo, podrías ajustar los mensajes de salida para que sean más específicos y claros, como en el ejemplo que mencionas. Aquí te dejo una versión ligeramente modificada de tu código:

import java.util.Scanner;

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

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

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

        boolean edadAceptada = (edad >= 18 && edad <= 65);
        boolean pesoAceptado = peso > 50;

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

Con este ajuste, el programa primero indica que el donante no es compatible y luego proporciona el motivo específico o motivos por los cuales no cumple con los criterios. Espero que esta modificación te ayude a lograr el resultado esperado.

¡Espero haber ayudado y buenos estudios!