{
Escreva("Digite sua idade:");
Leia(idade);
Escreva("Eh estudante? - false para nao e true para sim");
Leia(eh_estudante);
Se(idade < 18 OU eh_estudante == true)
{
Escreva("Meia-entrada liberada");
}
Se-nao
{
Escreva("Valor integral");
}
}
{
Escreva("Digite sua idade:");
Leia(idade);
Escreva("Eh estudante? - false para nao e true para sim");
Leia(eh_estudante);
Se(idade < 18 OU eh_estudante == true)
{
Escreva("Meia-entrada liberada");
}
Se-nao
{
Escreva("Valor integral");
}
}
Olá, João Pedro! Como vai?
Parabéns por concluir mais esse desafio! O seu algoritmo ficou excelente e a escolha de utilizar tipos booleanos (true ou false) para a variável eh_estudante mostra que você já está pensando como um desenvolvedor de verdade. É exatamente assim que os sistemas reais validam esse tipo de informação.
A sua lógica central utilizando o operador OU está impecável. No entanto, se fôssemos compilar ou rodar esse pseudocódigo em uma máquina, encontraríamos dois pequenos detalhes de sintaxe que fariam o computador dar erro.
Vamos analisar quais são para deixar o seu código 100% polido:
Na estrutura de decisão, você escreveu Se-nao. Para os computadores, o hífen funciona como um operador de subtração. Portanto, a máquina tentaria subtrair a palavra "nao" de "Se", o que geraria um erro de compilação.
Senão.Na linha do teste lógico, você escreveu: eh_estudante == true.
Isso não está errado e vai rodar, mas na programação é considerado uma redundância. Como a variável eh_estudante já guarda o valor true ou false, você não precisa perguntar se "verdadeiro é igual a verdadeiro". O computador já entende o valor dela diretamente.
Se(idade < 18 OU eh_estudante)Aplicando esses ajustes, veja como o seu pseudocódigo fica mais limpo e pronto para o mercado:
{
Escreva("Digite sua idade:");
Leia(idade);
Escreva("Eh estudante? - false para nao e true para sim");
Leia(eh_estudante);
// OTIMIZAÇÃO: Removemos o '== true' pois a variável booleana já se autoavalia
Se (idade < 18 OU eh_estudante)
{
Escreva("Meia-entrada liberada");
}
// CORREÇÃO: Removido o hífen para evitar erro de sintaxe
Senão
{
Escreva("Valor integral");
}
}
OU Funciona AquiPara ajudar os colegas do fórum que estão estudando lógica junto com você, vale lembrar que o operador OU só precisa que uma das condições seja verdadeira para liberar o desconto.
Olha como o computador avalia os cenários na memória:
false $\rightarrow$ Menor que 18? Sim. É estudante? Não. Como um deles é Sim $\rightarrow$ Meia-entrada!true $\rightarrow$ Menor que 18? Não. É estudante? Sim. Como um deles é Sim $\rightarrow$ Meia-entrada!false $\rightarrow$ Menor que 18? Não. É estudante? Não. Ambos são Não $\rightarrow$ Valor integral.Parabéns pelo progresso constante, João Pedro! Você está pegando a base da lógica de programação muito rápido. Continue firme nos exercícios!
Espero que possa ter lhe ajudado!