Java - indice de imc

 
Vista:
sin imagen de perfil
Val: 20
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

indice de imc

Publicado por brittany (7 intervenciones) el 02/01/2021 23:47:16
Se desea realizar un programa que calcule el estado de salud de una persona, basándose en el Índice de Masa Corporal.
El programa pedirá ingresar la siguiente información:
Nombre
Edad
Estatura (centímetros)
Peso (libras)
El Programa Calculará y presentará el IMC, en base a la siguiente formula:
IMC = kilogramos / (metros)2
Luego de mostrar el índice mostrará el estado de salud en base a los siguientes rangos:
Bajo Peso menos de 18.5
Normal entre 18.5 y 24.9
Sobrepeso entre 25 y 29.9
Obesidad más de 30
Después de ingresar mostrar el estado de salud, preguntará si desea ingresar otra persona, y se repetirá el proceso, hasta que ya no desee ingresar más.
Una vez que se hayan ingresado todos los datos mostrará cuantas personas hay por cada estado de salud.
También mostrará la cantidad de personas de 2 grupos que requieren especial atención:
Menores desnutridos (menores de 15 años que presenten bajo peso)
Posible Infarto (mayores de 40 años que presenten obesidad)
NECESITO AYUDA CON ESTE PROGRAMA, ESTOY INICIANDO EN LA PROGRAMACION Y HAY COSAS QUE AUN NO COMPRENDO , ADJUNTO MI AVANCE, SERIA UNA GRAN AYUDA LLEGAR A TERMINARLO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import java.util.*;
class calculoIMC {
  public static void main (String arg[])
  {
    Scanner sc=new Scanner ( System.in);
    String otro="";
    double contador=0;
    double imc=0;
    double pesokg=0;
    int contador=0;
    int bajopeso=0; int normal=0; int sobrepeso=0; int obesidad=0;
 
  do {
 
  // variables serian nombre, edad, peso y estatura//
 
      System.out.println ("ingrese nombre");
      String nombre=sc.next();
      System.out.println ("ingrese edad");
      int edad=sc.nextInt();
      System.out.println ("ingrese peso");
      double peso=sc.nextDouble();
      System.out.println ("ingrese estatura");
      double estatura=sc.nextDouble();
 
 
      contador++;
      pesokg=(peso/2.20);
 
      imc= pesokg /(estatura*estatura);
 
      System.out.println("SU IMC ES:"+imc);
 
 
      if (imc<=18.5)
      {
          System.out.println( "BAJO PESO");
          bajopeso++;
 
      } else if (imc>1.85 || imc<=24.9)
      {
          System.out.println( "NORMAL");
          normal++;
 
      } else if (imc>25 || imc<=29.9)
      {
          System.out.println( "SOBREPESO");
          sobrepeso++;
 
      } else
          System.out.println("OBESIDAD");
          obesidad=0;
 
          System.out.println("Desea ingresar otra persona Si/No");
          otro=sc.next();
 
     } while (otro.equals ("si") || otro.equals ("SI"));
 
       System.out.println("se ha ingresado"+bajopeso+"con bajo peso");
       System.out.println("se ha ingresado"+normal+"con peso normal");
       System.out.println("se ha ingresado"+sobrepeso+"con sobre peso");
       System.out.println("se ha ingresado"+obesidad+"con obesidad");
  }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

indice de imc

Publicado por pablo (239 intervenciones) el 03/01/2021 05:51:26
Hola tienes que evaluar tu programa ejemplo en la línea cuarenta se encuentra esto
1
else if (imc>1.85 || imc<=24.9)
Según lo que te da es 18.5 por lo que el valor corregido debería ser 18.5
En la línea 50 a 53 hay unas llaves que faltan para ese else
en la línea 52 debería de ir ++ no obesidad = 0
Para qué utilizas la variable contador? estas usando espacio en memoria.

Yo colocaría otro if con otros contadores para menores desnutridos y posible infarto añadiría variables contador tipo md(menores desnutridos) y pi(posible infarto) de tipo entero

1
2
3
4
5
if(imc<18.5 && edad <15){
              md ++;
}else if(imc>29.9 && edad 40){
   pi++;
}

Y al final de tu código después de finalizado el bucle do/while puedes agregar los dos grupos extras que te piden
1
2
System.out.println("Menores desnutridos ingresados" + md)
System.out.println("Posible infarto ingresados" +pi)

Espero que te pueda ayudar.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 20
Ha disminuido su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

indice de imc

Publicado por brittany (7 intervenciones) el 03/01/2021 17:27:40
El contador lo quiero utilizar para que el programa al final me indique cuantas persons he ingresado por bajo peso, peso normal, sobrepeso y obesidad. Pero por algunos errrores no he podido ejecutarlo. Tambien tengo duda si estaria bien implementado. Adicional, muchas gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de pablo
Val: 626
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

indice de imc

Publicado por pablo (239 intervenciones) el 04/01/2021 17:57:35
Claro algunos errores son falta de llaves en las líneas que te dije además de errores quizá de tipeo que pusiste 1.85 y no el 18.5 que te pide tu ejercicio, y el contador para llevar las personas bueno está bien.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar