Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: conversor de moedas

o programa principal cuida de coletar, validar e exibir — e a função converter() faz apenas uma coisa, dividir o valor pela taxa e devolver o resultado.
Algoritmo em linguagem natural — versão otimizada

Definir a função converter(valor_reais, taxa_cambio):

Se valor_reais ≤ 0 → retornar erro: "Valor inválido"
Se taxa_cambio ≤ 0 → retornar erro: "Taxa inválida"
Retornar valor_reais ÷ taxa_cambio

Solicitar o valor em reais ao usuário
Obter a taxa de câmbio definida pela agência
Chamar converter(valor_reais, taxa_cambio)
Exibir o resultado formatado em US$

As validações vêm antes da chamada da função por uma razão: não faz sentido executar um cálculo com dados que já sabemos que estão errados. Usando curto-circuito, se o valor em reais for inválido o sistema para ali mesmo e nem chega a verificar a taxa — evitando processamento desnecessário e tornando as mensagens de erro mais precisas.
Se amanhã a agência quiser mudar a fórmula de conversão — arredondamento, IOF, spread — a alteração fica dentro da função, sem tocar em nada do restante do sistema.

1 resposta
solução!

Oi, Tamy! Como vai?

Agradeço por compartilhar.

Gostei da sua análise sobre separar responsabilidades: o programa principal fica com a coleta, validação e exibição, enquanto a função converter() mantém o foco em uma única tarefa, que é calcular e devolver o valor convertido. Essa organização deixa o algoritmo mais limpo, facilita ajustes futuros e mostra um bom uso da lógica de programação.

Sua explicação sobre validar antes de calcular também ficou muito boa, pois evita executar operações com dados inválidos. Dica: ao escrever algoritmos em linguagem natural, continue usando passos curtos e objetivos, indicando o que cada etapa faz e como ela contribui para o fluxo do programa.

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