Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio: Verificação de desconto

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?

2 respostas
solução!

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:

  1. Ter menos de 18 anos.
  2. OU ser estudante.

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.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Agradeço a orientação e suporte. Extremamente válidos!