Sou iniciante no mundo da programação, e comecei na semana passada um curso básico de Java. Hoje recebi a tarefa deste curso e estou com algumas dúvidas, poderiam me auxiliar nas mesmas???
Minhas dúvidas são:
-
Não consigo entender qual o erro que o sistema me aponta quando rodo. Entendo que ele me solicita que eu feche o scanner mas como faço essa atividade?
-
Quando crio outra classe com o nome de Principal para apontar os dados de cada um, não estou conseguindo puxar os atributos (Peso, Altura, IMC) para dar valores à cada objeto desta nova classe. Sabe me dizer porque?
Minha tarefa é a seguinte:
Instruções
Implemente no Eclipse uma classe chamada Paciente que possui um construtor que recebe o seu peso em quilos e sua altura em metros, ambos utilizando o tipo double.
Crie um método chamado calcularIMC() que calcula o índice de Massa Corporal de acordo com a fórmula IMC = peso (quilos) / (altura * altura (metros)).
Crie também um método chamado diagnostico() que utiliza o método calcularIMC() e retorna uma String de acordo com as seguintes faixas de valor:
Baixo peso muito grave = IMC abaixo de 16 kg/m²
Baixo peso grave = IMC entre 16 e 16,99 kg/m²
Baixo peso = IMC entre 17 e 18,49 kg/m²
Peso normal = IMC entre 18,50 e 24,99 kg/m²
Sobrepeso = IMC entre 25 e 29,99 kg/m²
Obesidade grau I = IMC entre 30 e 34,99 kg/m²
Obesidade grau II = IMC entre 35 e 39,99 kg/m²
Obesidade grau III (obesidade mórbida) = IMC igual ou maior que 40 kg/m²
Implemente no Eclipse uma classe chamada Principal em que se criam 3 instâncias da classe Paciente com valores diferentes e se imprime no console o resultado dos dois métodos criados.
Meu Programa é o Seguinte:
package Obesidade;
import java.util.Scanner;
public class Paciente {
public static void main (String[] args){
Scanner ler = new Scanner(System.in);
double peso, altura, imc;
System.out.println("Informe o peso (em kgs):\n");
peso = ler.nextDouble();
System.out.println("\nInforme a altura (em metros):\n");
altura = ler.nextDouble();
ler.close();
imc = peso / (altura*altura);
System.out.printf("\nIMC = %.2f", imc);
if (imc < 16)
System.out.println(" Baixo Peso Muito Grave.");
if ((imc >= 16) && (imc < 16.99))
System.out.println(" Baixo Peso Grave.");
if ((imc >= 17) && (imc < 18.49))
System.out.println(" Baixo Peso.");
if ((imc >= 18.50) && (imc < 24.99))
System.out.println(" Peso Normal.");
if ((imc >= 25) && (imc < 29.99))
System.out.println(" Sobrepeso.");
if ((imc >= 30) && (imc < 34.99))
System.out.println(" Obesidade Grau I.");
if ((imc >= 35) && (imc < 39.99))
System.out.println(" Obesidade Grau II.");
if ((imc >= 40))
System.out.println(" Obesidade Grau III. (Obesidade Mórbida)");
}
}
?