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 10 \% se o valor da compra for maior ou igual a \mathrm{R} \ 100,00 . Caso contrário, o desconto éáé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 10\% se o valor da compra for maior ou igual a \mathrm{R}\$\;100,00.
  • Caso contrário, aplique desconto de 0\%.
  • Imprima o valor final a ser pago após o desconto.
Informações dadas e resultados esperados:
  • Threshold (limiar) para desconto: \mathrm{R}\$\;100,00.
  • Percentual de desconto quando a condição é satisfeita: 10\% (ou seja, fator 0{,}10).
  • Percentual de desconto quando a condição não é satisfeita: 0\% (fator 0{,}00).
  • 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):
  • \;valor\;: número real que representa o valor da compra informado pelo usuário.
  • \;desconto\;: número real que representa a porcentagem de desconto em forma de fração (ex.: 0{,}10 para 10\%).
  • \;valorFinal\;: 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.: \mathrm{R}\$\;123,45).
  • 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 \;p\; (por exemplo, p=0{,}10 para 10\%), o valor do desconto em reais é
\text{desconto\_monetario} = valor \times p.
  • O valor final a pagar é
valorFinal = valor - \text{desconto\_monetario} = valor - (valor \times p) = valor \times (1 - p).
Aqui \;p\; é a variável \;desconto\; definida acima.

Passo 4

Desenho lógico do teste condicional (IF/ELSE) que o fluxograma deve ter:
  • Condição a testar: \;valor \ge 100{,}00\;.
  • Se a condição é verdadeira (SIM): atribuir \;desconto := 0{,}10\;.
  • Se a condição é falsa (NÃO): atribuir \;desconto := 0{,}00\;.
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 ( \ge).
  • 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:
  1. Calcular o desconto em reais:
\text{desconto\_monetario} := valor \times desconto.
  1. Calcular o valor final:
valorFinal := valor - \text{desconto\_monetario}.
ou, de forma compacta,
valorFinal := valor \times (1 - desconto).
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 \;valor\;. Não peça mais dados.
  • Validação simples (opcional, mas recomendado): verificar se \;valor \ge 0{,}00\;. 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 \;valorFinal\; 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: \;valor=150{,}00.
    • Teste: 150{,}00 \ge 100{,}00 é verdadeiro, logo \;desconto := 0{,}10.
    • \text{desconto\_monetario} = 150{,}00 \times 0{,}10 = 15{,}00.
    • \;valorFinal = 150{,}00 - 15{,}00 = 135{,}00.
    • Resultado impresso: “Valor a pagar: R$ 135,00”.
  • Caso B: \;valor=80{,}00.
    • Teste: 80{,}00 \ge 100{,}00 é falso, logo \;desconto := 0{,}00.
    • \text{desconto\_monetario} = 80{,}00 \times 0{,}00 = 0{,}00.
    • \;valorFinal = 80{,}00 - 0{,}00 = 80{,}00.
    • Resultado impresso: “Valor a pagar: R$ 80,00”.

Passo 8

Descrição detalhada do fluxograma, bloco a bloco (isso é o “desenho” que você colocaria no papel ou em software de fluxograma):
  1. Start (oval).
  2. Input/Output (paralelogramo): “Solicitar valor da compra” e armazenar em \;valor\;.
  3. Decision (losango): condição “ \;valor \ge 100{,}00\; ?”.
    • Ramo SIM:
      • Process (retângulo): “desconto := 0{,}10”.
    • Ramo NÃO:
      • Process (retângulo): “desconto := 0{,}00”.
  4. Process (retângulo): “valorFinal := valor \times (1 - desconto)”.
  5. Output (paralelogramo): “Imprimir 'Valor a pagar: R$ ’ + valorFinal (formatado com 2 casas decimais)”.
  6. 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):
\text{Inicio}
\quad \text{Ler } valor
\quad \text{Se } valor \ge 100{,}00 \text{ então}ã
\quad\quad desconto := 0{,}10
\quad \text{senao}
\quad\quad desconto := 0{,}00
\quad \text{FimSe}
\quad valorFinal := valor \times (1 - desconto)
\quad \text{Imprimir } "Valor a pagar: R\$ " \; valorFinal
\text{Fim}

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 \;valor \ge 100{,}00\; e marque as saídas como “SIM” e “NÃO”.
  • Use variáveis curtas e claras: \;valor, \;desconto, \;valorFinal.
  • Faça um pequeno cálculo de exemplo ao lado para verificar seu fluxograma está correto (por exemplo, \;valor=150{,}00 e \;valor=80{,}00) — 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 valor → [ valor \ge 100{,}00 ?] (SIM) → desconto := 0{,}10 → (NÃO) → desconto := 0{,}00 valorFinal := valor \times (1 - desconto) → Imprimir "Valor a pagar: R$ " + valorFinal (formatado com 2 casas) → End

Exercícios relacionados