Álgebra Booleana - Unicamp

Post on 28-Jul-2022

18 views 0 download

Transcript of Álgebra Booleana - Unicamp

1

Álgebra BooleanaProf. Celso A. W. Santos

J701 :: Lógica de Programação e Algoritmos

celso.santos@docente.unip.br

25/08/2020

2

O que já vimos até agora?

� O que é um algoritmo? Pra que eles servem? Pra que computadoresservem?

� O que são variáveis?

� Quais são os tipos de dados mais usados?

� Como identificamos variáveis em memória?

� Como estruturamos os nossos algoritmos?

2

O que já vimos até agora?

� O que é um algoritmo? Pra que eles servem? Pra que computadoresservem?

� O que são variáveis?

� Quais são os tipos de dados mais usados?

� Como identificamos variáveis em memória?

� Como estruturamos os nossos algoritmos?

2

O que já vimos até agora?

� O que é um algoritmo? Pra que eles servem? Pra que computadoresservem?

� O que são variáveis?

� Quais são os tipos de dados mais usados?

� Como identificamos variáveis em memória?

� Como estruturamos os nossos algoritmos?

2

O que já vimos até agora?

� O que é um algoritmo? Pra que eles servem? Pra que computadoresservem?

� O que são variáveis?

� Quais são os tipos de dados mais usados?

� Como identificamos variáveis em memória?

� Como estruturamos os nossos algoritmos?

2

O que já vimos até agora?

� O que é um algoritmo? Pra que eles servem? Pra que computadoresservem?

� O que são variáveis?

� Quais são os tipos de dados mais usados?

� Como identificamos variáveis em memória?

� Como estruturamos os nossos algoritmos?

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início x, y, z

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início x, y, z

resultado← x + y + z

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início x, y, z

resultado← x + y + z

resultado

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início x, y, z

resultado← x + y + z

resultado Fim

3

Exemplo da soma

� Problema: Descreva um algoritmo para somar três números.

Início x, y, z

resultado← x + y + z

resultado Fim

E se pudéssemosusar apenas

duas variáveis?

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b

ba

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b a← a + b

ba

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b a← a + b

, ab, a

ba

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b a← a + b

, ab, aa← a + b

ba

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b a← a + b

, ab, aa← a + ba

ba

4

Resolvendo o Ex. #1!

� Problema: Some três números usando apenas duas variáveis.

Início a, b a← a + b

, ab, aa← a + ba

Fim

ba

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

5

Formalizando: Estrutura Sequencial

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, ba← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

6

Entrada e Saída

� As informações de entrada do usuário serão armazenadas emvariáveis.

� Conforme vimos, variáveis possuem um nome e um tipo de dadoespecífico!

De agora em diante, todas as declarações de variáveis e operaçõesde entrada devem vir acompanhadas do tipo de dado!

� Nosso objetivo não é fazer códigos/programas/algoritmos ultraabrangentes, ou lidar com todos os tipos de dados possíveis deentrada, ou qualquer coisa do tipo. Nosso objetivo (nesta disciplina)é lidar com problemas computacionais específicos!

� O algoritmo é considerado correto quando ele dá uma respostacorreta para uma entrada correta!

. Se a entrada foi errada, a culpa é do usuário, não do programador!

7

Agora com tipos de dados...

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, b

a← input do usuáriob← input do usuárioa← a + bb← input do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

7

Agora com tipos de dados...

� Em pseudocódigo:

Entrada: Três números x, y e zSaída: O valor x + y + z

Declara variáveis a, b (inteiras)a← input (int) do usuáriob← input (int) do usuárioa← a + bb← input (int) do usuárioa← a + bimprime a

Os nomes e funcionalidades dasvariáveis são “independentes”da entrada do programa!

Todo algoritmo segue amesma estrutura sequencial:(i) início;(ii) declaração de variáveis;(iii) processamento; e(iv) fim.

8

Alterando o Fluxo

� E se quisermos alterar o fluxo sequencial de um algoritmo?

Início NP1, NP2

NS = 3×NP 1+4×NP 27

NS ≥ 7.0?

“Aprovado :)”

sim

Fim

EX

nãoNF = NS+EX

2

NF ≥ 5.0?sim

“Reprovado D:”

não

8

Alterando o Fluxo

� E se quisermos alterar o fluxo sequencial de um algoritmo?

Início NP1, NP2

NS = 3×NP 1+4×NP 27

NS ≥ 7.0?

“Aprovado :)”

sim

Fim

EX

nãoNF = NS+EX

2

NF ≥ 5.0?sim

“Reprovado D:”

não

8

Alterando o Fluxo

� E se quisermos alterar o fluxo sequencial de um algoritmo?

Início NP1, NP2

NS = 3×NP 1+4×NP 27

NS ≥ 7.0?

“Aprovado :)”

sim

Fim

EX

nãoNF = NS+EX

2

NF ≥ 5.0?sim

“Reprovado D:”

não

Depende doresultado de umaoperação lógica!

9

Valores Booleanos

10

Um pouquinho de história...

� Como formalizar matematicamente “lógica dedutiva”?

George Boole (1815 – 1864)� Definiu a álgebra booleana: uma área da matemática que lida com

operações lógicas em valores binários.

� Imprescindível em linguagens de programação modernas, porque sótratamos com informações binárias!

10

Um pouquinho de história...

� Como formalizar matematicamente “lógica dedutiva”?

George Boole (1815 – 1864)� Definiu a álgebra booleana: uma área da matemática que lida com

operações lógicas em valores binários.

� Imprescindível em linguagens de programação modernas, porque sótratamos com informações binárias!

10

Um pouquinho de história...

� Como formalizar matematicamente “lógica dedutiva”?

George Boole (1815 – 1864)� Definiu a álgebra booleana: uma área da matemática que lida com

operações lógicas em valores binários.

� Imprescindível em linguagens de programação modernas, porque sótratamos com informações binárias!

10

Um pouquinho de história...

� Como formalizar matematicamente “lógica dedutiva”?

George Boole (1815 – 1864)� Definiu a álgebra booleana: uma área da matemática que lida com

operações lógicas em valores binários.

� Imprescindível em linguagens de programação modernas, porque sótratamos com informações binárias!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.”

. “Alguns números negativos são inteiros.”

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.”

. “Alguns números negativos são inteiros.”

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.”

. “Alguns números negativos são inteiros.”

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.”

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.”

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.”

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.”

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.” ???

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.” ???

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.” ???

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

11

O Tipo de Dado Booleano

� Dados Lógicos: valores booleanos True e False.

� Esses valores são associados a proposições (não necessariamentematemáticas!)

. “Todos os números são inteiros.” =⇒ False

. “Alguns números negativos são inteiros.” =⇒ True

. “Todo quadrado é um retângulo.” =⇒ True

. “O número 10 é maior que o número 20.” =⇒ False

. “Eu tenho 187cm de altura.”

. “Hoje vai chover.”

. “O valor na variável x é maior que o valor da variável y.”

� Dependendo da pessoa, do dia, ou dos valores das variáveis x e y, ovalor booleano das expressões pode mudar!

� A chave é que o valor booleano dessas expressões pode ser testado!

� Podemos controlar o fluxo de execução de um algoritmo dependendodo valor de expressões!

12

Controle de Fluxo :: Exemplo #1

8. Desenhe um fluxograma que mostra o resultado da divisão dedois números. Lembre-se: não é possível dividir por zero.

Início

n1, n2 n2 = 0?

“Não é possíveldividir por zero!”

d← n1/n2 d

Fim

12

Controle de Fluxo :: Exemplo #1

8. Desenhe um fluxograma que mostra o resultado da divisão dedois números. Lembre-se: não é possível dividir por zero.

Início

n1, n2 n2 = 0?

“Não é possíveldividir por zero!”

d← n1/n2 d

Fim

sim

não

12

Controle de Fluxo :: Exemplo #1

8. Desenhe um fluxograma que mostra o resultado da divisão dedois números. Lembre-se: não é possível dividir por zero.

Início

n1, n2 n2 = 0?

“Não é possíveldividir por zero!”

d← n1/n2 d

Fim

True

False

13

Operadores e Resultados Booleanos

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20?. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10?. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4?. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4? =⇒ True. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4? =⇒ True. É verdade que n1 = 0?. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4? =⇒ True. É verdade que n1 = 0? Depende do que estiver em n1!. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4? =⇒ True. É verdade que n1 = 0? Depende do que estiver em n1!. É verdade que ’10’ > ’4’?

14

Resultados Booleanos: Comparações

� As principais operações matemáticas que retornam dados Booleanossão comparações lógicas.

. Maior ou igual (≥)

. Maior (>)

. Menor ou igual (≤)

. Menor (<)

. Igualdade (=)

. Desigualdade (6=)

� Exemplos didáticos:. É verdade que 10 > 20? =⇒ False. É verdade que 10 ≥ 10? =⇒ True. É verdade que 10 > 4? =⇒ True. É verdade que n1 = 0? Depende do que estiver em n1!. É verdade que ’10’ > ’4’? =⇒ False

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4}. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4} =⇒ True. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4} =⇒ True. {1, 3} ⊂ números ímpares?. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4} =⇒ True. {1, 3} ⊂ números ímpares? =⇒ True. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4} =⇒ True. {1, 3} ⊂ números ímpares? =⇒ True. números primos ⊃ números ímpares?

15

Resultados Booleanos: Comparações

� Existem outras operações!. Pertencimento (∈, in). Não pertencimento (6∈). Existência (∃). Não existência ( 6 ∃). Subconjunto (⊂). Superconjunto (⊃)

� Exemplos (não tão) didáticos:. ’na’ in ’banana’ =⇒ True. ’bat’ in ’superman’ =⇒ False. 3 ∈ {1, 2, 3, 4} =⇒ True. {1, 3} ⊂ números ímpares? =⇒ True. números primos ⊃ números ímpares? =⇒ False

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

16

Operadores Booleanos

� Vamos olhar um pouco mais afundo na comparação “maior ou igual”.� Por que 10 ≥ 10 é True?� Porque, na verdade, estamos fazendo dois testes ao mesmo tempo:

1 Estamos perguntando se 10 é MAIOR do que 10...2 ... ou se 10 é IGUAL a 10

� A expressão 10 ≥ 10 é verdadeira porque a segunda afirmação éverdadeira, mesmo a primeira sendo falsa.

� George Boole formalizou um conjunto de operações lógicas quepodem ser realizadas sobre expressões (valores) Booleanos:

. Disjunção, o “ou” lógico

. Conjunção, o “e” lógico

. Negação, o “não” lógico

� Vamos olhar cada uma dessas separadamente...

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

17

Disjunção :: Operadores Booleanos

� A operação lógica da disjunção é denotada pelo operador ∨.

� Dadas duas expressões lógicas P e Q, a disjunção P ∨Q é Truequando pelo menos uma das expressões P ou Q é True.

� Exemplos:. P : O número x é maior que 10.

Q: O número x é igual a 10.P ∨Q: O número x é maior OU igual a 10.

. P : O aluno z joga futebol.Q: O aluno z joga handebol.P ∨Q: O aluno z joga futebol OU ele joga handebol.

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

18

Conjunção :: Operadores Booleanos

� A operação lógica da conjunção é denotada pelo operador ∧.

� Dadas duas expressões lógicas P e Q, a conjunção P ∧Q é Truequando P e Q são True simultaneamente.

� Exemplos:. P : O número x é primo.

Q: O número x é par.P ∧Q: O número x é primo E ele é par.

. P : O login inserido pelo usuário é “celso”Q: A senha inserida pelo usuário é “paprica1234”P ∧Q: O login é “celso” E a senha é “paprica1234”

19

Negação :: Operadores Booleanos

� A operação lógica da negação é denotada pelo operador ¬.� Dadas uma expressões lógica P , a negação de P é denotada por¬P . Isto é, se P é True, então ¬P é False (e vice-versa).

� Exemplos:. P : O número x é igual a 20.¬P : O número x NÃO é igual a 20.

. P : O usuário k é um administrador.¬P : O usuário k NÃO é um administrador.

. P : ’na’ pertence à ’banana’¬P : ’na’ NÃO pertence à ’banana’

19

Negação :: Operadores Booleanos

� A operação lógica da negação é denotada pelo operador ¬.� Dadas uma expressões lógica P , a negação de P é denotada por¬P . Isto é, se P é True, então ¬P é False (e vice-versa).

� Exemplos:. P : O número x é igual a 20.¬P : O número x NÃO é igual a 20.

. P : O usuário k é um administrador.¬P : O usuário k NÃO é um administrador.

. P : ’na’ pertence à ’banana’¬P : ’na’ NÃO pertence à ’banana’

19

Negação :: Operadores Booleanos

� A operação lógica da negação é denotada pelo operador ¬.� Dadas uma expressões lógica P , a negação de P é denotada por¬P . Isto é, se P é True, então ¬P é False (e vice-versa).

� Exemplos:. P : O número x é igual a 20.¬P : O número x NÃO é igual a 20.

. P : O usuário k é um administrador.¬P : O usuário k NÃO é um administrador.

. P : ’na’ pertence à ’banana’¬P : ’na’ NÃO pertence à ’banana’

20

Tabelas Verdade

� A melhor forma de visualizar as operações lógicas e os seusresultados é utilizando Tabelas Verdade

P Q P ∨QF F FF T TT F TT T T

Disjunção

P Q P ∧QF F FF T FT F FT T T

Conjunção

P ¬PF TT FNegação

20

Tabelas Verdade

� A melhor forma de visualizar as operações lógicas e os seusresultados é utilizando Tabelas Verdade

P Q P ∨QF F FF T TT F TT T T

Disjunção

P Q P ∧QF F FF T FT F FT T T

Conjunção

P ¬PF TT FNegação

20

Tabelas Verdade

� A melhor forma de visualizar as operações lógicas e os seusresultados é utilizando Tabelas Verdade

P Q P ∨QF F FF T TT F TT T T

Disjunção

P Q P ∧QF F FF T FT F FT T T

Conjunção

P ¬PF TT FNegação

20

Tabelas Verdade

� A melhor forma de visualizar as operações lógicas e os seusresultados é utilizando Tabelas Verdade

P Q P ∨QF F FF T TT F TT T T

Disjunção

P Q P ∧QF F FF T FT F FT T T

Conjunção

P ¬PF TT FNegação

21

Controlando Fluxo de Algoritmos

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

22

Controlando o fluxo

� Ideia principal: utilizar expressões lógicas para controlar o fluxo deexecução de um algoritmo.

� Exemplos (pequenos) de aplicações:. Divisão por 0!. Movimentação do jogador!

� Exemplos (grandes) de aplicações:. Login/senha!

“Se o login inserido for correto E a senha inserida for correta, entãoo usuário tem acesso ao site.”“Caso contrário, mostre uma tela de login.”

. Acesso privilegiado!“Se o usuário NÃO tem permissão para realizar a operação, nãopermita-o e mostre um aviso.”“Caso contrário, realize a operação.”

23

Dúvidas?