1
resposta

Desafio: Simulador de pedidos em uma cafeteria

Início

Declare:
    quantidade, contador
    nomeItem
    precoItem, total, desconto, totalFinal
    clienteCadastrado

total ← 0

Escreva "Quantos itens o cliente vai pedir?"
Leia quantidade

Para contador de 1 até quantidade faça

    Escreva "Digite o nome do item:"
    Leia nomeItem

    Escreva "Digite o preço do item:"
    Leia precoItem

    total ← total + precoItem

FimPara

Escreva "O cliente é cadastrado? (S para sim / N para não)"
Leia clienteCadastrado

Se clienteCadastrado = "S" então

    desconto ← total * 0,10
    totalFinal ← total - desconto

    Escreva "Valor total sem desconto: R$", total
    Escreva "Desconto aplicado: R$", desconto
    Escreva "Valor final com desconto: R$", totalFinal

Senão

    Escreva "Valor total da compra: R$", total

FimSe
1 resposta

Olá, Henrique! Como vai?

Excelente resolução! Você demonstrou um domínio muito claro da Lógica de Programação ao utilizar uma estrutura de repetição (Para) em conjunto com estruturas condicionais (Se). Esse é um exemplo clássico de como o pensamento computacional resolve problemas do cotidiano, como o fechamento de uma conta em uma cafeteria.

Sua lógica de acumular o valor total dentro do laço e só aplicar o desconto ao final é a abordagem mais eficiente e organizada.

Destaques do seu Algoritmo

  • Uso do Acumulador: A linha total ← total + precoItem é o coração do programa. Sem ela, o computador "esqueceria" o preço do item anterior a cada nova volta do laço.
  • Cálculo de Porcentagem: Você aplicou corretamente a lógica de desconto utilizando $total \times 0,10$.
  • Clareza nas Variáveis: Declarar as variáveis logo no início facilita muito a leitura e a manutenção do código.

Dicas para Evoluir o Projeto

Para deixar o seu simulador ainda mais robusto e próximo de um sistema real, deixo duas sugestões:

  1. Validação de Resposta: No campo clienteCadastrado, o que aconteceria se o usuário digitasse "s" (minúsculo)? Para o computador, "S" e "s" são caracteres diferentes. Em linguagens como Python, usamos o método .upper() para garantir que qualquer "s" seja tratado como maiúsculo.
  2. Modularização: Se a cafeteria decidisse que o desconto agora é de 15% para datas especiais, você teria que procurar o valor no meio do código. Uma boa prática é criar uma variável de configuração no início, como TAXA_DESCONTO ← 0,10.

Veja como ficaria em Python:

total = 0
quantidade = int(input("Quantos itens o cliente vai pedir? "))

for i in range(quantidade):
    nome_item = input(f"Digite o nome do item {i+1}: ")
    preco_item = float(input(f"Digite o preço de {nome_item}: R$ "))
    total += preco_item

cliente_cadastrado = input("O cliente é cadastrado? (S/N): ").strip().upper()

if cliente_cadastrado == "S":
    desconto = total * 0.10
    total_final = total - desconto
    print(f"\nValor sem desconto: R$ {total:.2f}")
    print(f"Desconto (10%): R$ {desconto:.2f}")
    print(f"Valor final: R$ {total_final:.2f}")
else:
    print(f"\nValor total: R$ {total:.2f}")

Sua base lógica está muito sólida, Henrique! Dominar o fluxo de repetição e decisão é o passo mais importante para qualquer pessoa que deseja mergulhar na programação.

Espero que possa ter lhe ajudado!

Uma pergunta para refletirmos: Se a regra mudasse e o desconto só fosse aplicado para compras acima de R$ 50,00, onde você adicionaria essa nova condição no seu código?