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

Função passando 3 parâmetros com nome da pessoa

Pensando em uma solução para esse exercício, fiz o código dessa forma, pois além de mostrar de quem é o valor do IMC, retornei na função calculaImc a função mostra já com todas as informações.

  <meta charset="UTF-8/>
    <script>
        //função para pular 2 linhas
        function pulaLinha() {
            document.write("<br><br>");
        }

        //função para mostrar uma mensagem no corpo do HTML visível para o usuário
        function mostra(frase) {
            document.write(frase);
            pulaLinha();
        }

        //função para calcular o IMC dos pacientes
        function calculaImc(nome, peso, altura) {
            var imc = peso / (altura * altura);
            return mostra("O imc do paciente " + nome + " é de: " + imc.toFixed(2));
        }

        //Paciente 1
        var meuNome = "Flávio";
        var pesoFlavio = 85;
        var alturaFlavio = 1.83;        
        calculaImc(meuNome, pesoFlavio, alturaFlavio);

        //Paciente 2
        var nomeAmigo = "jonathan";
        var pesoAmigo = 75;
        var alturaAmigo = 1.70;
        calculaImc(nomeAmigo, pesoAmigo, alturaAmigo);

        //Paciente 3
        nomeAmigo = "Marilda";
        pesoAmigo = 55;
        alturaAmigo = 1.50;
        calculaImc(nomeAmigo, pesoAmigo, alturaAmigo);
    </script>

Alguém chegou a um resultado parecido?

4 respostas

Boa noite Junior, estou começando também. Antes de verificar o código fica uma dica legal, manda o código bem identado, pois facilita tanto a sua leitura para resolução de problemas quanto a dos outros para tirar a duvida, tomei liberdade e identei o código para você, inserindo as TAG´s e comentando oque não estava faltando.

Eu rodei o programa aqui no sublime e vi que faltava declarar as funções pulaLinha() e mostra().

Com tudo identado cheguei aos resultados:

O imc do paciente Flávio é de: 25.38

O imc do paciente jonathan é de: 25.95

O imc do paciente Marilda é de: 24.44

Deu o mesmo pra você?

<meta chaset="UTF-8">


<script>
//Inicio do script
//Função mostra e pulaLinha() não haviam sido definidas
function pulaLinha(){
    document.write("<br>");
}

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


//função para mostrar uma mensagem no corpo do HTML visível para o usuário
function mostra(frase) {
    document.write(frase); 
    pulaLinha();
 }

//função para calcular o IMC dos pacientes
function calculaImc(nome, peso, altura) {
    var imc = peso / (altura * altura); 
    return mostra("O imc do paciente " + nome + " é de: " + imc.toFixed(2));
 }

//Paciente 1 
var meuNome = "Flávio"; 
var pesoFlavio = 85;
var alturaFlavio = 1.83;
calculaImc(meuNome, pesoFlavio, alturaFlavio);

//Paciente 2
var nomeAmigo = "jonathan";
var pesoAmigo = 75;
var alturaAmigo = 1.70;
calculaImc(nomeAmigo, pesoAmigo, alturaAmigo);

//Paciente 3
nomeAmigo = "Marilda";
pesoAmigo = 55;
alturaAmigo = 1.50;
calculaImc(nomeAmigo, pesoAmigo, alturaAmigo);

//Final do SCRIPT
</script>

Bom dia Nicholas, obrigado pelas dicas, eu só esqueci de colocar meu código no lugar correto aqui na postagem:

insira seu código aqui <----- deveria ter colocado aqui

Um código indentado, referenciado as variáveis e seguindo a risca as convenções da programação é essencial, tanto para quem vai ler o código, quanto para você mesmo se tornar um bom programador!

Abraços!

solução!

Olá alunos!

A ideia é separar o calculaImc do mostra. Isso permite que o calculaImc seja chamado independente da saída, pois ela pode ser na tela, via SMS, via email. Deixar fixo o mostra dentro de calculaImc sempre indica que a saida e na tela. Quem deseja fazer algo com o retorno do calculaImc trabalha com seu retorno.

É sempre válida a ideia de escrever menos, muito boa essa preocupação.

Obrigado pela explicação professor Flávio, realmente faz todo sentido colocar a função monstra(); fora da função calculaImc();, para que também possamos usar essa mesma função e reaproveitar o código em outra lógica do programa.

Suas explicações são muito boas, aprendo muito com elas, sucesso sempre!