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

Aula 3. Ex 4 Colocando em uma linha

Não entendi o exercício em questão, visto que na função calculaimc a variável imc é diferente:

'''var calculaimc = function(altura, peso) { var imc = peso / (altura*altura); mostra("imc calculado é " + imc); };'''

11 respostas

Um pouco mais organizado para vocês entenderem melhor. '''var calcula imc = function(altura, peso) {''' '''var imc = peso / (altura*altura);''' '''mostra("imc calculado é " + imc);'''

Não entendi a sua dúvida. O que tem diferente?

PRIMEIRO

var calculaimc = function(altura, peso){ 
    var imc = peso / (altura*altura); 
    mostra("imc calculado é " + imc); 
};

SEGUNDO

var calculaimc = function(altura, peso) {
    var imc = peso / (altura*altura);
    mostra("imc calculado é " + imc);
};

Também não entendi a dúvida. :-|

Seja um pouco mais claro amigo =P

Adonias Melo, nem sempre é interessante colocar tudo em uma única linha! isso vai depender muito do código.

por exemplo se você chamar a função mais de uma vez na mesma linha, é mais interessante que você declare uma variável e chame esta função uma única vez!

Ou se o código ficar muito ilegível (eu acho) que é mais interessante também declarar uma variável.

    var calculaimc = function(altura, peso){
    mostra("imc calculado é " + (peso / (altura*altura)));
    };

Achei confuso o exercício também, no enunciado diz para ao invés de escrever:

var imc = calculaIMC(altura, peso);
mostra("Meu imc é " + imc);

podemos escrever:

mostra("Meu imc é " + calculaIMC(altura, peso));

Correto??

Mas na minha função estava assim:

var calculaIMC = function(altura, peso) {
      var imc = peso / (altura * altura);
      mostra("Meu IMC é: " + imc);
};

Com isso eu pensei em fazer assim:

var calculaIMC = function(altura, peso) {
      mostra("Meu IMC é: " + peso / (altura * altura));
};

Com isso da um erro de "Uncaught SyntaxError: Unexpected token"

Está correto?

solução!

Na verdade quando ele te da a opção de escrever formar diferentes ele fala para fazer assim:

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

    var imc = calculaIMC(85,1.88);

    document.write("Resultado: " + imc);

ou assim:

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

    document.write("Resultado: " + calculaIMC(85,1.88));

Da primeira forma você armazena o resultado em uma variável e logo depois imprime na tela, na segunda maneira você imprime o retorno da function direto na tela sem precisar armazenar em uma variavel.

Isso pode ser vantajoso caso você não precise utilizar o valor do imc inúmeras vezes, caso precise é ideal que guarde esse valor em algum lugar para que não tenha que realizar o mesmo calculo diversas vezes.

Agora ficou claro. Muito obrigado!

Adonias,

Também não entendi muito bem sua dúvida, mas pelo que vi no seu código há umas aspas que não deveriam estar lá. Veja:

'''var calcula imc = function(altura, peso) {''' '''var imc = peso / (altura*altura);''' '''mostra("imc calculado é " + imc);'''

Acho que o correto seria assim:

var calcula imc = function(altura, peso) {var imc = peso / (altura*altura); mostra("imc calculado é " + imc);};

Eu fiz este exercício assim:

/Função para entrar com peso e altura pelo prompt e armazenar o resultado do cálculo/

var calculaIMC = function(altura, peso)

{

var peso = prompt("Informe o seu peso: ");

var altura = prompt("Informe sua altura: ");

return imc = peso / (altura * altura);

};

var meuImc = calculaIMC();

mostra("Meu IMC é: " + meuImc);

mostra("Eu ainda estou " + (meuImc - 18.5) + " pontos acima do limite de magreza.");

Minha dúvida era a mesma do Douglas, mas agora entendi com a explicação do Jeffersonn. Agradeço a todos pela a ajuda, principalmente ao Jeffersonn.