Expressões lógicas são compostas por operadores lógicos e/ou relacionais e retornam sempre valores booleanos (verdadeiro ou falso). Exemplo: 5 > 3 retorna verdadeiro.
Comparadores entre dois valores. Exemplos:
== (igual): 5 == 5 → verdadeiro!= (diferente): 5 != 3 → verdadeiro<, >, <=, >=Combinam ou negam expressões lógicas:
and: ambas verdadeirasor: ao menos uma verdadeiranot: inverte o valor lógicoin: pertence a uma coleçãois: compara identidadeOrdem de resolução:
Exemplo: 3 + 2 > 4 and 5 == 5 → 5 > 4 and True → True and True → True
not (5 > 3 and 2 != 3)?
Resposta correta: B) Falso
Resolução:
1. 5 > 3 → verdadeiro
2. 2 != 3 → verdadeiro
3. verdadeiro and verdadeiro → verdadeiro
4. not verdadeiro → falso
5 * 2 == 10 and not (3 > 5 or 4 == 4)?
Resposta correta: B) Falso
Resolução:
1. 5 * 2 → 10
2. 10 == 10 → verdadeiro
3. 3 > 5 → falso
4. 4 == 4 → verdadeiro
5. falso or verdadeiro → verdadeiro
6. not verdadeiro → falso
7. verdadeiro and falso → falso
not (3 in [1, 2, 4]) or (5 is not 5.0), qual é o resultado?
Resposta correta: A) Verdadeiro
Resolução:
1. 3 in [1, 2, 4] → falso
2. not falso → verdadeiro
3. 5 is not 5.0 → verdadeiro (5 inteiro ≠ 5.0 float)
4. verdadeiro or verdadeiro → verdadeiro
(2 ** 3 > 5 and 4 in [1, 2, 3]) or not (7 == 8)
Resposta correta: A) Verdadeiro
Resolução:
1. 2 ** 3 → 8
2. 8 > 5 → verdadeiro
3. 4 in [1, 2, 3] → falso
4. verdadeiro and falso → falso
5. 7 == 8 → falso
6. not falso → verdadeiro
7. falso or verdadeiro → verdadeiro
A nossa disciplina de algoritmos e programação de computadores 1, Cão Nivespe, essa é a nossa quinta vida de aula onde eu vou apresentar para vocês a parte de expressões lógicas e operadores.
Na aula passada, a gente viu expressões eritiméticas e agora a gente vai ver então essa parte de expressões lógicas incluindo relacionais também e operadores também que são usados para criar esse tipo de expressão.
Bom, que são expressão lógicas? São expressões onde os operadores são lógicos ou relacionais e cujos operandos podem ser relações ou variáveis constantes do tipo lógico.
Então, vou me entender um pouquinho isso daí.
Eu tenho alguns operadores relacionais que são esses daqui, o que são operadores relacionais? São operadores que relacionam a duas coisas, podem ser, por exemplo, os números ou duas expressões ou constantes, enfim, vai, você vai comparar uma coisa com outra coisa e o resultado vai ser verdadeiro ou falso.
Então, por exemplo, se eu tenho esse operador aqui, que é o igual igual, isso daqui é o equivalente a verificar, de se alguma coisa é igual a outra coisa.
Então, por exemplo, se eu fizer 2 é igual a 2, isso daqui vai me retornar ver do adeiro.
Se eu fizer, por exemplo, 3 igual a 1, isso daqui vai me retornar falso.
É diferente, pessoal, igual, isso daqui é um outro operador que a gente vai ver mais para frente, que é um operador de atribuição.
Então, não tem nada a ver com o operador relacional para a gente comparar duas coisas vezes duas coisas são iguais, a gente usa o igual igual.
A gente tem também um operador de diferente, exclamação seguida do igual.
Então, por exemplo, 3 é diferente de 1, isso aqui me retorna verdadeiro.
Aí eu tenho os operadores menor, maior, menor ou igual, e maior ou igual.
Então, por exemplo, 3 é maior ou igual a 1, isso daqui me retorna verdadeiro.
3 é maior do que 3, isso daqui vai me retornar falso.
Tá bom? Então, a gente tem esses operadores relacionais são operadores que relacionam uma coisa com outra, e isso faz parte da expressão large, então quer dizer o resultado, dessa expressão vai ser um resultado lógico.
Quando a gente diz alguma coisa lógica, a gente pensa sempre em verdadeiro ou falso.
Tudo bem? Bom, olha só alguns exemplos.
Então, o 5 é igual a 5, isso daqui me retorna verdadeiro, que é true.
Olha só esse caso aqui.
Eu tenho uma expressão aritmética desse lado, e eu tenho um número desse outro lado.
A gente vai ver daqui a pouco que existe uma precedência entre os tipos diferentes de expressão.
Então, por exemplo, a expressão aritmética, tá? Isso aqui é uma expressão aritmética.
Isso tudo aqui é uma expressão lógica.
A gente vai ver que as expressões aritméticas têm precedência sobre as lógicas.
Então, o que vai acontecer? Primeiro, você vai resolver a expressão aritmética.
Então, isso aqui vai te dar 3, maior ou igual a 3, e aí depois você resolve a expressão lógica, né? Que 3 é maior ou igual a 3 é melhor ver que me retorna, então, true.
Olha esse outro exemplo.
Eu tenho 13 módulo de 10, quer dizer lembra desse superadura aqui aritmético? Dá uma olhada na aula passada.
Isso daqui é o resto da divisão.
Então, 13, o resto da divisão de 13 por 10 é 3.
Então, você vai resolver primeiro essa expressão aritmética, vai ser 3, é diferente de 3.
Não, é igual.
Então, te retorna falso.
Está aqui.
Tudo bem? Bom, aí a gente tem alguns operadores lógicos que também fazem parte das expressões lógicas.
Então, eu tenho que fazer os operadores end, not e or.
Então, o end é o e, né? Se alguma coisa é verdadeira e outra coisa é verdadeiro, o resultado é verdadeiro.
Se uma coisa é falsa e outra coisa é verdadeiro, o resultado é falso.
Se uma coisa é verdadeira e outra coisa é falsa, o resultado é falso e falso e falso, o resultado é falso.
Então, esse e, que está aqui, é o equivalente a consciência de, no caso do norte, o que é verdadeiro vira falso e o que é falso vira verdadeiro.
Está aqui, né? E, no caso do or, que só o or, ele funciona assim, né? Se uma coisa é verdadeira ou verdadeiro, o resultado é verdadeiro, falso ou verdadeiro, o resultado é verdadeiro, o falso é verdadeiro e falso ou falso, o resultado é falso.
Tá? Bom, mas aí como que a gente usa isso nas expressões lógicas? Eu tenho aqui, ó, eu tenho um exemplo onde eu tenho inicialmente uma expressão relacional, aqui eu tenho uma expressão aritmética e eu tenho tudo isso aqui com uma outra expressão relacional e aí por fim tudo isso é uma expressão lógica.
Então, existe também, pessoal, uma precedência entre os tipos de expressões.
Então, nesse caso, a expressão aritmética é resolvida inicialmente, então, é o equivalente, eu vou copiar aqui, ó, um maior do que três, ou quatro, né? Resovir uma e três, maior do que dois.
Depois disso, a gente faz a resolução das expressões relacionais, que é isso, que é falso e depois isso, que é verdadeiro.
Agora, eu tenho, então, um falso ou verdadeiro, olhando aqui pela tabelinha, um falso ou verdadeiro, o resultado é verdadeiro.
Tá exatamente aqui, ó, tudo bem? Aí é a mesma coisa, então, né, para a linha de baixo, eu vou resolver isso inicialmente, um maior que três é falso e isso daqui, que vai me retornar verdadeiro.
Então, é falso e verdadeiro, o resultado é falso, segundo essa tabela que tá aqui do end do e.
E aí, essa outra que tá aqui, eu tenho um maior do que três é falso, quatro maior do que dois é verdadeiro, só que eu tenho esse note, esse note, ele vai alterar esse falso que tá aqui, que vai virar verdadeiro.
Então, eu tenho um verdadeiro e um outro verdadeiro que veio daqui, o resultado, então, é um verdadeiro.
Outros operadores, eu tenho o pertence ou não pertence, isso daqui vai ficar depois mais claro, na hora que a gente aprender listas e tuplas, você vai verificar se é um determinado elemento, ele está contido ou não numa conjunto, tá? Então, nesse caso, aqui eu tenho que o quatro, ele está no conjunto da lista de cinco, seis, quatro e um, ele está, então, o resultado é verdadeiro, tá? O cinco, ele não está nesse outro conjunto de um, dois, três, quatro, cinco, ele está contido, então, o resultado é um falso.
Tudo bem? Bom, outros operadores, a gente tem o identidade, que é o is e o note is.
Isso daqui, pessoal, a gente usa para verificar se é um determinado elemento, ele é de um determinado tipo.
Então, o quatro, ele é um, uma, na verdade, ele não é um, quatro não é um, um é verdadeiro, quatro não é um, quatro, tá? Então, o resultado é verdadeiro.
O cinco, ele é um inteiro de cinco, quer dizer, aqui é interessante, pessoal, porque esse cinco, ele está seguido do ponto zero, então, na verdade, o parto interpreta isso como um florte de cinco, tá? E então, um florte de cinco é diferente de um ínti de cinco, tá? Ele vai interpretar isso como um cinco ponto zero, é diferente de um cinco inteiro, tá? Então, por isso que ele te retornou falso.
Bom, e aí, a gente tem as precedências, tá, entre os operadores lógicos, né, que é onde o note ele tem precedência sobre o or, que também tem precedência sobre o Andy, tá? E entre todos os operadores, que são as expressões, né, tipos de expressões, a gente tem que os parênteses mais internos têm precedência sobre os operadores aritméticos, que, por sua vez, têm precedência sobre os operadores relacionais, que têm precedência sobre os operadores lógicos.
Então, aqui eu tenho os parênteses, aqui eu tenho os operadores aritméticos com mais, menos vezes potência, etc.
Os operadores relacionais, que é o igual, o diferente, um menor, o maior, que é assim por diante, e os lógicos que são o note, o or, o Andy, o Is e o In, tá? E aí, nisso tudo eu organizei, né, todos esses operadores numa tabela como essa, que vocês podem utilizar como referência na hora de resolver as expressões lógicas.
Então, reparem que a maior precedência é o operador aritmético de potência, e aí você vai, aqui também você tem a precedência na horizontal, né, da esquerda para a direita.
Então, você segue depois os operadores aritméticos, depois eu tenho os operadores relacionais, depois eu tenho essa outra linha aqui, a de atribuição, que a gente ainda não viu, a gente vai ver mais para frente, e depois a gente tem aqui os operadores lógicos.
Então, olha aqui um exemplo, né, ó, eu tenho três potências de dois, então você vai fazer três vezes três nove, aí vezes dois vai te dar o valor de 18.
O cinco menor ou igual a seis é verdadeiro, e o sete é diferente de oito verdadeiro, então verdadeiro e verdadeiro te retorna, true que é verdadeiro.
Nesse outro caso, aqui eu tenho nove maior do que cinco, que é verdadeiro, aí o que eu tenho aqui, ó, eu tenho o três, ele é um íntide de três, então esse três aqui está seguido do ponto zero, então ele é um florte, então ele não é um inteiro, então isso aqui te retornaria falso, mas eu tenho um norte aqui que está alterando de falso para verdadeiro, então na verdade isso aqui vai ser verdadeiro, então eu tenho um verdadeiro e um verdadeiro te retorna um verdadeiro.
E esse último aqui eu tenho sete vezes dois, 14 mais cinco, 19, é maior do que três vezes dez, 30, não, então o resultado é falso.
Está certo? Muito bem, então essa daí foi a nossa vídeo aula sobre expressões lógicas e operadores, então a gente termina aqui essa mais essa vídeo aula, e aí a gente se encontra então numa próxima.
Obrigado e até lá.