Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Desafio: Simulador de pedidos em uma cafeteria

print("Bem-vindo ao sistema de pedidos da Cafeteria!")

# Entrada: quantidade de itens
while True:
    try:
        n = int(input("Quantos itens o cliente vai pedir?\nR: "))
        if n <= 0:
            print("Digite um número maior que zero.")
            continue
        break
    except ValueError:
        print("Entrada inválida. Digite apenas números inteiros.")

total = 0

# Loop para registrar os itens
for i in range(n):
    nome = input(f"Digite o nome do item {i+1}: ")

    # Loop para garantir que o preço seja válido
    while True:
        try:
            preco = float(input(f"Digite o preço do item {i+1}: "))
            if preco < 0:
                print("O preço não pode ser negativo. Digite novamente.")
                continue
            total += preco
            break
        except ValueError:
            print("Entrada inválida. Você deve digitar apenas números para o preço do item.")

# Verificação de cadastro
while True:
    cadastrado = input("O cliente é cadastrado? (sim/não): ").strip().lower()
    if cadastrado in ["sim", "não", "nao"]:
        break
    else:
        print("Entrada inválida. Digite apenas 'sim' ou 'não'.")

# Aplicação do desconto
if cadastrado == "sim":
    desconto = total * 0.10
    total_com_desconto = total - desconto
    print(f"Valor total com desconto: R$ {total_com_desconto:.2f}")
else:
    print(f"Valor total sem desconto: R$ {total:.2f}")
// Programa: Sistema de Pedidos da Cafeteria

exibir "Bem-vindo ao sistema de pedidos da Cafeteria!"

// Entrada da quantidade de itens
repita
    exibir "Quantos itens o cliente vai pedir?"
    tentar
        n = ler do usuário como inteiro
        se n <= 0 então
            exibir "Digite um número maior que zero."
            continuar loop
        fim se
        sair do loop
    capturar erro
        exibir "Entrada inválida. Digite apenas números inteiros."
fim repita

total = 0

// Loop para registrar os itens
para i de 1 até n faça
    exibir "Digite o nome do item " + i + ":"
    nome = ler do usuário

    // Entrada do preço com validação
    repita
        exibir "Digite o preço do item " + i + ":"
        tentar
            preco = ler do usuário como número decimal
            se preco < 0 então
                exibir "O preço não pode ser negativo. Digite novamente."
                continuar loop
            fim se
            total = total + preco
            sair do loop
        capturar erro
            exibir "Entrada inválida. Você deve digitar apenas números para o preço do item."
    fim repita
fim para

// Verificação de cadastro
repita
    exibir "O cliente é cadastrado? (sim/não)"
    resposta = ler do usuário em minúsculas
    se resposta == "sim" ou resposta == "não" ou resposta == "nao" então
        sair do loop
    senão
        exibir "Entrada inválida. Digite apenas 'sim' ou 'não'."
fim repita

// Aplicação do desconto
se resposta == "sim" então
    desconto = total * 0.10
    total_com_desconto = total - desconto
    exibir "Valor total com desconto: R$ " + total_com_desconto
senão
    exibir "Valor total sem desconto: R$ " + total
fim se
1 resposta
solução!

Olá, Delean, como vai?

Seu código apresenta uma solução completa e muito bem organizada para o desafio proposto. A lógica está clara, cobre validações importantes e conduz o atendimento do começo ao fim sem deixar brechas. A experiência de uso também fica bem estruturada com os loops garantindo entradas corretas.

Continue compartilhando seus códigos no fórum. Estamos à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!