1
resposta

[Projeto] Desafio: conversor de moedas

Desenvolvi um algoritmo para um conversor de moedas que utiliza uma função reutilizável, permitindo que a agência de viagens realize conversões de reais para dólares de forma ágil e precisa. A solução segue o princípio de modularização, isolando a lógica de conversão em uma função específica que recebe como parâmetros o valor em reais e a taxa de câmbio vigente, facilitando manutenções futuras e a incorporação de novas moedas sem necessidade de reescrever o código principal. Essa estrutura garante que qualquer alteração na fórmula de conversão ou na inclusão de outras divisas possa ser implementada de forma centralizada, reduzindo erros e aumentando a eficiência operacional do sistema.

FUNÇÃO converter_para_dolar(valor_em_reais, taxa_de_cambio)
    SE valor_em_reais < 0 ENTÃO
        RETORNAR "Erro: valor não pode ser negativo"
    FIM SE
    
    SE taxa_de_cambio <= 0 ENTÃO
        RETORNAR "Erro: taxa de câmbio inválida"
    FIM SE
    
    valor_convertido ← valor_em_reais / taxa_de_cambio
    RETORNAR valor_convertido
FIM FUNÇÃO
Programa Principal
INÍCIO
    EXIBIR "=== CONVERSOR DE MOEDAS ==="
    EXIBIR "Conversor de Reais (R$) para Dólares (US$)"
    EXIBIR ""
    
    SOLICITAR "Digite o valor em reais (R$): " valor_reais
    SOLICITAR "Digite a taxa de câmbio atual (R$/US$): " taxa
    
    resultado ← converter_para_dolar(valor_reais, taxa)
    
    SE resultado é um número ENTÃO
        EXIBIR "Com a taxa atual, o valor em dólares é: US$ " + resultado
        EXIBIR "Resumo da conversão:"
        EXIBIR "  Valor original: R$ " + valor_reais
        EXIBIR "  Taxa utilizada: R$ " + taxa + " por US$ 1,00"
        EXIBIR "  Valor convertido: US$ " + resultado
    SENÃO
        EXIBIR resultado
    FIM SE
FIM
1 resposta

Olá, João Batista. Como vai?

É fascinante ver como a precisão do pensamento jurídico se traduz tão bem para a lógica de programação! Como Advogado, você aplicou um rigor técnico excelente ao seu algoritmo, especialmente no que diz respeito ao tratamento de exceções (as validações de valores negativos ou taxas inválidas). Na programação, chamamos isso de "programação defensiva", que é antecipar possíveis erros antes que eles quebrem o sistema.

Sua estrutura demonstra um domínio claro de conceitos fundamentais do Pensamento Computacional:

  • Modularização: Ao isolar o cálculo em uma função, você criou uma ferramenta independente. Se a agência decidir mudar para Euros futuramente, a "engrenagem" da função está pronta, bastando alterar os parâmetros.
  • Abstração: Você separou a interface (o que o usuário vê) da lógica (o cálculo matemático), permitindo que o programa principal foque na experiência do usuário enquanto a função cuida da "matemática".
  • Segurança Lógica: As verificações de valor_em_reais < 0 e taxa_de_cambio <= 0 são fundamentais. Em sistemas financeiros, garantir a integridade dos dados de entrada é tão importante quanto a própria Lei.

Para agregar ainda mais valor ao seu projeto, gostaria de sugerir um pequeno refinamento na lógica de exibição. Como você está lidando com dinheiro, um próximo passo interessante seria o uso da formatação de casas decimais. Em linguagens como Python, isso garante que o valor apareça sempre como US$ 100.00 em vez de US$ 100.0.

Outro ponto que um "programador-advogado" apreciaria é a clausura do else:
No seu código, você usou SE resultado é um número. Isso é ótimo! No mundo real, poderíamos usar um comando chamado TRY/EXCEPT para garantir que, caso o usuário digite uma letra em vez de um número, o programa não encerre abruptamente, mas sim exiba uma mensagem amigável.

Seu algoritmo está muito acima da média para um desafio inicial, demonstrando que a estruturação de argumentos do Direito é uma aliada poderosa na Engenharia de Prompt e na Programação.

Espero que possa ter lhe ajudado!