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!