2
respostas

08 Desafio: conversor de moedas

Entrada

função converter-para-dolar(valorRS, taxa):
retornar valorRS * taxa

valorRS("Digite o valor em reais 'R$':)
taxaCambio("Digite a taxa de cambio:")

Processamento

valorConvertido = converter-para-dolar(valorRS, taxaCambio)

Saída

exibir valorConvertido

2 respostas

Olá Gabriel.
Tudo bem?
Colocar os conteúdos das aulas em pratica e compartilhar seu aprendizado ajudam a consolidar seu conhecimento.
Gostei da sua solução.
Segue abaixo uma analise para reforçar seu conhecimento:
A lógica está bem estruturada do ponto de vista de pensamento computacional.
Você separou corretamente em:

  1. Entrada
  2. Processamento
  3. Saída

Isso já demonstra uma boa organização do algoritmo.
Pontos positivos

  • Você criou uma função específica para conversão (converter-para-dolar), o que mostra noção de modularização e reutilização.
  • O processamento principal ficou simples e claro:
    valorConvertido = converter-para-dolar(valorRS, taxaCambio)
    
  • O fluxo do problema está coerente:
    • recebe dados,
    • processa,
    • mostra resultado.

Observações :

  1. Fórmula da conversão
    Aqui existe um ponto conceitual importante:
    Você usou:
retornar valorRS * taxa

Isso está correto somente se a taxa representar: "quantos dólares vale 1 real"
Exemplo:

  • 1 BRL = 0,18 USD
    Então:
100 * 0,18 = 18 USD

Mas normalmente, no cotidiano, a taxa de câmbio é informada assim: 1 USD = 5,40 BRL
Nesse caso, para converter reais em dólar, o correto seria:

valorRS / taxa

Exemplo:

100 / 5,40 = 18,51 USD

Então a lógica depende da definição da taxa.

  1. Entrada de dados
    Você escreveu:
valorRS("Digite o valor em reais")

Na lógica computacional isso transmite a ideia corretamente, mesmo sem sintaxe formal.
Mas conceitualmente seria melhor representar como:

ler valorRS
ler taxaCambio

ou

valorRS = entrada(...)

porque atualmente parece uma chamada de função sem atribuição.

  1. Clareza semântica
    O nome da função ficou bom, mas poderia ser ainda mais explícito dependendo da regra:
  • converterRealParaDolar
  • converterBRLparaUSD

Isso melhora legibilidade em sistemas maiores.
Uma versão de exemplo para voce analisar:

Função converterParaDolar(valorRS, taxaCambio)
    retornar valorRS / taxaCambio

Entrada
    ler valorRS
    ler taxaCambio

Processamento
    valorConvertido = converterParaDolar(valorRS, taxaCambio)

Saída
    exibir valorConvertido

Qualquer duvida avise ai.
Obrigado por compartilhar.
Bons estudos.

Algo importante que esqueci de mencionar é que, ao trabalhar com cálculos monetários, a maioria das linguagens possui bibliotecas específicas para lidar com valores financeiros.
Isso acontece porque números decimais em computação normalmente são representados em ponto flutuante, e esse formato pode gerar pequenas imprecisões nos cálculos.
Por exemplo, operações aparentemente simples como:
0.1 + 0.2 \neq 0.3
podem resultar em valores como 0.30000000000000004, devido à forma como o computador armazena números decimais internamente em binário.
Em sistemas financeiros, essas pequenas diferenças podem causar erros importantes ao longo do tempo.
Por isso, é comum utilizar bibliotecas ou tipos específicos para valores monetários, que trabalham com precisão decimal adequada e evitam esse tipo de problema.
Se quiser saber mais comente ai.
Bons estudos!