Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Divergência resposta calculo IMC

Essa dúvida surgiu não nesse exercício, mas me lembrei de abrir esse tópico agora.

Ao executar o calculo do IMC, eu, ao invés de realizar o cálculo com altura*altura eu fiz (altura^2) obtendo resultados diferentes.

Não entendi bem ao certo o porque, uma vez que um numero ao quadrado é igual a multiplicação desse número por ele mesmo.

Alguém poderia me ajudar a entender o porque da diferença? pode até ser muito obvio, mas não consegui ver do que se trata.

De qualquer forma segue informações do código testado.

Os valores informados para

peso = 82 e

altura = 1.78,

os resultados obtidos foram

imc1 = 25.88057063502083 ,

imc2 =27.333333333333332.

<meta charset="utf-8">

<script>
    function calculaImc1(peso, altura){
        return peso / (altura*altura);
    }

    function calculaImc2(peso, altura){
        return peso / (altura^2);
    }

    var nome = prompt("Digite o seu nome: ");
    var peso = prompt(nome + ", digite seu peso ");
    var altura = prompt(nome + ", digite sua altura ");
    imc1 = calculaImc1( peso , altura );
    imc2 = calculaImc2( peso , altura );

    document.write(nome + ", seu IMC é " + imc1 + ".<br>");
    document.write(nome + ", seu IMC é " + imc2 + ".<br>");

</script>
5 respostas
solução!

Você indevidamente usou uma sintaxe achando que é potência e não é. Aliás, em nenhum momento no curso ensino isso.

Se você fizer console.log(2^2) dará 0.

O ˆ é o operador XOR bit a bit. Algo que foge até do escopo da lógica de programação.

https://msdn.microsoft.com/pt-br/library/ece515h6(v=vs.94).aspx

Isso tem relação com manipulação de bits.

Sucesso e bom estudo meu aluno!

Você pode realizar potência assim também:

var base = 2;
var expoente = 4;

var resultado = Math.pow(base, expoente);
// o resultado será 16!

Chuto que você viu o ˆ em outra linguagem que servia para calcular potência e tentou aplicar no JavaScript. Nem sempre há essa paridade.

Show. Isso estava dando um nó na minha cabeça.

O operador ^ fui eu quem utilizei por falta de conhecimento mesmo.

Tranquilo meu aluno. Apesar de não ter saído como esperado, foi uma tentativa de escrever um código mais enxuto e elegante. Isso é mais importante do que o problema no código em si. Continue sempre experimentado e tirando suas dúvidas conosco.

Sucesso e bom estudo Walter!

Mas a dúvida dele tem procedência pois em outras linguagens o (^) funciona como expoente. talvez faltou um pouco de investigação.