1
resposta

Desafio: Simulador de pedidos em uma cafeteria

Você foi contratado por uma cafeteria que deseja automatizar o atendimento no balcão. O sistema deve permitir que o atendente registre os pedidos de cada cliente, calcule o valor total e aplique um desconto de 10% para clientes cadastrados.

O processo deve funcionar da seguinte forma:

  • O atendente informa quantos itens o cliente vai pedir.
  • Para cada item, o sistema solicita o nome e o preço.
  • Ao final, o sistema pergunta se o cliente é cadastrado.
  • Se for, aplica o desconto e exibe o valor com desconto.
  • Caso contrário, exibe o valor cheio.
  • O desafio consiste em criar um algoritmo que represente essa lógica de forma completa.

Antes da implementação do algoritmo, percebeu-se a necessidade de criação de um recibo de caixa, que consiste em uma lista vazia em que todos os detalhes da operação são armazenados, demonstrando a transparência do sistema para o usuário, cuja variável é denominada como recibo_de_caixa.

Deste modo, segue o algoritmo:

1. Início

Definir o valor_total representado como 0
Criar recibo_de_caixa 

2. Entrada

Perguntar: "qual a quantidade de itens dessa operação?"
Repetir até que quantidade_total seja um número maior que zero 
Registrar em quantidade_total


3. Processamento 

Para cada item de 1 até a quantidade_total:

Perguntar o nome_do_item
Perguntar o valor_do_item
Registrar o nome_do_item e o valor_do_item no recibo_de_caixa
Somar o valor_do_item ao valor_total

Esse processamento se encerra automaticamente assim que o contador atingir o número exato de quantidade_total informado no início da operação.

4. Condição:

Perguntar: "O cliente é cadastrado? (Sim/Não)"

SE: 

a resposta for "Sim":
valor_desconto = [valor_total * 0.10]
valor_final = [valor_total - valor_desconto]

SENÃO:

[valor_desconto = 0]
[valor_final = valor_total]

4. Finalização

Imprimir registro_de_caixa, contendo as seguintes informações:

Lista detalhada: Nome e preço de cada item registrado.
Subtotal: O valor de valor_total.
Desconto: O valor de valor_desconto (exibir 0 se não houver).
Total Final: O valor de valor_final a ser pago pelo cliente.
1 resposta

Olá, Andressa. Como vai?

Seu algoritmo está excelente e muito completo! Gostei muito de você ter adicionado a variável recibo_de_caixa, pois na programação isso representa o uso de listas ou arrays, que são fundamentais para armazenar múltiplos dados e garantir a transparência do sistema.

A estrutura que você montou demonstra um ótimo domínio das etapas de um programa:

  • Você aplicou corretamente o conceito de acumulador na variável valor_total, garantindo que cada novo item seja somado ao valor anterior sem perder a conta.
  • A utilização da estrutura de repetição (loop) baseada na quantidade_total torna o sistema dinâmico, permitindo que ele funcione tanto para um café simples quanto para um pedido grande.
  • A lógica condicional para o desconto de 10% está muito bem detalhada, separando o cálculo do desconto do valor final, o que facilita a exibição no recibo. *

Uma pequena sugestão para tornar seu algoritmo ainda mais robusto: na etapa da condição, ao perguntar se o cliente é cadastrado, é interessante considerar que o usuário pode digitar de formas diferentes (como "sim", "SIM" ou "S"). Em programação, costumamos usar uma função para padronizar o texto em letras minúsculas antes da verificação, garantindo que o desconto seja aplicado corretamente independente de como foi digitado.

Parabéns pela organização e pelo detalhamento das variáveis!

Espero que possa ter lhe ajudado!