Olá, Paulo. Como vai?
Sua resolução para o desafio da cafeteria está fantástica! Você utilizou conceitos muito interessantes e avançados, como o uso de vetores e o método Reduce, demonstrando uma visão bem moderna da lógica de programação.
Para agregar valor ao seu projeto, gostaria de destacar como a sua escolha pelo método Reduce é poderosa. Em vez de criar um laço de repetição manual (como um para ou enquanto) para somar cada item, o Reduce condensa toda a lista em um único valor final de forma muito elegante.
Analisando sua Lógica
- Abstração e Estrutura de Dados: Ao usar um vetor para
ITENS, você permitiu que o pedido tenha qualquer tamanho. Isso é ótimo para a escalabilidade do sistema! - Decisão Lógica (Condicional): Sua verificação da variável
CADASTRADO para aplicar os 10% de desconto está perfeita. Matematicamente, para o código, você pode representar esse desconto como TOTAL = TOTAL * 0.90.
Uma pequena dica de "Pulo do Gato"
No seu processamento, você mencionou: "A cada pedido é acrescentado um item nele". Na programação, quando trabalhamos com valores financeiros, geralmente armazenamos objetos ou pares de chave-valor no vetor, por exemplo: {nome: "Café", preco: 5.00}.
Se você estiver apenas guardando o nome do item no vetor ITENS, o seu Reduce precisará de uma tabela de consulta para saber o preço de cada um. Uma alternativa prática seria:
- O atendente seleciona o item.
- O sistema busca o preço.
- O sistema adiciona apenas o preço em um vetor chamado
PRECOS_PEDIDO. - O
Reduce soma esse vetor de números.
Parabéns pela clareza na separação entre Entrada, Processamento e Saída. Essa organização é o que define um bom Pensamento Computacional!
Como você faria se o cliente decidisse remover um item da lista antes de finalizar o pagamento?