1
resposta

[Projeto] Desafio: Simulador de pedidos em uma cafeteria

  • Entrada:
    1. Uma lista é armazenada em um vetor com o nome de ITENS;
    2. O atendente recebe o pedido dos itens do cliente e vai acrescentando a ITENS;
    3. O atendente pergunta se o cliente é cadastrado e armazena a resposta na variável CADASTRADO;
  • Processamento:
    1. ITENS inicialmente é um vetor vazio;
    2. A cada pedido é acrescentado um item nele;
    3. Usando um método Reduce, é somado o valor total dos itens e armazenato em TOTAL;
    4. Se CADASTRADO for True, o valor de TOTAL terá um decréscimo de 10%. Caso contrário, mante-se-á;
  • Saída:
    1. Será mostrado no display: "Valor total: " + TOTAL;
1 resposta

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:

  1. O atendente seleciona o item.
  2. O sistema busca o preço.
  3. O sistema adiciona apenas o preço em um vetor chamado PRECOS_PEDIDO.
  4. 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?