import java.util.Scanner; /** * Replace this JavaDoc comment for the purpose of this class */ public class Solution { /** * Gets data from standard input */ private Scanner input = null; /** * Start the execution of the solution * @param args Command line arguments */ public static void main(String args[]) { Solution solution = new Solution(); solution.run(); } /** * Run the solution. This method is called from main() */ public void run() { // Create object to read data from standard input this.input = new Scanner(System.in); /* if ( 0.1 + 0.2 == 0.3 ) System.out.println(" 0.1 + 0.2 == 0.3 "); else System.out.println("Ay mama!"); */ // Repetir mientras hayan datos while ( this.input.hasNextDouble() ) { // Leer la masa double masa = this.input.nextDouble(); // Leer la altura en centímetros double altura = this.input.nextDouble(); // Imprimir la masa // Imprimir la altura en centímetros System.out.printf("%6.2f %6.2f", masa, altura); System.err.printf("%-10s=%,10.2f altura=%.2f%n", "masa", masa, altura); // Si los datos son validos // Si masa es positiva y menor o igual a una tonelada // y la altura es positiva y menor o igual que 300cm if ( masa > 0 && masa <= 1000 && altura > 0 && altura <= 300 ) { // Convertir la altura de centimetros a metros altura = altura / 100.0; // Calcular el indice de masa corporal double indiceMasaCorporal = masa / (altura * altura); // Imprimir el indice de masa corporal System.out.printf(" %5.2f ", indiceMasaCorporal); // Cacular el estado nutricional: // Si imc es menor que 18.5 entonces if ( indiceMasaCorporal < 18.5 ) { // el estado nutricional es infrapeso System.out.print("underweight"); } // De lo contrario // Si el imc es menor que 25 entonces else if ( indiceMasaCorporal < 25 ) { // el estado nutricional es normal System.out.print("normal"); } // De lo contrario si el imc es menor que 30 entonces else if ( indiceMasaCorporal < 30 ) { // el estado nutricional es sobrepeso System.out.print("overweight"); } // De lo contrario else { // el estado nutricional es obesidad System.out.print("obese"); } // Imprimir el estado nutricional System.out.println(); } // De lo contrario else { // Imprimir datos inválidos System.out.println(" invalid data"); } } // Saber si los datos son validos: // Si masa es positiva y menor o igual a una tonelada y la altura es positiva y menor o igual que 300cm // Los datos son validos // De lo contrario // Los datos no son válidos // Calcular el indice de masa corporal: // Sea altura en metros la altura en centímetros dividido entre 100 // Calcular el indice de masa corporal (imc) con la formula m/h^2 // Cacular el estado nutricional: // Si imc es menor que 18.5 entonces // el estado nutricional es infrapeso // De lo contrario // Si el imc es menor que 25 entonces // el estado nutricional es normal // De lo contrario // Si el imc es menor que 30 entonces // el estado nutricional es sobrepeso // De lo contrario // el estado nutricional es obesidad // Close the standard input this.input.close(); } }