1
resposta

Desafio: conversor de moedas

// 1. Função para conversão (permanece intacta)
funcao converterRealParaDolar(valor_real, taxa_cambio):
valor_convertido = (valor_real / taxa_cambio)
retornar valor_convertido

// 2. Programa principal
exibir "=== Conversor de Moedas ==="

// Entrada e Validação do valor em Reais
exibir "Digite o Valor em Reais (R$):"
real = ler do usuário

// O laço só é ativado SE o usuário digitar 0 ou negativo
enquanto (real <= 0) faca:
exibir "Erro: O valor a ser convertido deve ser maior que zero."
exibir "Por favor, digite um Valor em Reais (R$) válido:"
real = ler do usuário
fim enquanto

// Entrada e Validação da taxa de câmbio
exibir "Informe a taxa de câmbio atual:"
taxa = ler do usuário

// O laço protege o sistema contra divisão por zero e taxas negativas
enquanto (taxa <= 0) faca:
exibir "Erro: A taxa de câmbio não pode ser zero ou negativa."
exibir "Por favor, informe uma taxa de câmbio válida:"
taxa = ler do usuário
fim enquanto

// 3. Chamada da função (agora temos certeza de que os dados são seguros)
dolar = converterRealParaDolar(real, taxa)

// 4. Exibição do resultado
exibir "Valor convertido: US$ " + dolar

1 resposta

Oi, Paulo!

Meus parabéns por finalizar o desafio do conversor de moedas. É fantástico ver como você elevou o nível da atividade ao incluir camadas de validação de dados, transformando um cálculo simples em um algoritmo muito mais resiliente e profissional.

Sua resolução demonstra um excelente domínio sobre a modularização e o controle de fluxo. Ao separar a lógica de cálculo em uma função (converterRealParaDolar), você torna o código reutilizável e organizado. Além disso, a implementação dos laços enquanto para validar as entradas é uma prática fundamental na programação real, pois protege o sistema contra erros críticos, como a divisão por zero, e garante que a experiência do usuário seja orientada por feedbacks claros.

Para elevar ainda mais o nível da sua solução, vale notar um detalhe sobre a precisão: no desenvolvimento de sistemas financeiros, costumamos adicionar uma etapa de formatação na saída para garantir que o valor em dólares exiba sempre duas casas decimais. Você pode explorar mais sobre como estruturar esses passos e funções na documentação sobre Lógica de Programação e Funções.

Conseguiu perceber como a estrutura que você criou permitiria adicionar um "Conversor de Euros" apenas criando uma nova função e chamando-a no programa principal, sem precisar reescrever as validações?

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