Código não roda... cálculo do IMC

20 respostas
silvafarol2

OLÁ PESSOAL
GOSTARIA QUE ME AJUDASSE POR FAVOR

POIS TENHO UM TRABALHO QUE PRECISA CALCULAR A IMC (INDICE MASSA MUSCULAR)
PESO >0 E ALTURA 1 ATE 3

POIS NAO SEI O QUE FIZ DE ERRADO QUE NAO QUER RODAR..SEGUE ABAIXO O CODIGO DA CLASS

public class Massa {
	
	private int peso;
	private int alt;
	private int im;

	

	public Massa() {
		// TODO Auto-generated constructor stub
	}
		
//public double setAlt(int alt){
	//return this.alt= alt;
	//}

public double getAlt(){
	return alt;
}

public double getPeso() {
	return peso;
}


public void setPeso(double parseDouble) {
	// TODO Auto-generated method stub

AGORA SEGUE O PRINCIPAL

import javax.swing.JOptionPane;


public class Principal {
	
	public static void main(String[]args){
		
		Massa m= new Massa();
		
		m.setPeso(Double.parseDouble(JOptionPane.showInputDialog(null,"Digite PESO: "  )));	
		m.setAlt(Double.parseDouble(JOptionPane.showInputDialog(null,"altura: ")));
		
		
		JOptionPane.showMessageDialog(null, "o im é:" +  m.Massac(im));
		//JOptionPane.showMessageDialog(null,"a altura foi:" + m.getAlt());
		
	}

AGUARDO RETORNO..
OBRIGADA

20 Respostas

MarkKnopfler

coloque as [ code ] e [ /code ] (sem os espaços) ao redor do seu código (já tem o botãozinho pra isso quando vc cria o post, é só selecionar e clicar).
se vc disser qual o erro que dá ajuda bastante!!

silvafarol2

oii amigo
segue

Exception in thread main java.lang.ArithmeticException: / by zero

at Massa.Massac(Massa.java:52)

at Principal.main(Principal.java:16)
A

Você não inicializou suas variaveis e esta ocorrendo uma divisão por zero.

silvafarol2

ok…
public int Massac() {

int h = 0, pes = 0;
if (pes >0 && h<= 3);
return im= peso / (alt *alt);
silvafarol2

mas ainda ocorre o erro.

thiago_dias

Afinal, você está utilizando int ou double para as propriedades?

m.setPeso(Double.parseDouble(JOptionPane.showInputDialog(null,"Digite PESO: " )));	
m.setAlt(Double.parseDouble(JOptionPane.showInputDialog(null,"altura: "))); 

...

//public double setAlt(int alt){ 
//return this.alt= alt; 
//} 

public double getAlt(){ 
return alt; 
} 

public double getPeso() { 
return peso; 
} 


public void setPeso(double parseDouble) { 
// TODO Auto-generated method stub

Acredito que você já arrumou isso… portanto, poste o seu código atualizado.

Estamos aguardando.

Abrs

silvafarol2
public class Massa {

private double peso;

private double alt;
public Massa() {
	// TODO Auto-generated constructor stub
}
//public double setAlt(int alt){

//return this.alt= alt;

//}
public double getAlt(){

return alt;

}

public void setPeso(double parseDouble) {
// TODO Auto-generated method stub

}

public void setAlt(double parseDouble) {
// TODO Auto-generated method stub

}
public int Massac() {

double h = 0, pes = 0;
if (pes > 0 && h<= 3);

return (int) (peso / (alt *alt));

}
}

ViniGodoy

Por favor, não abuse das letras maiúsculas.

silvafarol2

ok

ViniGodoy
Precisa implementar o método setPeso, e o método setAlt. Só deixar comentários lá não adianta:
public void setPeso(double peso) { 
    this.peso = peso;
}

public void setAlt(int alt){ 
    return this.alt= alt; 
}
silvafarol2

o erro esta
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
The method Massac(double) in the type Massa is not applicable for the arguments ()

at Principal.main(Principal.java:17

essa linha é
JOptionPane.showMessageDialog(null, “o im é:” + m.Massac());

charleston10

Tenho esse software aqui para controle nutricional,
tem calculo imc e calcula o tanto de calorias que uma pessoa tem que ingerir durante um dia
ou o tanto de acordo com o tipo de trabalho, fiz já faz alguns anos quando estava começando a programar
em java.

Pode ajudar
http://javaaberto.blogspot.com.br/2012/05/controle-nutricional.html

;]

charleston10

Não esta funcionando por causa do seu método ele não está retornando nada dentro dele.

Tá mto esquisito esse seu método, o IF ta servindo pra nada.. ^^

public int Massac() {

double h = 0, pes = 0;

if (pes > 0 && h<= 3);

return (int) (peso / (alt *alt));

}

public double Massac(double altura, double peso){
       double retorno = 0;
       
       if (peso > 0 && altura<= 3) retorno = (peso / (altura *altura));

       return retorno;
}

Implementação do método..

import javax.swing.JOptionPane;   
 
public class Principal {  
      
    public static void main(String[]args){  
          
        Massa m= new Massa();  
          
        m.setPeso(Double.parseDouble(JOptionPane.showInputDialog(null,"Digite PESO: "  )));   
        m.setAlt(Double.parseDouble(JOptionPane.showInputDialog(null,"altura: ")));  
          
          
        JOptionPane.showMessageDialog(null, "o im é:" +  m.Massac(m.getPeso,m.getAlt));         
          
    }
silvafarol2

consegui calcular o imc…
mas o problema agora é a altura tem que ser ate 3 …e qdo digito maior que tres ele ainda calucla…
eu tenho que usar o fot?
segue codigo

import javax.swing.JOptionPane;

public class Principal {

public static void main(String[]args){
	
	Massa m= new Massa();
	
	double im;
	String Peso=JOptionPane.showInputDialog("Digite o Peso");
	
	double peso=Double.parseDouble(Peso);
	String Alt=JOptionPane.showInputDialog("Digite a Altura");

	double alt=Double.parseDouble(Alt);{
	
	double  peso1=0;
	if (peso1 > 0 );
	}
	   int h = 0;
	if (h<=3);{
		   
		
		System.out.println("\no imc é: ");
		}
	
	double im1 = (peso)/(alt*alt);
	System.out.println(im1);
	

}

}

charleston10

por favor da uma olhada no código que postei…

;]

L

Como o charleston10 falou, o seu método não faz sentido, e no ultimo código postado, a 2 variáveis(peso1 e h) que você lhe da o valor de zero depois, e antes de ler ela ou fazer alguma operação com ela, você ja a compara. Então percebi que estes fatores não alteram o seu código, então seria bom tirá-lo.
Em relação sua ultima pergunta. você poderia usar uma exceção ou simplesmente usar um if ou while para isso, como demonstrado abaixo.

while (alt > 3){
	JOptionPane.showMessageDialog(null, "Alto demais");
	alt = Double.parseDouble(JOptionPane.showInputDialog("Qual sua altura?"));	
}
double peso1=0;
if (peso1 > 0 );
}
int h = 0;
if (h<=3);{


System.out.println("\no imc é: ");
}

Ou em vez de faze-lo colocar um numero menor que 3, você pode dar um System.exit(0);

Spammer

charleston10:
Tenho esse software aqui para controle nutricional,
tem calculo imc e calcula o tanto de calorias que uma pessoa tem que ingerir durante um dia
ou o tanto de acordo com o tipo de trabalho, fiz já faz alguns anos quando estava começando a programar
em java.

Pode ajudar
http://javaaberto.blogspot.com.br/2012/05/controle-nutricional.html

;]

qual e a senha do ficheiro rar

Spammer
[email removido:
]ok..
public int Massac() {
	
	int h = 0, pes = 0;
	if (pes >0 && h<= 3);
	return im= peso / (alt *alt);

essa sua funcao sera sempre verdadeira porque o valor da altura entra sempre com 0

public int Massac() {
	
	int h = 0, pes = 0; //aqui voce 'seta' o valor da altura pra zero
	if (pes >0 && h<= 3); //logo a seguir faz uma comparacao para ver se a altura e menor que 3... aqui h=0 ainda
	return im= peso / (alt *alt);
charleston10

ta em baixo do link…

Spammer

ta em baixo do link…

ehhehe nao tinha prestado atencao parecia um link

Criado 18 de dezembro de 2012
Ultima resposta 20 de dez. de 2012
Respostas 20
Participantes 8