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

Funcao document.write nao acata os espacos da tabela de IMC

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

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

    function calculaImc(altura, peso) {

        var imc = peso / (altura * altura);
        return imc;
    }

    var pegaNome = prompt ("Informe seu nome");
    var pegaAltura = prompt (pegaNome + " ,digite sua altura ");
    var pegaPeso = prompt (pegaNome + " ,digite seu peso ");

    mostra(pegaNome + " ,o seu IMC é : " + calculaImc(pegaAltura, pegaPeso));

    mostra("========================================== ");
    mostra("= IMC                Categoria           = ");
    mostra("========================================== ");
    mostra("= abaixo de 16     = Baixo peso Grau III = ");
    mostra("= de 16 a 16,99    = Baixo peso Grau II  = ");
    mostra("= de 17 a 18,49    = Baixo peso Grau I   = ");
    mostra("= de 18,50 a 24,99 = Peso Ideal          = ");
    mostra("= de 25    a 29,99 = Sobre Peso          = ");
    mostra("= de 30    a 34,99 = Obesidade Grau I    = ");
    mostra("= de 35    a 39,99 = Obesidade Grau II   = ");
    mostra("= acima de 40      = Obesidade Grau III  = ");
    mostra("========================================== ");


</script>
5 respostas

Olá Felipe, acho que para manipulação do DOM com document.write o espaço em branco deve ser declarado com '&nbsp' (ignore as aspas) entre as palavas que deseja espaçar;

mostra("= IMC       Categoria     = ");

Acho que é isso. Abraço!

solução!

Olá Felipe,

Usando a solução proposta pelo Andrey, você pode aprimorar sua função mostra para que faça o replace dos espaços em branco pela string &nbsp;

function mostra( frase ) {
  document.write(  frase.replace(/ /ig, '&nbsp;')  );
  pulaLinha();
}

Att.

Realmente Wagner, utilizando o replace na função mostra() evita de encher o codigo com a string e reaproveita para toda a aplicação. O código fica muito mais elegante assim.

Oi Felipe, as respostas dos colegas são ninjas, no entanto, eu não me preocuparia com a formatação nesse momento de aprendizagem de lógica de programação. Isso porque, ao logo da sua jornada conosco, caso você se identifique coma linguagem JavaScript, você aprenderá outras formas mais elegantes para exibir a informação para o usuário. Tudo bem?

Segue com os estudos, pois ainda já o segundo módulo de lógica de programação lhe esperando, meu aluno!

Andrey e Wagner, muito obrigado pela ajuda !! Principalmente pelas dicas "Ninjas" como bem disse o professor Flavio !!

Professor, agradecido pela orientação !!