1
resposta

Desafio: Simulador de pedidos em uma cafeteria

Boa tarde!

Agradeço se alguém puder fazer ajustes, propor melhorias ou comentar essa solução.

Um forte abraço.


Algoritmo para Sistema de Atendimento - Cafeteria
Objetivo
Registrar pedidos de clientes, calcular o valor total e aplicar desconto de 10% para clientes cadastrados.

Algoritmo em Linguagem Natural (Passo a Passo Executável)

  1. INICIALIZAÇÃO
    INÍCIO

Iniciar o sistema de registro de pedidos.

CONFIGURAÇÃO INICIAL

Definir total_pedido = 0.00

Definir taxa_desconto = 0.10 (10%)

  1. ENTRADA DE DADOS DO PEDIDO
    QUANTIDADE DE ITENS

Solicitar: "Quantos itens o cliente vai pedir?"

Armazenar o valor em quantidade_itens

REGISTRO DE CADA ITEM

PARA i = 1 ATÉ quantidade_itens, FAÇA:

Solicitar: "Nome do item [i]:"

Armazenar em nome_item

Solicitar: "Preço do item [i]:"

Armazenar em preco_item

Atualizar: total_pedido = total_pedido + preco_item

  1. VERIFICAÇÃO DE DESCONTO
    CONSULTA DE CADASTRO

Solicitar: "O cliente é cadastrado? (S para Sim / N para Não):"

SE resposta = "S" ou "s":

cliente_cadastrado = VERDADEIRO

SENÃO:

cliente_cadastrado = FALSO

  1. PROCESSAMENTO FINAL
    CÁLCULO DO VALOR FINAL

SE cliente_cadastrado for VERDADEIRO:

Calcular valor_desconto = total_pedido * taxa_desconto

Calcular total_final = total_pedido - valor_desconto

SENÃO:

total_final = total_pedido

valor_desconto = 0.00

  1. SAÍDA E EXIBIÇÃO
    EXIBIÇÃO DO RESULTADO

Exibir: "--- RESUMO DO PEDIDO ---"

Exibir: "Total dos itens: R$ [total_pedido]"

SE cliente_cadastrado for VERDADEIRO:

Exibir: "Desconto (10%): -R$ [valor_desconto]"

Exibir: "VALOR FINAL: R$ [total_final]"

Exibir: "Obrigado pela preferência!"

FIM

Encerrar o registro do pedido.

Exemplo Prático de Execução
Cenário: Cliente pede 2 itens e é cadastrado

text
Sistema: "Quantos itens o cliente vai pedir?"
Atendente: 2

Sistema: "Nome do item 1:"
Atendente: Cappuccino
Sistema: "Preço do item 1:"
Atendente: 8.50

Sistema: "Nome do item 2:"
Atendente: Brownie
Sistema: "Preço do item 2:"
Atendente: 6.00

Sistema: "O cliente é cadastrado? (S para Sim / N para Não):"
Atendente: S

Sistema:
"--- RESUMO DO PEDIDO ---
Total dos itens: R$ 14.50
Desconto (10%): -R$ 1.45
VALOR FINAL: R$ 13.05
Obrigado pela preferência!"
Cálculo Detalhado do Exemplo
Itens: Cappuccino (R$ 8,50) + Brownie (R$ 6,00) = R$ 14,50

Desconto (10%): R$ 14,50 × 0,10 = R$ 1,45

Total Final: R$ 14,50 - R$ 1,45 = R$ 13,05

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Olá Adriano.
Este é quase um app.
Realmente muito bom para o seu proposito.
Parabéns.
Apenas envolveria seu código em crases triplas ou utilizaria a ferramenta </> do editor.
Isso facilita a visualização e não quebra a identação.

# Declaração de variáveis
total_pedido = 0.00  # Total acumulado do pedido
taxa_desconto = 0.10  # Taxa de desconto de 10%
produtos_disponiveis = [  # Lista de produtos disponíveis
    {"nome": "Cappuccino", "preco": 8.50},
    {"nome": "Brownie", "preco": 6.00}
]

# Solicitar o número de itens
quantidade_itens = int(pergunte("Quantos itens o cliente vai pedir? "))

# Inicializar lista de itens do pedido do cliente
itens_pedido_cliente = []

# Registro de cada item no pedido
para i em intervalo(1, quantidade_itens + 1):
    nome_item = pergunte(f"Nome do item {i}: ")
    preco_item = float(pergunte(f"Preço do item {i}: "))
    
    # Adicionar item à lista de itens do pedido
    itens_pedido_cliente.adiciona({"nome": nome_item, "preco": preco_item})

    # Atualizar o total do pedido
    total_pedido += preco_item

# Verificação se o cliente é cadastrado
resposta = pergunte("O cliente é cadastrado? (S para Sim / N para Não): ")

# Definir o status de cadastro
//lower() converte tudo para minuscula
se resposta.lower() == "s": 
    cliente_cadastrado = Verdadeiro
senão:
    cliente_cadastrado = Falso

# Processamento final
se cliente_cadastrado:
    valor_desconto = total_pedido * taxa_desconto
    total_final = total_pedido - valor_desconto
senão:
    total_final = total_pedido
    valor_desconto = 0.00

# Exibição do resumo do pedido
imprimir("\n--- RESUMO DO PEDIDO ---")
imprimir(f"Total dos itens: R$ {total_pedido:.2f}")

se cliente_cadastrado:
    imprimir(f"Desconto (10%): -R$ {valor_desconto:.2f}")

imprimir(f"VALOR FINAL: R$ {total_final:.2f}")
imprimir("Obrigado pela preferência!")

Confere ai e avise qualquer duvida.
Apenas adicionei uma lista para guardar os itens do cliente e outra para mostrar os itens disponiveis na loja.
E salvei tudo em variaveis para utilizar depois.