Calcular peso ideal de acordo com o sexo[Resolvido]

Amigos, neste programinha é necessário calcular o peso ideal conforme o sexo masculino ou feminino, eu fiz assim, digam se esta certo.
public class Segundo {

[code] public static void main(String[] args) {

      double  a, pim, pif ;
      char s;
      pim = (72.7 * a) - 58;
      pif = (62.1 * a) - 44.7;
      
                        

      a = InOut.leDouble("Entre com sua altura");
      s = InOut.leChar ("Entre com seu sexo");

if ( s == ‘m’){

    pi = pim;
    
    System.out.println(" Seu peso ideal eh"+ pi);
    }else if(s == 'f'){
        
        pi = pif;
      System.out.println("Seu peso ideal eh"+pi);
    }

}

}

[/code]

Oi!

1 - Sempre poste código usando as tags code

2 - O que é o “peso ideal”? É baseado no IMC da pessoa? Se sim, você tem que saber a fórmula e para saber se o seu código está correto, muito simples.
Use uma calculadora ou procure na net mesmo que deve ter zilhões de páginas que fazem isso, digita 3 tipos diferentes de entrada para homem e mulher. Anote os valores e aplique em seu programa e veja se obtém os mesmos resultados.

Observação: pesquise a fórmula corretamente e tenha certeza que está calculando corretamente, para depois testar os valores em seu código. Pegar valores errados como referência não resolve :wink:

Abraços.

[quote=nel]Oi!

1 - Sempre poste código usando as tags code

2 - O que é o “peso ideal”? É baseado no IMC da pessoa? Se sim, você tem que saber a fórmula e para saber se o seu código está correto, muito simples.
Use uma calculadora ou procure na net mesmo que deve ter zilhões de páginas que fazem isso, digita 3 tipos diferentes de entrada para homem e mulher. Anote os valores e aplique em seu programa e veja se obtém os mesmos resultados.

Observação: pesquise a fórmula corretamente e tenha certeza que está calculando corretamente, para depois testar os valores em seu código. Pegar valores errados como referência não resolve :wink:

Abraços.[/quote]

o calculo deve ser feito com essa base

pim = (72.7 * a) - 58; // pmi eh peso ideal masculino pif = (62.1 * a) - 44.7;// pif eh peso ideal feminino [code]

double a, pim, pif ; char s; pim = (72.7 * a) - 58;
Da problema aqui porque você tenta multiplicar o “a” que não é inicializado.
Você primeiro deve receber o “a” para depois então fazer o calculo.

Abraço,

[quote=henriqueluz]double a, pim, pif ; char s; pim = (72.7 * a) - 58;
Da problema aqui porque você tenta multiplicar o “a” que não é inicializado.
Você primeiro deve receber o “a” para depois então fazer o calculo.

Abraço,[/quote]

Ok, o a representa a altura do usuario, e eh o proprio usuario que ira indicar o valor de a, como devo atribuir ?
Essa atribuição não esta sendo feita nessa linha:

a = InOut.leDouble("Entre com sua altura");

?

Atribua primeiro a altura que o usuário informa para depois fazer o calculo:

[code]double a, pim, pif ;
char s;

a = InOut.leDouble(“Entre com sua altura”);
s = InOut.leChar (“Entre com seu sexo”);

pim = (72.7 * a) - 58;
pif = (62.1 * a) - 44.7;[/code]

Abs,

[quote=henriqueluz]Atribua primeiro a altura que o usuário informa para depois fazer o calculo:

[code]double a, pim, pif ;
char s;

a = InOut.leDouble(“Entre com sua altura”);
s = InOut.leChar (“Entre com seu sexo”);

pim = (72.7 * a) - 58;
pif = (62.1 * a) - 44.7;[/code]

Abs,[/quote]

Isso já não esta sendo feito aqui?

a = InOut.leDouble("Entre com sua altura");

Não. Vou explicar, de acordo com o seu código escrito no primeiro post.

double a, pim, pif ; char s; /* Aqui você tenta fazer o cálculo ANTES de receber o valor da variável "a" Logo como o "a" ainda não foi inicializado, dá erro. */ pim = (72.7 * a) - 58; pif = (62.1 * a) - 44.7; //Você só está recebendo o "a" depois do cálculo, por isso não funciona a = InOut.leDouble("Entre com sua altura");
Entendeu agora?

Por isso falei para você colocar a atribuição a = InOut.leDouble(“Entre com sua altura”); antes de fazer seu cálculo.
Ok?

[quote=henriqueluz]Não. Vou explicar, de acordo com o seu código escrito no primeiro post.

double a, pim, pif ; char s; /* Aqui você tenta fazer o cálculo ANTES de receber o valor da variável "a" Logo como o "a" ainda não foi inicializado, dá erro. */ pim = (72.7 * a) - 58; pif = (62.1 * a) - 44.7; //Você só está recebendo o "a" depois do cálculo, por isso não funciona a = InOut.leDouble("Entre com sua altura");
Entendeu agora?

Por isso falei para você colocar a atribuição a = InOut.leDouble(“Entre com sua altura”); antes de fazer seu cálculo.
Ok?[/quote]

Falou amigo, entendi.
Consertei aki, mas vc acha que tem mais algum erro no codigo, ou ta beleza?

Boa tarde,

Eu fiz aqui, fico assim:

[code]public class Weight {

public static void main(String[] args) {
	double a = 0, pi = 0;
	char s;

	a = 1.53; // ALTURA
	s = 'f'; // SEXO

	if (s == 'm') {
		pi = (72.7 * a) - 58;
		System.out.println(pi);
	} else if (s == 'f') {
		pi = (62.1 * a) - 44.7;
		System.out.println(pi);
	}
}

}[/code]