Sistemas Operacionais e Introdução a Programação (diário 2009-2): Problema de conversão de moedas

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

O Problema

Construa um programa que converta valores entre as moedas Real, Dólar e Euro.


Propostas de Solução

Professor

Pseudocódigo

Há inúmeras propostas para solucionar o problema. A seguir, uma delas:

  1. Leia a taxa de conversão do dia de Real para Dólar.
  2. Armazene a taxa de conversão do dia de Real para Dólar na variável RealParaDólar.
  3. Leia a taxa de conversão do dia de Real para Euro.
  4. Armazene a taxa de conversão do dia de Real para Euro na variável RealParaEuro.
  5. Leia a taxa de conversão do dia de Dólar para Euro.
  6. Armazene a taxa de conversão do dia de Dólar para Euro na variável DólarParaEuro.
  7. Leia a moeda de origem.
  8. Leia o valor a ser convertido.
  9. Armazene o valor a ser convertido na variável valorOriginal.
  10. Leia a moeda de destino.
  11. Se a moeda de origem for Real e a moeda de destino for Dólar, multiplique as variáveis valorOriginal e RealParaDólar.
  12. Se a moeda de origem for Dólar e a moeda de destino for Real, divida a variável valorOriginal por RealParaDólar.
  13. Se a moeda de origem for Real e a moeda de destino for Euro, multiplique as variáveis valorOriginal e RealParaEuro.
  14. Se a moeda de origem for Euro e a moeda de destino for Real, divida a variável valorOriginal por RealParaEuro.
  15. Se a moeda de origem for Dólar e a moeda de destino for Euro, multiplique as variáveis valorOriginal e DólarParaEuro.
  16. Se a moeda de origem for Euro e a moeda de destino for Dólar, divida a variável valorOriginal por DólarParaEuro.
  17. Escreva o resultado da operação.

Diagrama de blocos

<graphviz> digraph conversao { geometry="800x800"

"Início" "Leia a taxa de Real para Dólar" [shape=invtrapezium] "Armazene na variável RealParaDólar" [shape=record] "Leia a taxa de Real para Euro" [shape=invtrapezium] "Armazene na variável RealParaEuro" [shape=record] "Leia a taxa de Dólar para Euro" [shape=invtrapezium] "Armazene na variável DólarParaEuro" [shape=record] "Leia o valor a ser convertido" [shape=invtrapezium] "Armazene na variável valorOriginal" [shape=record] "Leia a moeda de origem" [shape=invtrapezium] "Armazene na variável moedaOrigem" [shape=record] "Leia a moeda de destino" [shape=invtrapezium] "Armazene na variável moedaDestino" [shape=record]

"A moeda de origem é Real?" [shape=diamond] "A moeda de origem é Dólar?" [shape=diamond] "A moeda de destino é Real? (Dólar-Real)" [shape=diamond] "A moeda de destino é Dólar? (Real-Dólar)" [shape=diamond] "A moeda de destino é Real? (Euro-Real)" [shape=diamond]

"Multiplique valorOriginal e RealParaDólar" [shape=record] "Multiplique valorOriginal e RealParaEuro" [shape=record] "Divida o valorOriginal por RealParaDólar" [shape=record] "Divida o valorOriginal por RealParaEuro" [shape=record] "Multiplique o valorOriginal por DólarParaEuro" [shape=record] "Divida o valorOriginal por DólarParaEuro" [shape=record]

"Escreva o resultado da operação" [shape=trapezium] "Fim"

"Início" -> "Leia a taxa de Real para Dólar" -> "Armazene na variável RealParaDólar" -> "Leia a taxa de Real para Euro" -> "Armazene na variável RealParaEuro" -> "Leia a taxa de Dólar para Euro" -> "Armazene na variável DólarParaEuro" -> "Leia a moeda de origem" -> "Armazene na variável moedaOrigem" -> "Leia o valor a ser convertido" -> "Armazene na variável valorOriginal" -> "Leia a moeda de destino" ->"Armazene na variável moedaDestino" "Armazene na variável moedaDestino" ->"A moeda de origem é Real?"

"A moeda de origem é Real?" -> "A moeda de destino é Dólar? (Real-Dólar)" [label=Sim]

  1. De Real para Dólar

"A moeda de destino é Dólar? (Real-Dólar)" -> "Multiplique valorOriginal e RealParaDólar" [label=Sim]

  1. De Real para Euro

"A moeda de destino é Dólar? (Real-Dólar)" -> "Multiplique valorOriginal e RealParaEuro" [label=Não]

"A moeda de origem é Real?" -> "A moeda de origem é Dólar?" [label=Não] "A moeda de origem é Dólar?" -> "A moeda de destino é Real? (Dólar-Real)" [label=Sim]

  1. De Dólar para Real

"A moeda de destino é Real? (Dólar-Real)" -> "Divida o valorOriginal por RealParaDólar" [label=Sim]

  1. De Dólar para Euro

"A moeda de destino é Real? (Dólar-Real)" -> "Multiplique o valorOriginal por DólarParaEuro" [label=Não]

"A moeda de origem é Dólar?" -> "A moeda de destino é Real? (Euro-Real)" [label=Não]

  1. De Euro para Real

"A moeda de destino é Real? (Euro-Real)" -> "Divida o valorOriginal por RealParaEuro" [label=Sim]

  1. De Euro para Dólar

"A moeda de destino é Real? (Euro-Real)" -> "Divida o valorOriginal por DólarParaEuro" [label=Não]

"Multiplique valorOriginal e RealParaDólar" -> "Escreva o resultado da operação" "Multiplique valorOriginal e RealParaEuro" -> "Escreva o resultado da operação" "Divida o valorOriginal por RealParaDólar" -> "Escreva o resultado da operação" "Multiplique o valorOriginal por DólarParaEuro" -> "Escreva o resultado da operação" "Divida o valorOriginal por RealParaEuro" -> "Escreva o resultado da operação" "Divida o valorOriginal por DólarParaEuro" -> "Escreva o resultado da operação" "Escreva o resultado da operação" -> "Fim" } </graphviz>

Aluno 1: João

Pseudocódigo

  1. Primeira instrução.
  2. Segunda instrução.

Diagrama de blocos

<graphviz> digraph Conversao { "Início" "Leia o primeiro número" [shape=record]

Início -> "Leia o primeiro número" } </graphviz>

Aluno 2: Maria

Pseudocódigo

  1. Primeira instrução.
  2. Segunda instrução.

Diagrama de blocos

<graphviz> digraph Conversao { "Início" "Leia o primeiro número" [shape=record]

Início -> "Leia o primeiro número" } </graphviz>


Voltar para o diário da disciplina