1
resposta

[Projeto] Desafio da cafeteria

** Lógica do algoritmo**

  1. Início
  2. Perguntar quantidade de itens
  3. Validar (é número? > 0?)
  4. Criar lista de itens
  5. Loop para cada item:
  • Nome do item
  • Preço
  • Validar preço (> 0)
  • Guardar na lista
  1. Perguntar se cliente é cadastrado
  2. Decisão:
  • Sim → aplicar desconto
  • Não → manter total
  1. Mostrar resumo + total
  2. Fim

Pseudocódigo

Início

    // ===== VALIDAÇÃO DA QUANTIDADE =====
    Repita
        Escreva "Quantos itens o cliente vai pedir?"
        Leia quantidade
        Se quantidade é número E quantidade > 0 então
            válido ← verdadeiro
        Senão
            Escreva "Entrada inválida. Digite um número inteiro maior que 0."
            válido ← falso
        FimSe
    Até válido = verdadeiro

    // ===== CRIAR LISTA =====
    itens ← lista vazia

    // ===== LOOP DOS ITENS =====
    Para i de 1 até quantidade faça

        Escreva "Nome do item:"
        Leia nome

        // ===== VALIDAÇÃO DO PREÇO =====
        Repita
            Escreva "Preço do item:"
            Leia preco
            Se preco é número E preco > 0 então
                válido ← verdadeiro
            Senão
                Escreva "Preço inválido. Digite um valor positivo."
                válido ← falso
            FimSe
        Até válido = verdadeiro

        Adicione (nome, preco) à lista itens

    FimPara

    // ===== CÁLCULO DO TOTAL =====
    total ← 0
    Para cada item em itens faça
        total ← total + item.preco
    FimPara

    // ===== CLIENTE CADASTRADO =====
    Escreva "Cliente é cadastrado? (sim/não)"
    Leia cliente

    Se cliente = "sim" então
        desconto ← total * 0.10
        total ← total - desconto
    Senão
        desconto ← 0
    FimSe

    // ===== SAÍDA =====
    Escreva "Resumo do pedido:"
    Para cada item em itens faça
        Escreva item.nome, "-", item.preco
    FimPara

    Escreva "Desconto:", desconto
    Escreva "Total a pagar:", total

Fim

Fluxograma
Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu usei o draw.io.

Exemplo em Python

itens = []

# validar quantidade
while True:
    try:
        quantidade = int(input("Quantos itens o cliente vai pedir? "))
        if quantidade > 0:
            break
        else:
            print("Digite um número maior que 0.")
    except:
        print("Entrada inválida. Digite um número.")

# cadastro dos itens
for i in range(quantidade):
    nome = input(f"Nome do item {i+1}: ")

    while True:
        try:
            preco = float(input(f"Preço do item {i+1}: R$ "))
            if preco > 0:
                break
            else:
                print("O preço deve ser positivo.")
        except:
            print("Entrada inválida. Digite um número.")

    itens.append({"nome": nome, "preco": preco})

# cálculo total
total = sum(item["preco"] for item in itens)

# cliente cadastrado
cliente = input("Cliente é cadastrado? (sim/não): ").strip().lower()

if cliente == "sim":
    desconto = total * 0.10
    total -= desconto
else:
    desconto = 0

# saída
print("\n--- Resumo do Pedido ---")
for item in itens:
    print(f"{item['nome']} - R$ {item['preco']:.2f}")

print(f"\nSubtotal: R$ {sum(item['preco'] for item in itens):.2f}")
print(f"Desconto: R$ {desconto:.2f}")
print(f"Total: R$ {total:.2f}")
1 resposta

Inicio = Pedir a quantidade de itens
criar uma variável com total = 0

Pedir o nome do item
Pedir a quantidade
Pedir o preço
total = quant. + preço

Perguntar = Cliente têm cadastro? (True/False)
Sendo True = desconto = total * 0,10
Sendo False = Total sem desconto

Final exibir = Total a pagar