1
resposta

Verificação de desconto [Exercício]

  1. Perguntar tipo de ingresso (inteiro, meia para estudante e meia por idade).
  2. Meia por idade - Pedir documentação RG (de cada um dos ingressos com esse requisito).
  3. Meia de estudante - Identificação por carteirinha (O mesmo processo para cada compra).
  4. Comparar a idade, se idade < 18 == Tem direito a meia, então avançar para sexta etapa.
  5. Se idade >18 ou estudante == false, exibir 'corrigir ou informar documento correto'
  6. Questionar se quer alterar os pedidos.
  7. Perguntar a forma de pagamento.
  8. Imprimir ingressos.
  9. Finalizar compra.
1 resposta

Olá, Nathã. Como vai?

Seu algoritmo para o desafio de verificação de desconto ficou muito bem estruturado e cobre cenários reais super importantes, como a validação de documentos e o tratamento de erros caso o usuário não comprove o direito ao benefício. É exatamente esse mapeamento de cenários que faz um bom desenvolvedor!

Para elevar ainda mais a qualidade da sua lógica e garantir que o seu algoritmo cubra todas as regras de negócio sem deixar "pontas soltas", quero propor algumas melhorias e complementos práticos:

1. Ajuste na Condição de Idade (Etapa 4)
Na sua quarta etapa, você definiu: se idade < 18 == Tem direito a meia.
Ficou ótimo, mas vale a pena lembrar da regra que você mesmo citou no início: a "meia por idade" geralmente também engloba idosos (como pessoas acima de 60 anos).

  • Sugestão técnica: Para deixar seu algoritmo mais robusto, a condição lógica poderia validar as duas pontas da idade. Em lógica de programação, usaríamos o operador OU para isso: Se idade < 18 OU idade >= 60 == Tem direito a meia.

2. Refinamento da Mensagem de Erro (Etapa 5)
Na etapa 5, você colocou: Se idade > 18 ou estudante == false, exibir 'corrigir ou informar documento correto'.
Aqui, precisamos ter um cuidado com a lógica: se uma pessoa tiver 25 anos (idade > 18) e for estudante (estudante == true), ela ainda assim cairia no seu erro se a condição não estiver bem amarrada.

  • Sugestão técnica: O ideal é que o algoritmo verifique se a pessoa escolheu o ingresso "Meia por Idade" e falhou na idade, OU se escolheu "Meia Estudante" e não apresentou a carteirinha. O fluxo corrigido ficaria mais ou menos assim em pseudocódigo:
Se tipo_ingresso == "meia por idade" E (idade >= 18 E idade < 60):
    Exibir "Documento inválido para meia por idade"
    Ir para a etapa de alteração do pedido
Se tipo_ingresso == "meia estudante" E carteirinha_valida == false:
    Exibir "Carteirinha de estudante inválida"
    Ir para a etapa de alteração do pedido

3. O loop de repetição (Laço de Repetição)
Na etapa 6, você perguntou brilhantemente se o usuário quer alterar o pedido. Caso ele queira alterar (ou corrigir o documento), o seu algoritmo precisa "voltar" para as etapas anteriores. Essa ação de voltar e repetir um bloco de instruções é o que chamamos na programação de Loop ou Laço de Repetição (como o enquanto / while). Garantir que o usuário fique preso nesse ciclo até digitar os dados corretos ou desistir da compra evita que ingressos errados sejam emitidos.

Seu raciocínio lógico está excelente e demonstra que você já está pensando como um verdadeiro programador, antecipando os erros que o usuário pode cometer no sistema. Parabéns pela dedicação no desafio!

Espero que possa ter lhe ajudado!