Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: [email protected] IEC037...

57
Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: [email protected] IEC037 Introdução à Programação de Computadores Aula 06 – Operadores Lógicos

Transcript of Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: [email protected] IEC037...

Page 1: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Turma: Matemática

Professor: André Luiz da Costa Carvalho

E-mail: [email protected]

IEC037Introdução à Programação de

ComputadoresAula 06 – Operadores Lógicos

Page 2: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema Inicial

Três jogadores (A, B, C) lançam dados. Ganha aquele que tirar a face com maior número.

Como determinar quem ganhou? Ou se houve empate?

Page 3: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Processo de resolução de problemas algorítmicos

Fim

Início

1

Definir as entradas e as saídas2

Projetar o algoritmo3

Converter o algoritmo em linguagem de programação4

Testar solução5

Decompor

Refinarpasso a passo

Identificar o problema

Page 4: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema Inicial:: Identificar o problema

Existem diversas possibilidades de vitória, empate entre dois jogadores e empate entre os três jogadores a se considerar.

Para não se perder na árvore de decisão, vamos considerar um cenário mais simples, onde os dados lançados pelos jogadores nunca empatam.

Page 5: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema Inicial Simplificado:: Árvore de decisão

J1 > J2

J1 > J3

J1 ganhou

J3 ganhou

J2 > J3

J2 ganhou

J3 ganhou

V F

V F V F

Page 6: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

De volta ao Problema Inicial:: Árvore de decisão parcial

J1 == J2

J3 > J1

Empate J3 ganhou

J2 == J3

J1 > J2

Empate J1 ganhou

J1 == J3

J2 > J1

Empate J2 ganhou

Árvore simplificada

Como saber se houve empate?

V F

F V

F V

F V

V F

V F

Page 7: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

De volta ao Problema Inicial:: Árvore de decisão completa

J1 == J2

J3 > J1

Empate J3 ganhou

J2 == J3

J1 > J2

Empate J1 ganhou

J1 == J3

J2 > J1

Empate J2 ganhou

J1 > J2

J1 > J3

J1 ganhou

J3 ganhou

J2 > J3

J2 ganhou

J3 ganhou

V F

F V

F V

F V

F V F V

V F

V F

F V

Page 8: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

De volta ao Problema Inicial:: Testar Solução

J1 = 1, J2 = 2, J3 = 3J1 = 6, J2 = 5, J3 = 4J1 = 6, J2 = 5, J3 = 5J1 = 5, J2 = 5, J3 = 5J1 = 4, J2 = 5, J3 = 5

J1 == J2

J3 > J1

Empate J3 ganhou

J2 == J3

J1 > J2

Empate J1 ganhou

J1 == J3

J2 > J1

Empate J2 ganhou

J1 > J2

J1 > J3

J1 ganhou

J3 ganhou

J2 > J3

J2 ganhou

J3 ganhou

V F

F V

F V

F V

F V F V

V F

V F

F V

Page 9: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 1

Duas pessoas jogam pedra, papel, tesoura. Como determinar quem ganhou?

Page 10: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Tipos de operadores

Operadores

Aritméticos

Relacionais

Lógicos

Page 11: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Comparando Operadores:: Entrada e saída

Resultado

OperadoraritméticoOperando1 Operando2

número número

número

OperadoresAritméticos

Resultado

OperadorrelacionalOperando1 Operando2

número número

Verdadeiro/falso

OperadoresRelacionais

Resultado

OperadorlógicoOperando1 Operando2

Verdadeiro/falso Verdadeiro/falso

Verdadeiro/falso

OperadoresLógicos

Page 12: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Operadores Lógicos

Operadores lógicos (ou booleanos) são utilizados para a efetuar avaliações entre valores lógicos (Verdadeiro ou Falso).

Operador Operação ExemplosNÃO Negação NÃO (COR == “azul”)

E Conjunção (ladoA == ladoB) E (ladoB == ladoC)

OU Disjunção (ladoA == ladoB) OU (ladoB == ladoC) OU (ladoA == ladoC)

Verifica se triângulo é equilátero.

Verifica se triângulo é isósceles.

Possui um único operando.

Page 13: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Operadores Lógicos:: Tabelas Verdade

Conjunto de todas as possibilidades de resultados de cada operador lógico.

A B (A) E (B)F F FF V FV F FV V V

A B (A) OU (B)F F FF V VV F VV V V

A NÃO (A)F VV F

Page 14: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Precedência entre operadores

Prioridade Operador lógico1 NÃO2 E3 OU

Prioridade Operador1 Parênteses mais internos2 Operadores aritméticos3 Operadores relacionais4 Operadores lógicos

Da esquerda para a direita

Page 15: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Juntando todos os operadores:: Exemplos

Exemplo A2 < 5 E 15/3 == 5

Exemplo BF OU 20 // (18/3) != (21/3) % 4

5

2 < 5 E 5 == 5V

V E V

V

V

6 7

F OU 20 // 6 != 7 % 433

F OU 3 != 3F

F OU FF

Page 16: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 2

Quais valores de X, Y e Z fazem a expressão abaixo ser verdadeira?

A. X = F, Y = V, Z = FB. X = V, Y = V, Z = FC. X = F, Y = F, Z = FD. X = V, Y = V, Z = V

NÃO ( X E Y ) E ( NÃO Y OU Z )

Page 17: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3

Dados três valores X, Y e Z, verifique: Se eles podem ser os comprimentos dos lados de um

triângulo. Caso positivo, se o triângulo é equilátero, isósceles ou

escaleno.

Page 18: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Processo de resolução de problemas algorítmicos

Fim

Início

1

Definir as entradas e as saídas2

Projetar o algoritmo3

Converter o algoritmo em linguagem de programação4

Testar solução5

Decompor

Refinarpasso a passo

Identificar o problema

Page 19: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3:: Identificar o problema

Propriedade básica de um triângulo: O comprimento de cada lado de um triângulo é menor

do que a soma dos comprimento dos demais lados.

Triângulo cujos os lados têm

comprimentos iguais.

Equilátero

Triângulo que tem dois lados

com comprimentos

iguais.

Isósceles

Triângulo que tem os três lados com

comprimentos diferentes.

Escaleno

Page 20: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

X m > 0

Y m > 0

Z m > 0

Saídas mensagem ---“Não é triângulo”,

“Triângulo equilátero”,“Triângulo isósceles”,“Triângulo escaleno”

Page 21: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3:: Árvore de decisão

(X < Y + Z) E (Y < Z + X) E (Z < X + Y)

(X == Y) E (Y == Z)Não é

triângulo

F

Equilátero

V

V F

(X == Y) OU (Y == Z) OU (Z == X)

Isósceles Escaleno

V F

Page 22: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Condições:: Como NÃO montar (1)

(X == Y) resulta em V/F. A comparação == ocorre

entre dois operando aritméticos, mas o resultado de (X==Y) é lógico, não podendo ser comparado com Z.

Compare os valores dois a dois.

Junte os resultados de cada comparação – cujo resultado é V ou F – através de operadores lógicos:

Por que não é assim? Como deveria ser montada?

X == Y == Z

(X == Y) E (Y == Z)

Page 23: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Condições:: Como NÃO montar (2)

Cada comparação gera um valor lógico.

Mas a condição deve resultar em um único valor lógico.

Diversos valores lógicos são consolidados por operadores lógicos (e não por vírgulas).

Compare os valores dois a dois.

Junte os resultados de cada comparação através de operadores lógicos:

Por que não é assim? Como deveria ser montada?

X == Y, Y == Z, Z == X

(X == Y) OU (Y == Z) OU (Z == X)

Page 24: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3:: Solução

V

F

fim

C2

Equilátero

F

V

início

X, Y, Z

Não é triângulo

C1

(X < Y + Z) E (Y < Z + X) E (Z < X + Y)C1

(X == Y) E (Y == Z)C2

(X == Y) OU (Y == Z) OU (Z == X)C3

V

F

Escaleno

C3

Isósceles

Page 25: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 3:: Testar Solução

V

F

fim

C2

Equilátero

F

V

início

X, Y, Z

Não é triângulo

C1

(X < Y + Z) E (Y < Z + X) E (Z < X + Y)C1

(X == Y) E (Y == Z)C2

(X == Y) OU (Y == Z) OU (Z == X)C3

V

F

Escaleno

C3

Isósceles

X = 1, Y = 2, Z = 3X = 4, Y = 4, Z = 4X = 3, Y = 2, Z = 3X = 3, Y = 4, Z = 5

Page 26: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Voltando ao Problema 1

Duas pessoas jogam pedra, papel, tesoura. Como determinar quem ganhou?

Page 27: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Voltando ao Problema 1:: Identificando o problema

Se J1 == J2 Empate

J1 ganha quando: (J1 == Pedra E J2 == Tesoura) OU (J1 == Papel E J2 == Pedra) OU (J1 == Tesoura E J2 == Papel)

J2 ganha caso contrário

Page 28: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Voltando ao Problema 1:: Solução Final

V

F

Empate

fim

Jogador 2 ganhou

C1

Jogador 1 ganhou

V

F

início

Sortear J1, J2

J1 == J2

(J1 == Pedra E J2 == Tesoura) OU(J1 == Papel E J2 == Pedra) OU(J1 == Tesoura E J2 == Papel)

C1

Page 29: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Voltando ao Problema 1:: Testando Solução

V

F

Empate

fim

Jogador 2 ganhou

C1

Jogador 1 ganhou

V

F

início

Sortear J1, J2

J1 == J2

(J1 == Pedra E J2 == Tesoura) OU(J1 == Papel E J2 == Pedra) OU(J1 == Tesoura E J2 == Papel)

C1

J1 J2

Page 30: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 1 pode ficar mais interessante?

Como determinar o vencedor no jogo Pedra, Papel, Tesoura, Lagarto, Spock?

Page 31: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4

Sejam A, B, C três números inteiros quaisquer. Escreva um fluxograma para arrumá-los em ordem

decrescente.

Page 32: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4:: Identificar o problema

São dados três números quaisquer A, B, C. Eles devem ser arrumados em ordem decrescente. Pode-se considerar que a saída seja

N1 ≥ N2 ≥ N3 Agora, o problema se resume a atribuir:

A

BC

N1N2

N3

Page 33: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas A, B, C --- Inteiros, qualquer ordem

Saídas N1, N2, N3 --- Inteiros, ordem decrescente

Page 34: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4:: Árvore de decisão

A > B

C > N1

N1 = AN2 = B

V F

N1 = BN2 = A

V F

N3 = N2N2 = N1N1 = C

C > N2

N3 = N2N2 = C

V F

N3 = C

Page 35: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4:: Solução

V

F

fim

C > N1

N3 = N2N2 = N1N1 = C

N1, N2, N3

V

F

início

A, B, C

N1 = AN2 = B

A > BV

F

N3 = C

C > N2

N3 = N2N2 = C

N1 = BN2 = A

1

1

Page 36: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 4:: Teste

V

F

fim

C > N1

N3 = N2N2 = N1N1 = C

N1, N2, N3

V

F

início

A, B, C

N1 = AN2 = B

A > BV

F

N3 = C

C > N2

N3 = N2N2 = C

N1 = BN2 = A

1

1A = 1, B = 2, C = 3A = 4, B = 4, C = 4A = 1, B = 4, C = 3A = 3, B = 5, C = 5

Page 37: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Estrutura Condicional deSeleção Múltipla

Utilizada em situações onde há necessidade de se testar uma mesma variável (ou expressão) que pode assumir diversos valores.

Executa ações diferentes para valores (casos) diferentes.

início

ler signo

fim

áries?V Ganhará na

loteriaF

touro?

gêmeos?

Não saia de casa hoje!

Sorte no amor

F

F

V

V

tente de novo

Page 38: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 5

A alíquota de imposto de renda é determinada de acordo com a faixa de renda mensal.

Escreva um algoritmo que determine a alíquota de imposto que uma pessoa deve pagar com base na renda mensal informada.

Faixa de renda mensal AlíquotaAté R$ 1.499,15 IsentoDe R$ 1.499,16 até R$ 2.246,75 7,5%De R$ 2.246,76 até R$ 2.995,70 15%De R$ 2.995,71 até R$ 3.743,19 22,5%acima de R$ 3.743,19 27,5%

Page 39: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 5:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas Renda R$ ≥ 0

Saídas Alíquota % ≥ 0

Page 40: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 5:: Solução

início

R

R ≤ 1499,15 V A = 0F

R ≤ 2264,75

R ≤ 2995,70

A = 7,5

A = 15

F

F

V

V

R ≤ 3743,19 A = 22,5F

Vfim

1

1

A

A = 27,5

Page 41: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 6

A partir da renda mensal, como determinar o valor do imposto de renda devido?

Importante: as alíquotas são aplicadas de forma progressiva.

Page 42: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 6:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas Renda R$ ≥ 0

Saídas Imposto R$ ≥ 0

Page 43: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 6:: Projeto do Algoritmo

O que é o cálculo progressivo? Uma pessoa que recebe R$ 1.500 mensais não pagará

imposto de 7,5% sobre os R$ 1.500, mas sim sobre a diferença (1500,00 – 1499,15 = 0,85).

Da mesma maneira, quem recebe R$ 2.500 pagará: 7,5% de (2264,75 – 1499,15) 15% de (2500 – 2264,75)

E assim por diante...

Page 44: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 6:: Projeto do Algoritmo

Para simplificar o desenho do fluxograma, vamos adotar as seguintes convenções:

Faixa de renda mensal ConstanteR$ 1.499,15 V1R$ 2.246,75 V2R$ 2.995,70 V3R$ 3.743,19 V4

Page 45: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 6:: Solução

início

R

R > V1 V

imp = 0,075*(R-V1)

F R > V2

R > V3F

F

V

VR > V4F

V

imp = 0

imp = 0,075*(V2-V1) +

0,15*(R-V3)imp = 0,075*(V2-V1) +

0,15*(V3-V2) +0,225*(R-V4)

imp = 0,075*(V2-V1) +

0,15*(V3-V2) +0,225*(V4-V3)+

0,275*(R-V4)

fim

imp

Page 46: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7

Anos bissextos são definidos da seguinte forma:1. Anos divisíveis por 400 são

bissextos.2. Anos divisíveis por 100, mas não

por 400, não são bissextos.3. Anos divisíveis por 4, mas não

por 100, são bissextos.4. Todos os outros anos não são

anos bissextos. Escreva um fluxograma que

determine se um ano é bissexto ou não.

Page 47: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Definir Entradas e Saídas

Grandeza Unidade de medida Faixa de valores

Entradas

Saídas

Grandeza Unidade de medida Faixa de valores

Entradas Ano ---

Saídas Mensagem --- {bissexto, não bissexto}

Page 48: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Árvore de decisão

ano % 400 == 0

ano % 100 == 0Bissexto

V

Não bissexto

F

V F

ano % 4 == 0

Bissexto Não bissexto

V F

Page 49: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Solução 1

V

F

fim

C2

Não bissexto

V

F

início

ano

Bissexto

C1

ano % 400 == 0C1

ano % 100 == 0C2

ano % 4 == 0C3

V

F

Não bissexto

C3

Bissexto

Page 50: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Teste da Solução 1

V

F

fim

C2

Não bissexto

V

F

início

ano

Bissexto

C1

ano % 400 == 0C1

ano % 100 == 0C2

ano % 4 == 0C3

V

F

Não bissexto

C3

Bissexto

1900, 2000, 2014, 2016, 2100 e 2400

Page 51: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Solução 2

ano % 400 == 0

ano % 100 == 0Bissexto

V

Não bissexto

F

V F

ano % 4 == 0

Bissexto Não bissexto

V F

Bissexto: ano % 400 == 0

(ano % 100 ≠ 0) E (ano % 4 == 0)

OU

Page 52: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Solução 2

fim

Não bissexto

V F

início

ano

Bissexto

C1

(ano % 400 == 0)OU

((ano % 100 ≠ 0) E (ano % 4 == 0))

C1

Page 53: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Problema 7:: Teste da Solução 2

fim

Não bissexto

V F

início

ano

Bissexto

C1

(ano % 400 == 0)OU

((ano % 100 ≠ 0) E (ano % 4 == 0))

C1

1900, 2000, 2014, 2016, 2100 e 2400

Page 54: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Equivalência entre Expressões Booleanas

Na álgebra numérica, existem expressões equivalentes, ou seja, cujo valor é sempre o mesmo:

O mesmo ocorre com expressões booleanas:

𝑥 (𝑦+𝑧)𝑥𝑦+𝑥𝑧

num ≠ 0

NÃO (num == 0)

Page 55: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Equivalência entre Expressões Booleanas

(num ≠ 0) E (num ≠ 6)NÃO (num == 0 OU num == 6)

(num ≥ 0) E (num ≤ 6)(NÃO num < 0) E (NÃO num > 6)NÃO (num < 0 OU num > 6)

(num < 0) OU (num > 6)(NÃO num ≥ 0) E (NÃO num ≤ 6)NÃO (num ≥ 0 OU num ≤ 6)

... -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 ...

... -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 ...

... -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 ...

Page 56: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Referências bibliográficas

Menezes, Nilo Ney Coutinho (2010). Introdução à Programação com Python. Editora Novatec.

Farrer, Harry (2011). Algoritmos Estruturados, 3ª edição. Editora LTC.

Forbellone, A. L. V.; Eberspächer, H. F. (2006) Lógica de Programação, 3ª edição. Pearson.

HETLAND, Magnus Lie (2008). Beginning Python: From Novice to Professional. Springer eBooks, 2ª edição. Disponível em: http://dx.doi.org/10.1007/978-1-4302-0634-7.

Page 57: Turma: Matemática Professor: André Luiz da Costa Carvalho E-mail: andre@icomp.ufam.edu.br IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Dúvidas?