1
resposta

[Projeto] Desafio: Simulador de pedidos em uma cafeteria

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

Início
valor_total = 0

Imprimir("Digite o nome do cliente:")
nome = Ler()

Imprimir("Digite a quantidade do pedido:")
quantidade = Ler()

Para cada item de 1 até quantidade faça
Imprimir("Digite o nome do item:")
item = Ler() Imprimir("Digite o valor do item:")
valor = Ler()
valor_total = valor_total + valor
Fim Para

Imprimir("Cliente possui cadastro na loja? (Sim/Não)")
cadastro = Ler()

Se cadastro == "Sim" então
desconto = valor_total * 0.9
Imprimir("Valor com desconto: ", desconto)
Senão Imprimir("Valor total: ", valor_total)

Fim Se

Fim

1 resposta

Olá, Dannyel. Como vai?

Parabéns pelo excelente trabalho no desenvolvimento desse pseudocódigo! A estrutura do seu simulador está muito bem desenhada e você conseguiu aplicar com maestria os pilares do pensamento computacional, como a decomposição do problema e a criação de algoritmos lógicos.

Seu algoritmo resolve perfeitamente o problema proposto: lê os dados corretamente, utiliza um laço de repetição (Para) para somar os valores dos itens e aplica com precisão a estrutura condicional (Se/Senão) para validar o desconto do cliente cadastrado.

Para enriquecer ainda mais o seu projeto e aplicar algumas boas práticas de lógica de programação, deixo dois pontos de melhoria importantes que vão evitar pequenos bugs quando você passar esse pseudocódigo para uma linguagem de programação real (como JavaScript ou Python):

  • Tratamento do Texto (Maiúsculas/Minúsculas): Na linha Se cadastro == "Sim" então, o computador vai procurar exatamente pela palavra com a primeira letra maiúscula. Se o atendente digitar tudo minúsculo ("sim") ou tudo maiúsculo ("SIM"), o sistema vai entender como falso e não aplicará o desconto. Uma boa prática é converter o texto lido para minúsculo antes da validação.
  • Cálculo da Porcentagem: Na linha desconto = valor_total * 0.9, você calculou diretamente o valor final que o cliente vai pagar (90% do valor total, ou seja, 10% de desconto). O cálculo matemático está correto, mas o nome da variável pode confundir outro programador. O mais adequado seria chamar a variável de valor_final ou total_com_desconto.

Veja como o seu pseudocódigo modificado ficaria ainda mais robusto com essas sugestões e pequenas correções de legibilidade:

Início
    valor_total = 0
    
    Imprimir("Digite o nome do cliente:")
    nome = Ler()
    
    Imprimir("Digite a quantidade de itens do pedido:")
    quantidade = ConverterParaNumero(Ler())
    
    Para cada item de 1 até quantidade faça
        Imprimir("Digite o nome do item:")
        nome_item = Ler() 
        
        Imprimir("Digite o valor do item:")
        valor_item = ConverterParaNumero(Ler())
        
        valor_total = valor_total + valor_item
    Fim Para
    
    Imprimir("Cliente possui cadastro na loja? (Sim/Não)")
    cadastro = ConverterParaMinusculo(Ler()) // Evita problemas com maiúsculas/minúsculas
    
    Se cadastro == "sim" então
        total_com_desconto = valor_total * 0.90 // Aplica 10% de desconto de forma clara
        Imprimir("Cliente cadastrado! Valor com desconto: R$ ", total_com_desconto)
    Senão 
        Imprimir("Cliente não cadastrado. Valor total: R$ ", valor_total)
    Fim Se
Fim

Esses pequenos ajustes de conversão de dados (ConverterParaNumero e ConverterParaMinusculo) são ótimos hábitos que garantem que o seu programa não quebre na hora de fazer contas ou validações de texto.

Espero que possa ter lhe ajudado!