2
respostas

Desafio: Simulador de pedidos em uma cafeteria (RESPOSTA)

Você foi contratado por uma cafeteria que deseja automatizar o atendimento no balcão. O sistema deve permitir que o atendente registre os pedidos de cada cliente, calcule o valor total e aplique um desconto de 10% para clientes cadastrados.

O processo deve funcionar da seguinte forma:

O atendente informa quantos itens o cliente vai pedir.
Para cada item, o sistema solicita o nome e o preço.
Ao final, o sistema pergunta se o cliente é cadastrado.
Se for, aplica o desconto e exibe o valor com desconto.
Caso contrário, exibe o valor cheio.
O desafio consiste em criar um algoritmo que represente essa lógica de forma completa.

ALGORITMO Registro de Pedidos

// ENTRADA
Defina total_do_pedido = 0
Defina total_com_desconto = 0

Mostre "Informe a quantidade de itens: "
Leia qtde_de_itens
Enquanto qtde_de_itens <= 0 faça
    Mostre "Quantidade de ítens inválida! Digite Novamente: "
    Leia qtde_de_itens
Fim_Enquanto

// PROCESSAMENTO
Para cada item de 1 até qtde_de_itens faça
    Informe "Digite o nome do item: "
    Leia nome_do_item
    Informe "Digite o preço do item: "
    Leia preco_do_item
    Calcule total_do_pedido = total_do_pedido + preco_do_item
Fim_para

Mostre "O cliente é cadastrado? (S/N): "
Leia resposta_cadastro

// SAÍDA
Se resposta_cadastro for igual a "S" ou "s" Então
    total_com_desconto = total_do_pedido * 0.90
    Informe "Desconto de 10% aplicado."
    Informe "Valor total a pagar R$: "+total_com_desconto
Senão
    Informe "Valor total a pagar R$: "+total_do_pedido
Fim_Se
Fim_Algoritmo
2 respostas

Olá, Cristian. Como vai?

Sua solução para o desafio do simulador da cafeteria ficou simplesmente impecável! O seu pseudocódigo está extremamente organizado, bem documentado com comentários dividindo as fases de Entrada, Processamento e Saída, e você demonstrou um domínio excelente das estruturas de controle da programação.

Quero destacar dois pontos muito avançados e de excelente prática de mercado que você incluiu no seu algoritmo:

**1. Validação de Entrada com o laço Enquanto**
Muitos desenvolvedores iniciantes esquecem de validar o que o usuário digita. Ao colocar o laço Enquanto qtde_de_itens <= 0 faça, você blindou o seu sistema contra erros (bugs). Se o atendente digitasse por engano um número negativo ou zero, o programa quebraria se não houvesse essa validação que você criou. Parabéns por essa visão preventiva!

2. Uso perfeito do laço Para e acumulador
A estrutura do laço Para cada item de 1 até qtde_de_itens foi a escolha perfeita, pois você já sabia de antemão quantas vezes o bloco precisaria se repetir (com base na resposta da entrada). Além disso, a lógica da variável acumuladora total_do_pedido = total_do_pedido + preco_do_item está 100% correta para somar os valores progressivamente.

Para agregar ainda mais valor ao seu algoritmo e prepará-lo para cenários do mundo real, quero deixar duas pequenas sugestões de melhorias na lógica:

  • Tratamento de espaços ou respostas vazias: Na validação do cadastro, você aceitou muito bem as variações de "S" e "s". No desenvolvimento de sistemas reais, uma boa prática é limpar possíveis espaços em branco que o usuário possa digitar sem querer (como apertar a barra de espaço antes do S). Funções que limpam o texto (como .trim() ou .toUpperCase()) são ótimas aliadas nessa etapa.
  • Simplificação na declaração de variáveis: No topo do algoritmo, você definiu total_com_desconto = 0. Como essa variável só é utilizada dentro do bloco Se, você poderia economizar memória declarando-a diretamente dentro da condição onde o desconto é aplicado, deixando o escopo do código global mais limpo.

Seu raciocínio lógico está muito maduro e estruturado exatamente como os interpretadores de código trabalham por trás dos panos. Continue aplicando essa dedicação nos próximos desafios!

Espero que possa ter lhe ajudado!

Caso tenha dúvidas pode fazer bom proveito do Fórum, estamos nos ajudando.