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

Solução Desafio

Segue a minha solução:

Html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <header>
        <h1></h1>
    </header>

    <main class="container">
        <button onclick="calcularIMC(1.71, 54.5)" class="button">IMC</button>
        <button onclick="calcularFatorial(6)" class="button">FATORIAL</button>
        <button onclick="converterEmDolar(15.20)" class="button">CONVERSOR DOLAR</button>
        <button onclick="caclucarAreaPerimetroRetangulo(3.40, 4.50)" class="button">AREA/PERIMETRO - RETANGULO</button>
        <button onclick="caclucarAreaPerimetroCirculo(4.50)" class="button">AREA/PERIMETRO - CIRCULO</button>
        <button onclick="exibirTabuada(5)" class="button">TABUADA MULTIPLICAÇÃO</button>
    </main>
    <div>
        <p></p>
    </div>

      <script src="app.js"></script>
</body>
</html>

Js

let titulo = document.querySelector('h1');
titulo.innerHTML = 'Desafio: Hora da prática.';

function exibirTextoNaTela(texto) {
    let campo = document.querySelector('p');
    campo.innerHTML = texto;
}

function calcularIMC(altura, peso) {
    let imc = peso / (altura * altura);
    let avaliacao = imc < 18.5 ? `Seu IMC é ${imc.toFixed(2)}, você está abaixo do peso.` : imc > 24.9 ? `Seu IMC é ${imc.toFixed(2)}, você está acima do peso.` : `Seu IMC é ${imc.toFixed(2)}, está normal.`;
    exibirTextoNaTela(avaliacao);
}

function calcularFatorial(numero) {
    let fatorial = 1;
    if(numero === 0 || numero === 1) {
        fatorial;
    } else {
        for (let i = 2; i <= numero; i++) {
            fatorial *= i;
        }
    }
    let mensagem = `O fatorial de ${numero} é ${fatorial}.`;
    exibirTextoNaTela(mensagem);
}

function converterEmDolar(valorReal) {
    let cotacao = 5.54;
    let convercao = valorReal / cotacao;
    let mensagem = `O valor de ${valorReal.toLocaleString('pt-BR', {style: 'currency', currency: 'BRL'})} em dolar é ${convercao.toLocaleString('pt-BR', {style: 'currency', currency: 'USD'})}.`;
    exibirTextoNaTela(mensagem);
}

function caclucarAreaPerimetroRetangulo(largura, altura) {
    let area = largura * altura;
    let perimetro = (2 * largura) + (2 * altura);
    let mensagem = `A sala retangular de largura ${largura} e ${altura}, tem área de ${area.toFixed(2)} e perímetro de ${perimetro.toFixed(2)}.`;
    exibirTextoNaTela(mensagem);
}

function caclucarAreaPerimetroCirculo(raio) {
    const pi = 3.14;
    let area = pi * raio * raio;
    let perimetro = pi * raio * 2;
    let mensagem = `A sala circular de raio ${raio}, tem área de ${area.toFixed(2)} e perímetro de ${perimetro.toFixed(2)}.`;
    exibirTextoNaTela(mensagem);
}

function exibirTabuada(numero) {
    let mensagem = '';
    for (let i = 0; i <= 10; i++) {
        let resultado = numero * i;
        mensagem += `${numero} x ${i} = ${resultado}<br>`;
    }
    exibirTextoNaTela(mensagem);
}
2 respostas
solução!

Olá, Klaus! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de funções JavaScript para modularizar comportamentos matemáticos, utilizou muito bem o document.querySelector para atualizar o conteúdo da tela dinamicamente e ainda compreendeu a importância do uso de toFixed e toLocaleString para exibir dados de forma clara e amigável ao usuário.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Grato pelo feedback Daniel.