Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas
<meta charset="UTF-8">

<script>


    function pulaLinha()
{    
    document.write("<br>");
    document.write("<br>");
}

    function mostra(frase) 
{
    document.write(frase);
    pulaLinha();
}

    function calculaImc(peso, altura) 
{
    return peso / (altura * altura);
}

var nome = prompt("Informe seu nome!");

var pesoInformado = prompt(nome  + ", Informe seu peso"); 

var alturaInformada = prompt(nome + ", Informe sua altura");

var imc = calculaImc(pesoInformado, alturaInformada);


mostra(nome + ", seu imc é " + Math.round(imc));


if(imc < 18.5) {
    mostra("Você esta abaixo do recomendado")
}

if(imc > 35) {
    mostra("Você esta acima do recomendado")
}

if(imc >= 18.5 && imc <= 35) {

    mostra("Seu IMC está excelente")
}


</script>

A minha pergunta é mais uma curiosidade, quando eu abro meu programa e informo meu peso e altura normalmente sempre da NaN (not a number).

Mas dai se eu faço a simples alteração de digitar na altura em vez de 1 virgula 77 eu digito 1 ponto 77, ou seja. em vez de 1,77 - 1.77 ai o programa me da o calculo correto.

Porque isso acontece ?

4 respostas

o separador ' , ' não é reconhecido para números mesmo que externamente você o use para facilitar a comunicação. internamente deve usar ' . ' que o simbolo reconhecido pelo interpretador.

Boa noite Carlos, obrigado pela resposta!

Mas aí em um programa intuitivo como esse, por exemplo como o instrutor diz eu chamo um amigo para "brincar" no meu programa e ver o Índice de massa corporal dele, eu tenho que dizer pra pessoa que só funciona ".", ou seja, se é um programa que eu coloco em um site para as pessoas irem lá e usar deveria funcionar normal com "," ou com "." se não tem que ficar avisado em algum lugar pois se não quem usar a "," vai receber um NaN lá e vai achar que o programa não funciona certo?

Então é isso que eu quero saber se tem alguma forma de aceitar os dois ou se no caso é melhor então deixar informado? Por exemplo:

var pesoInformado = prompt(nome + ", Informe seu peso (use apenas ' . ')");

var alturaInformada = (nome + ", Informe sua altura (use apenas ' . ')");

Uma das maiores preocupações que se deve ter ao escrever um programa é com a entrada de dados. A melhor maneira de resolver isso é padronizando uma forma de entrada, de preferência algo próximo do dia a dia do usuário, e então fazer uma validação para verificar se os dados podem ou não serem processados.

solução!

Em um programa real(disponibilizado para usuários reais), haveria uma preocupação maior com a entrada dos dados. Como uma mascara nos campos, impossibilitando a digitação de caracteres inválidos, ou mensagens que darão ao usuário auxilio para utilização correta do software.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software