Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio: Calculando pedidos

Comecei separando o que é fixo (preços) do que vem do cliente (quantidades), e deixei o cálculo no final.

preco_hamburguer = 12
preco_batata = 7
preco_refri = 5

escrever "Bem-vinda(o)! Monte seu pedido."
escrever "Quantos hambúrgueres você quer?" ler qtd_hamburguer
escrever "Quantas batatas fritas?" ler qtd_batata
escrever "Quantos refrigerantes?" ler qtd_refri

total_hamburguer = qtd_hamburguer * preco_hamburguer
total_batata = qtd_batata * preco_batata
total_refri = qtd_refri * preco_refri

total_pedido = total_hamburguer + total_batata + total_refri

escrever "Resumo do seu pedido:"
escrever " - ", qtd_hamburguer, "x Hambúrguer .... R$ ", total_hamburguer
escrever " - ", qtd_batata, "x Batata frita .. R$ ", total_batata
escrever " - ", qtd_refri, "x Refrigerante .. R$ ", total_refri
escrever "Total a pagar: R$ ", total_pedido
escrever "Obrigado pelo pedido!"

Testando com 2 hambúrgueres, 1 batata e 3 refris: 24 + 7 + 15 = R$ 46,00.

E se faltar estoque?

Pensando em um sistema real, antes de cobrar o cliente faz sentido conferir se temos o item disponível. Isso me obrigou a usar condicionais (se...então) e a tratar o estoque como uma variável que muda depois do pedido. Também ajustei as mensagens para serem claras e gentis com o cliente, sem expor jargão de sistema:

estoque_hamburguer = 10
estoque_batata = 15
estoque_refri = 20

escrever "Bem-vindo! Monte seu pedido."
ler qtd_hamburguer, qtd_batata, qtd_refri

se qtd_hamburguer > estoque_hamburguer então
escrever "Desculpe, no momento temos apenas ", estoque_hamburguer,
" hambúrgueres disponíveis. Deseja ajustar o pedido?"
fim
se qtd_batata > estoque_batata então
escrever "Desculpe, temos apenas ", estoque_batata,
" porções de batata frita disponíveis. Deseja ajustar o pedido?"
fim
se qtd_refri > estoque_refri então
escrever "Desculpe, temos apenas ", estoque_refri,
" refrigerantes disponíveis. Deseja ajustar o pedido?"
fim

total_pedido = (qtd_hamburguer * preco_hamburguer)
+ (qtd_batata * preco_batata)
+ (qtd_refri * preco_refri)

estoque_hamburguer = estoque_hamburguer - qtd_hamburguer
estoque_batata = estoque_batata - qtd_batata
estoque_refri = estoque_refri - qtd_refri

escrever "Pedido confirmado!"
escrever "Total a pagar: R$ ", total_pedido
escrever "Seu pedido já está sendo preparado. Obrigado!"

O algoritmo deixa de só calcular e passa a decidir. A validação precisa vir antes do cálculo (senão a gente confirma um pedido que não pode entregar), e o estoque vira um estado que muda a cada compra.

Outra coisa que percebi: a mensagem que o sistema mostra é parte do algoritmo. "Sem estoque suficiente de hambúrguer" resolve o problema técnico, mas "Desculpe, temo apenas 10 hambúrgueres disponíveis. Deseja ajustar o pedido?" resolve o problema do cliente informa o que falta, dá um caminho de saída e mantém o tom da marca.

2 respostas

Oi, Levi! Como vai?

Agradeço por compartilhar.

Gostei da forma como você separou os valores fixos, as quantidades informadas pelo cliente e os cálculos finais, pois isso deixa o algoritmo mais organizado e fácil de entender. Sua análise sobre estoque também ficou muito boa, já que mostra que o programa não deve apenas calcular, mas também validar as condições antes de confirmar o pedido.

Sua ideia de pensar na mensagem exibida ao cliente faz muito sentido, porque a comunicação também faz parte da experiência do sistema. Dica: antes de descontar o estoque e calcular o total, você pode criar uma condição para confirmar o pedido apenas quando todas as quantidades forem válidas; assim, o sistema evita cobrar por algo que não poderá entregar.

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

Obrigado pelo retorno Lorena, no "se faltar estoque" tentem estruturar de forma a usar condição para confirmar a disponibilidade antes de finalizar o pedido, mas pensando no problema, um feedback no momento do usuario colocar a quantidade de cada item ja ter uma devolução de falta de estoque pode ser uma solução tambem.