1
resposta

Desafio Hora da Prática 5 - Conversor de Temperatura

Execultei o Projeto no VS Code inserindo um código HTML com JavaScript, conforme segue:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Conversor de Temperatura</title>
</head>
<body>
    <h1 style="color:red";> Conversor de Temperatura</h1>
    <label for="temperatura">Temperatura:</label>
    <input type="number" id="temperatura" placeholder="Digite a temperatura">

    <label for="escala">Escala:</label>
    <select id="escala">
        <option value="Celsius">Celsius para Fahrenheit</option>
        <option value="Fahrenheit">Fahrenheit para Celsius</option>
    </select>
    <button onclick="converter()">Converter</button>
    <p id="resultado"></p>

    <script>
        // Função para Converter Temperatura
        function converterTemperatura(valor, escala) {
            if (escala.toLowerCase() === 'celsius') {
                return (valor * 9/5) + 32;  // Celsius para Fahrenheit
            } else if (escala.toLowerCase() === 'fahrenheit') {
                return (valor - 32) * 5/9;  // Fahrenheit para Celsius
            } else {
                return "Escala inválida";
            }
        }

        function converter() {
            const valor = parseFloat(document.getElementById('temperatura').value);
            const escala = document.getElementById('escala').value;

            // Verifica se o valor é um número válido
            if (isNaN(valor)) {
                document.getElementById('resultado').textContent = "Por favor, insira uma temperatura válida.";
                return;
            }

            const resultado = converterTemperatura(valor, escala);

            // Exibe o resultado
            if (escala === 'Celsius') {
                document.getElementById('resultado').textContent = `${valor}°C é igual a ${resultado.toFixed(2)}°F`;
            } else {
                document.getElementById('resultado').textContent = `${valor}°F é igual a ${resultado.toFixed(2)}°C`;
            }
        }
    </script>
</body>
</html>
1 resposta

Olá, Paulo. Tudo bem?

Muito obrigado por compartilhar o seu código aqui com a gente. Parabéns pelo trabalho. Continue com essa dedicação.

Ótimo como você organizou a conversão de temperatura dentro da função converterTemperatura(). Isso torna o código mais reutilizável e fácil de entender.

Uma melhoria interessante seria validar a entrada para evitar valores inválidos, como null ou undefined. Você pode adicionar um trim() ao capturar o valor e verificar se está vazio antes de tentar converter:


function converter() {
    const input = document.getElementById('temperatura').value.trim();
    if (input === "" || isNaN(input)) {
        document.getElementById('resultado').textContent = "Por favor, insira um número válido.";
        return;
    }
    const valor = parseFloat(input);
    const escala = document.getElementById('escala').value;
    const resultado = converterTemperatura(valor, escala);
    document.getElementById('resultado').textContent = 
        `${valor}°${escala[0]} é igual a ${resultado.toFixed(2)}°${escala === 'Celsius' ? 'F' : 'C'}`;
}

Isso ajuda a evitar que o usuário tente converter um campo vazio.

Conte com o apoio do Fórum. Abraços e bons estudos.