9. Cálculo de Desconto
- Conceitos: Solicitação de valores, Expressão simples, Atribuição, Teste Condicional Composto (IF/ELSE), Impressão.
- Enunciado: Crie um fluxograma que solicite o valor de uma compra. O algoritmo deve aplicar um desconto de
se o valor da compra for maior ou igual a
100,00
0 %$. O fluxograma deve imprimir o valor final a ser pago após o desconto.
Passo 1
O enunciado pede que criemos um fluxograma que:
- Solicite o valor de uma compra.
- Aplique um desconto de
se o valor da compra for maior ou igual a . - Caso contrário, aplique desconto de
. - Imprima o valor final a ser pago após o desconto.
Informações dadas e resultados esperados:
- Threshold (limiar) para desconto:
. - Percentual de desconto quando a condição é satisfeita:
(ou seja, fator ). - Percentual de desconto quando a condição não é satisfeita:
(fator ). - Saída final: mostrar o valor a pagar após subtrair o desconto.
Passo 2
Definição das variáveis que usaremos no fluxograma (sempre declare antes de usar, mentalmente ou no bloco de processo):
-
: número real que representa o valor da compra informado pelo usuário. -
: número real que representa a porcentagem de desconto em forma de fração (ex.: para ). -
: número real com o valor a pagar após aplicar o desconto.
Explicação sobre tipos e por que usamos reais:
- Usamos números reais para permitir centavos (ex.:
). - Em um fluxograma, as atribuições serão do tipo “desconto := 0,10” (leia-se “desconto recebe 0,10”).
Passo 3
Como calcular o valor do desconto em moeda (aula rápida sobre porcentagem):
- Se sabemos a porcentagem em forma decimal
(por exemplo, para ), o valor do desconto em reais é
- O valor final a pagar é
Aqui
é a variável
definida acima.
Passo 4
Desenho lógico do teste condicional (IF/ELSE) que o fluxograma deve ter:
- Condição a testar:
. - Se a condição é verdadeira (SIM): atribuir
. - Se a condição é falsa (NÃO): atribuir
.
Explicação didática do IF/ELSE:
- O bloco decisão (losango no fluxograma) avalia uma comparação lógica. Aqui usamos o operador maior ou igual (
). - Dependendo do resultado, seguimos por uma das duas setas: ramo “SIM” ou ramo “NÃO”.
- Cada ramo leva a um bloco de processo (retângulo) que faz a atribuição do percentual.
Passo 5
Passos de cálculo após a decisão:
- Calcular o desconto em reais:
- Calcular o valor final:
ou, de forma compacta,
Explicação de cada símbolo:
-
significa “atribuição” — coloca o valor do lado direito na variável do lado esquerdo. - Multiplicação e subtração seguem a aritmética normal; mantenha atenção às casas decimais.
Passo 6
Boas práticas de entrada e saída (I/O):
- Entrada: peça ao usuário para informar
. Não peça mais dados. - Validação simples (opcional, mas recomendado): verificar se
. Se negativo, emitir mensagem de erro e pedir novamente ou encerrar com aviso. (Como o enunciado não exige, isso é uma melhoria opcional.) - Saída: imprimir uma mensagem clara, por exemplo “Valor a pagar: R$ X,XX”, formatando
com duas casas decimais e usando vírgula decimal conforme padrão brasileiro. Ao imprimir, arredonde para duas casas decimais.
Passo 7
Vou exemplificar com dois casos numéricos para fixar:
- Caso A:
. - Teste:
é verdadeiro, logo . -
. -
. - Resultado impresso: “Valor a pagar: R$ 135,00”.
- Teste:
- Caso B:
. - Teste:
é falso, logo . -
. -
. - Resultado impresso: “Valor a pagar: R$ 80,00”.
- Teste:
Passo 8
Descrição detalhada do fluxograma, bloco a bloco (isso é o “desenho” que você colocaria no papel ou em software de fluxograma):
- Start (oval).
- Input/Output (paralelogramo): “Solicitar valor da compra” e armazenar em
. - Decision (losango): condição “
”. - Ramo SIM:
- Process (retângulo): “desconto := 0{,}10”.
- Ramo NÃO:
- Process (retângulo): “desconto := 0{,}00”.
- Ramo SIM:
- Process (retângulo): “valorFinal := valor \times (1 - desconto)”.
- Output (paralelogramo): “Imprimir 'Valor a pagar: R$ ’ + valorFinal (formatado com 2 casas decimais)”.
- End (oval).
Observação sobre setas: do losango saem duas setas rotuladas “SIM” e “NÃO” para os respectivos processos de atribuição.
Passo 9
Pseudocódigo correspondente (útil se você precisar transformar o fluxograma em código depois):
Passo 10
Dicas para a prova (como desenhar rápido e sem errar):
- Desenhe os blocos na ordem lógica: Start → Input → Decision → Process → Output → End.
- Rotule a condição claramente com
e marque as saídas como “SIM” e “NÃO”. - Use variáveis curtas e claras:
, , . - Faça um pequeno cálculo de exemplo ao lado para verificar seu fluxograma está correto (por exemplo,
e ) — isso ajuda a garantir que seu fluxo está certo. - Se o enunciado pedir exibição formatada, não esqueça de mencionar arredondamento para duas casas decimais.
Resposta
Start → Ler
→ [
?] (SIM) →
→ (NÃO) →
→
→ Imprimir "Valor a pagar: R$ " +
(formatado com 2 casas) → End