1
resposta

Automatizar Atendimento na Cafeteria

Início

Entrada:

Solicitar a quantidade de itens.
Ler quantidade_itens.

total = 0

Para cada item:

Solicitar o nome do item.
Ler nome_item.

Solicitar o preço do item.
Ler preco_item.

total = total + preco_item

Fim do laço.

Processamento:

Perguntar se o cliente é cadastrado.
Ler cliente_cadastrado.

Se cliente_cadastrado = verdadeiro então:

desconto = total * 0.10
total_final = total - desconto

Senão:

total_final = total

Saída:

Exibir:
"Valor final do pedido: R$ ", total_final

Fim.

1 resposta

Olá, Marcio. Como vai?

Seu algoritmo está muito bem estruturado e segue uma lógica sequencial clara, que é a base do pensamento computacional. Você dividiu corretamente o problema em Entrada, Processamento e Saída, além de utilizar um laço de repetição para acumular os valores, o que torna o sistema dinâmico para qualquer quantidade de itens.

Para agregar ainda mais valor ao seu projeto de automação da cafeteria, gostaria de sugerir alguns pontos de melhoria técnica e boas práticas que tornariam esse sistema mais robusto:

  • Validação de Entrada: Em sistemas reais, é importante garantir que a quantidade_itens não seja um número negativo ou zero antes de iniciar o laço.
  • Escopo das Variáveis: Note que você definiu o desconto apenas dentro da condição de cliente cadastrado. Uma boa prática é inicializar desconto = 0 no início do processamento para evitar que o programa tente acessar uma variável que não existe caso o cliente não seja cadastrado.
  • Exibição do Desconto: Para o cliente, é sempre interessante ver quanto ele economizou. Adicionar uma linha para exibir o valor do desconto aplicado gera uma experiência melhor no atendimento.

Veja como o trecho do processamento e saída ficaria com um pequeno ajuste para maior clareza:

Processamento:
desconto = 0
Perguntar se o cliente é cadastrado no programa de fidelidade.
Ler cliente_cadastrado.

Se cliente_cadastrado = verdadeiro então:
    desconto = total * 0.10
FimSe

total_final = total - desconto

Saída:
Exibir: "Subtotal: R$ ", total
Se desconto > 0 então:
    Exibir: "Desconto aplicado (10%): R$ ", desconto
FimSe
Exibir: "Valor final a pagar: R$ ", total_final

Essa pequena mudança de calcular o total_final fora do if/else deixa o código mais limpo e evita repetição de fórmulas (o famoso princípio DRY - Don't Repeat Yourself). Parabéns pelo desenvolvimento do desafio, a lógica está no caminho certo!

Espero que possa ter lhe ajudado!