Sistemas Operacionais e Introdução a Programação (diário 2009-2): Problema de conversão de moedas
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:
- Leia a taxa de conversão do dia de Real para Dólar.
- Armazene a taxa de conversão do dia de Real para Dólar na variável RealParaDólar.
- Leia a taxa de conversão do dia de Real para Euro.
- Armazene a taxa de conversão do dia de Real para Euro na variável RealParaEuro.
- Leia a taxa de conversão do dia de Dólar para Euro.
- Armazene a taxa de conversão do dia de Dólar para Euro na variável DólarParaEuro.
- Leia a moeda de origem.
- Leia o valor a ser convertido.
- Armazene o valor a ser convertido na variável valorOriginal.
- Leia a moeda de destino.
- Se a moeda de origem for Real e a moeda de destino for Dólar, multiplique as variáveis valorOriginal e RealParaDólar.
- Se a moeda de origem for Dólar e a moeda de destino for Real, divida a variável valorOriginal por RealParaDólar.
- Se a moeda de origem for Real e a moeda de destino for Euro, multiplique as variáveis valorOriginal e RealParaEuro.
- Se a moeda de origem for Euro e a moeda de destino for Real, divida a variável valorOriginal por RealParaEuro.
- Se a moeda de origem for Dólar e a moeda de destino for Euro, multiplique as variáveis valorOriginal e DólarParaEuro.
- Se a moeda de origem for Euro e a moeda de destino for Dólar, divida a variável valorOriginal por DólarParaEuro.
- 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]
- De Real para Dólar
"A moeda de destino é Dólar? (Real-Dólar)" -> "Multiplique valorOriginal e RealParaDólar" [label=Sim]
- 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]
- De Dólar para Real
"A moeda de destino é Real? (Dólar-Real)" -> "Divida o valorOriginal por RealParaDólar" [label=Sim]
- 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]
- De Euro para Real
"A moeda de destino é Real? (Euro-Real)" -> "Divida o valorOriginal por RealParaEuro" [label=Sim]
- 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
- Primeira instrução.
- 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
- Primeira instrução.
- 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>