Calculo IMC  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
eduardo.gallo
HelloWorld
[Avatar]

Membro desde: 21/04/2007 18:28:56
Mensagens: 13
Offline

Olá pessoal. Sou iniciante em JAVA e tenho um exercicio, qual não consegui ainda solucionar. Por favor, se alguem puder colaborar dando dicas, me auxiliando a compreender e a resolver o mesmo ficarei muito grato.

[Exercicio]

Defina uma classe Java para representar uma pessoa. Uma pessoa, no nosso caso, possui os seguintes atributos: Nome, Idade, Altura, Peso, Sexo.

A classe deve possuir um método para calcular o IMC (Índice de Massa Corpórea) de uma pessoa e mostrar de acordo com os índices abaixo, sua categoria. O IMC é obtido através da divisão do peso pela altura ao quadrado e é interpretado da seguinte forma:
? IMC <= 18,5: Abaixo do peso normal
? 18,5 < IMC <= 25: Peso Normal
? 25 < IMC <= 30: Acima do peso normal.
? IMC > 30: Obesidade


IMC.java
public class IMC {

public float CalculoImc(float peso, float altura){

float imc;
imc=(peso)/(altura*altura);
return imc;

}
}

PessoaCalculoIMC.java
import javax.swing.JOptionPane;

public class PessoaCalculoIMC {

public static void main(String args[]){
IMC a=new IMC();

float ResultadoIMC;
String Peso=JOptionPane.showInputDialog("Digite o Peso");

float peso=Float.parseFloat(Peso);
String Altura=JOptionPane.showInputDialog("Digite a Altura");

float altura=Float.parseFloat(Altura);
ResultadoIMC=a.CalculoImc(peso, altura);
System.out.println(ResultadoIMC);

if (ResultadoIMC<=18.5)
System.out.println("Abaixo do peso normal");

if (18.5 < ResultadoIMC && ResultadoIMC <= 25)
System.out.println("Peso normal");

if (25 < ResultadoIMC && ResultadoIMC<=30);
System.out.println("Acima do peso normal");

if( ResultadoIMC > 30)
System.out.println("Obsidade");

}
}

Bem consegui fazer até aqui.
Segue as dúvidas:

1º O calculo as vezes apresenta duas resposta, será que errei no IF ou no &&?

2º Observei que se digitar (,) na altura o programa da erro. Como faço para aceitar a virgula na digitação? (ou é sempre ponto que se usa mesmo?)

3º Fiz uma classe pessoa em separado com os atributos, porem ainda estou em dúvida de como usar. É possivel colocar estes atributos dentro na classe IMC.java?

Muitas duvidas né? por favor pessoal preciso de um norte ai pra tentar solucionar o exercício.

Obrigado.

Eduardo Gallo - Pense, mas nunca pare de buscar, quem te quer mostrar a verdade.
[MSN]
francislei_apiai
Thread.start()
[Avatar]

Membro desde: 07/10/2004 09:50:53
Mensagens: 39
Offline

Quanto a estrutura de seleção if, poderia ser assim:


if( ResultadoIMC > 30 )

System.out.println("Obesidade";

else if (ResultadoIMC > 25);

System.out.println("Acima do peso normal";

else if (ResultadoIMC > 18.5)

System.out.println("Peso normal";

else

System.out.println("Abaixo do peso normal";



Quanto ao ponto (.) ou virgula (,), ACHO que tem que ser sempre ponto(.)

Quanto as variáveis de instância:

é possivel utilizar sim.

ex.:


class Pessoa {
String nome;
int idade;
}




public class Utiliza {
public static void main (String[] args) {
Pessoa pessTeste = new Pessoa();

pessTeste.nome = "Fulano";

}
}

Os únicos limites do homem são o tamanho de suas idéias e o grau de sua dedicação.
[MSN]
francislei_apiai
Thread.start()
[Avatar]

Membro desde: 07/10/2004 09:50:53
Mensagens: 39
Offline

Desculpe, mas estou enviando novamente, não abro mão da Identação.

Quanto a estrutura de seleção if, poderia ser assim:



Quanto ao ponto (.) ou virgula (,), ACHO que tem que ser sempre ponto(.)

Quanto as variáveis de instância:

é possivel utilizar sim.

ex.:





Os únicos limites do homem são o tamanho de suas idéias e o grau de sua dedicação.
[MSN]
francislei_apiai
Thread.start()
[Avatar]

Membro desde: 07/10/2004 09:50:53
Mensagens: 39
Offline

putz... que bobeira, eu poderia simplemente ter editado a primeira mensagem... mas ainda vou ficar bom nesse fórum...

Ah, e acho que ficaria legal, já que as entradas são no modo gráfico, as saídas também serem no modo gráfico ou tudo no modo texto... é só uma opinião...

t+

Os únicos limites do homem são o tamanho de suas idéias e o grau de sua dedicação.
[MSN]
eduardo.gallo
HelloWorld
[Avatar]

Membro desde: 21/04/2007 18:28:56
Mensagens: 13
Offline

Valeu brother. Da para entender sim, fique tranquilo e aliás o que vale é a inteção de colaborar.

Mas veja só.

Alterei no programa conforme sugerido, porem esta dando erro de syntax no segundo else. Alterei para if e executou, porem ainda continuo com o problema de apresentar duas respostas.

Ex: Peso=80 e Altura=1.80

Resultado do IMC=24.69136

como resposta do sysout é apresentado:

Acima do peso normal
Peso normal


Outra dúvida.

fiz uma classe PessoaAtribute.java




Tem como PessoaCalculoIMC.java pegar os atributos e utilizar o peso e a altura digitada para fazer o calculo sem ter que pegar duas vezes a informação? e posteriormente imprimir?:

Exemplo:
Nome: Eduardo
Idade: 26
Altura: 1.80
Peso: 80
Sexo: Masculino
IMC: 24.69136
Acima do Peso

estou utilizando tres .java
PessoaAtribute.java (Contem os atributes de pessoa)
IMC.java (Onde tem a formula para o calculo)
PessoaCalculoIMC.java (Pego os dados para fazer o calculo)

ta certo ou dava para fazer em apenas duas classes?

Abraço. T+

Eduardo Gallo - Pense, mas nunca pare de buscar, quem te quer mostrar a verdade.
[MSN]
francislei_apiai
Thread.start()
[Avatar]

Membro desde: 07/10/2004 09:50:53
Mensagens: 39
Offline

Fiz o teste da estrutura if, como está abaixo, e funcionou tudo certinho.
E altura/peso não podem ser int "1.8".


Os únicos limites do homem são o tamanho de suas idéias e o grau de sua dedicação.
[MSN]
eduardo.gallo
HelloWorld
[Avatar]

Membro desde: 21/04/2007 18:28:56
Mensagens: 13
Offline

Fiz testes e esta perfeito. Até onde pude observar, o mesmo esta apresentando os resultados corretamente. Muito obrigado pela colaboração.

Agora falta mesmo é implementar a classe pessoa, juntamente com este calculo e apresentar um resultado só.

É possivel pegar a altura e o pessoa da classe "PessoaAtribute" juntamente com as outras infomações como nome, sexo e etc e apresentar em uma sequencia unica? Pode me dar um norte referente a isso?

Exemplo:
Nome: Eduardo
Idade: 26
Altura: 1.80
Peso: 80
Sexo: Masculino
IMC: 24.69136
Acima do Peso

Grato

Eduardo Gallo - Pense, mas nunca pare de buscar, quem te quer mostrar a verdade.
[MSN]
vinifocka
Smalltalk

Membro desde: 09/02/2011 13:16:17
Mensagens: 2
Offline

Eu poderia utilizar este aplicativo e colocar num celular que 'possua' java?
Ou eu teria que fazer um aplicativo me.
Edu Valente
Thread.start()
[Avatar]

Membro desde: 03/01/2011 22:14:48
Mensagens: 32
Offline

rapaz... não desenterre tópicos... você acabou de desenterrar um de quatro anos atrás : \

This message was edited 1 time. Last update was at 11/03/2011 15:36:47


"O que me preocupa não é o grito dos maus mas o silêncio dos bons." Martin Luther King



vinifocka
Smalltalk

Membro desde: 09/02/2011 13:16:17
Mensagens: 2
Offline

mas a 4 anos atrás nem pensava em programar em java :/
sou novato pelo guj e programando java e queria tirar a minha duvida

renamed
GUJ Ranger

Membro desde: 21/09/2009 08:47:57
Mensagens: 912
Localização: Rio de Janeiro
Offline

vinifocka wrote:Eu poderia utilizar este aplicativo e colocar num celular que 'possua' java?
Ou eu teria que fazer um aplicativo me.


Teria que fazer um novo projeto pra dispositivos móveis. Esse projeto não gera um .jad e o .jar criado não possui mtas classes da versão SE.

flw!
===========================
Bacharel em Sistemas de Informação pela PUC-Rio
Mestrando em Inteligência Artificial pelo PPGI-UFRJ
[MSN]
renamed
GUJ Ranger

Membro desde: 21/09/2009 08:47:57
Mensagens: 912
Localização: Rio de Janeiro
Offline

vinifocka wrote:mas a 4 anos atrás nem pensava em programar em java :/
sou novato pelo guj e programando java e queria tirar a minha duvida



Crie um novo tópico e pergunte. As pessoas vão responder numa boa.

flw!
===========================
Bacharel em Sistemas de Informação pela PUC-Rio
Mestrando em Inteligência Artificial pelo PPGI-UFRJ
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team