1
resposta

Desafio: conversor de moedas

Algoritmo em linguagem natural:

O algoritmo é organizado em duas partes: a definição da função e o programa principal que a utiliza.

A função converter_moeda recebe dois parâmetros — valor_reais e taxa_cambio — e executa uma única operação: divide o valor em reais pela taxa de câmbio, armazenando o resultado em valor_dolar. Em seguida, retorna esse valor para quem chamou a função.

No programa principal, o sistema solicita ao usuário que informe o valor em reais que deseja converter e a taxa de câmbio vigente definida pela agência. Com essas duas informações em mãos, chama a função converter_moeda passando os valores coletados, armazena o retorno em resultado e exibe a mensagem final informando a equivalência entre os dois valores.

O ponto mais relevante desse exercício é entender o papel da função como unidade reutilizável. Se amanhã a agência precisar converter para euros ou libras, basta chamar a mesma função com uma taxa de câmbio diferente — nenhuma alteração na lógica de conversão é necessária. Isso ilustra bem dois princípios fundamentais do pensamento computacional: a abstração, ao encapsular a lógica dentro da função, e a reutilização, ao separar responsabilidades entre o programa principal e a função.

A pessoa instrutora nomeia a função como converter_para_dolar, o que é uma escolha intencional: um nome descritivo deixa claro o propósito da função sem precisar ler seu conteúdo. Isso é uma boa prática de legibilidade de código.

A solução que desenvolvemos já estava alinhada com a orientação dela — definição da função com dois parâmetros, cálculo por divisão, retorno do valor e exibição de mensagem clara no programa principal. A única diferença é cosmética: o nome da função.

1 resposta

Olá, Rômulo. Como vai?

Excelente análise! Você descreveu com precisão um dos conceitos mais poderosos da programação: a Modularização. Ao transformar a lógica de conversão em uma função, você deixa de apenas escrever um código e passa a criar uma ferramenta que pode ser reutilizada em diversos contextos.

Como você bem destacou, o uso de nomes descritivos como converter_moeda ou converter_para_dolar é um pilar do Clean Code (Código Limpo), pois permite que outros desenvolvedores entendam o que o código faz apenas "batendo o olho", sem precisar decifrar os cálculos internos.

Para complementar sua reflexão sobre abstração e reutilização, aqui estão alguns pontos técnicos interessantes:

  • Escopo de Variáveis: Note que as variáveis dentro da função (como valor_dolar) existem apenas enquanto a função é executada. Isso evita que elas "poluam" o resto do código, mantendo a memória organizada.
  • Generalização: O fato de a função aceitar a taxa de câmbio como parâmetro é o que a torna verdadeiramente poderosa. Se a taxa fosse fixa dentro da função (o que chamamos de hardcoded), ela seria muito menos útil.
  • Facilidade de Testes: Funções isoladas são muito mais fáceis de testar. Você pode verificar se a conta está certa passando valores simples (ex: 10 reais com taxa de 2 deve retornar 5) antes de integrar a função ao sistema completo da agência.

Sua percepção de que a diferença de nomes entre o seu código e o da instrutora é apenas "cosmética" está correta, desde que ambos mantenham a clareza. O importante é a lógica estrutural que você validou com sucesso!

Espero que possa ter lhe ajudado!