INÍCIO
estudante = FALSE
LER idade
LER estudante
SE idade <18 E estudante = TRUE ENTÃO
EXIBIR "Você tem direito à meia entrada"
FIM
Poderia ser dessa forma?
INÍCIO
estudante = FALSE
LER idade
LER estudante
SE idade <18 E estudante = TRUE ENTÃO
EXIBIR "Você tem direito à meia entrada"
FIM
Poderia ser dessa forma?
Oii Anderson,
Sua estrutura de algoritmo está muito bem organizada, com início, declaração de variáveis e leitura de dados. Você compreendeu bem como capturar as informações.
Mas, há um detalhe fundamental na lógica de decisão (o SE) que muda completamente o resultado do sistema.
O desafio propõe duas situações distintas para o desconto:
No seu código, você utilizou o operador E:SE idade <18 E estudante = TRUE
Por que isso precisa de ajuste?
Ao usar o E, você obriga que a pessoa atenda às duas condições ao mesmo tempo. Ou seja, no seu algoritmo, um universitário de 25 anos não ganharia desconto, pois embora ele seja estudante, ele não tem menos de 18 anos.
Para corrigir e atender a qualquer um dos dois casos, devemos usar o operador OU:
INÍCIO
LER idade
LER estudante
SE idade < 18 OU estudante = TRUE ENTÃO
EXIBIR "Você tem direito à meia entrada"
SENÃO
EXIBIR "Valor integral"
FIM SE
FIM
Note que adicionei também o bloco SENÃO. Em algoritmos de verificação, é sempre importante dizer o que acontece caso a condição não seja atendida (neste caso, pagar o valor cheio).
Essa diferença entre E e OU é o coração da lógica booleana. Continue praticando esses operadores.
Agradeço a orientação e suporte. Extremamente válidos!