A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Turma: Matemática Professor: André Luiz da Costa Carvalho IEC037 Introdução à Programação de Computadores Aula 06 – Operadores.

Apresentações semelhantes


Apresentação em tema: "Turma: Matemática Professor: André Luiz da Costa Carvalho IEC037 Introdução à Programação de Computadores Aula 06 – Operadores."— Transcrição da apresentação:

1 Turma: Matemática Professor: André Luiz da Costa Carvalho IEC037 Introdução à Programação de Computadores Aula 06 – Operadores Lógicos

2 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?

3 Processo de resolução de problemas algorítmicos Fim Início 1 1 Definir as entradas e as saídas 2 2 Projetar o algoritmo 3 3 Converter o algoritmo em linguagem de programação 4 4 Testar solução 5 5 Decompor Refinar passo a passo Refinar passo a passo Identificar o problema

4 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.

5 Problema Inicial Simplificado :: Árvore de decisão J1 > J2 J1 > J3 J1 ganhou J3 ganhou J2 > J3 J2 ganhou J3 ganhou VF VFVF

6 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? VF FV FV FV VF VF

7 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 VF FV FV FV FVFV VF VF FV

8 De volta ao Problema Inicial :: Testar Solução J1 = 1, J2 = 2, J3 = 3 J1 = 6, J2 = 5, J3 = 4 J1 = 6, J2 = 5, J3 = 5 J1 = 5, J2 = 5, J3 = 5 J1 = 4, J2 = 5, J3 = 5 J1 = 1, J2 = 2, J3 = 3 J1 = 6, J2 = 5, J3 = 4 J1 = 6, J2 = 5, J3 = 5 J1 = 5, J2 = 5, J3 = 5 J1 = 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 VF FV FV FV FVFV VF VF FV

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

10 Tipos de operadores OperadoresAritméticosRelacionaisLógicos

11 Comparando Operadores :: Entrada e saída número Operadores Aritméticos Operadores Aritméticos número Verdadeiro/falso Operadores Relacionais Operadores Relacionais Verdadeiro/falso Operadores Lógicos Operadores Lógicos

12 Operadores Lógicos Operadores lógicos (ou booleanos) são utilizados para a efetuar avaliações entre valores lógicos (Verdadeiro ou Falso). OperadorOperaçãoExemplos NÃONegação NÃO (COR == azul) EConjunção (ladoA == ladoB) E (ladoB == ladoC) OUDisjunçã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.

13 Operadores Lógicos :: Tabelas Verdade Conjunto de todas as possibilidades de resultados de cada operador lógico. AB(A) E (B) FFF FVF VFF VVV AB(A) OU (B) FFF FVV VFV VVV ANÃO (A) FV VF

14 Precedência entre operadores PrioridadeOperador lógico 1NÃO 2E 3OU PrioridadeOperador 1Parênteses mais internos 2Operadores aritméticos 3Operadores relacionais 4Operadores lógicos Da esquerda para a direita

15 Juntando todos os operadores :: Exemplos Exemplo A 2 < 5 E 15/3 == 5 Exemplo B F OU 20 // (18/3) != (21/3) % < 5 E 5 == 5 V V E V VV67 F OU 20 // 6 != 7 % 4 33 F OU 3 != 3 F F OU F F

16 Problema 2 Quais valores de X, Y e Z fazem a expressão abaixo ser verdadeira? A. X = F, Y = V, Z = F B. X = V, Y = V, Z = F C. X = F, Y = F, Z = F D. X = V, Y = V, Z = V NÃO ( X E Y ) E ( NÃO Y OU Z )

17 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.

18 Processo de resolução de problemas algorítmicos Fim Início 1 1 Definir as entradas e as saídas 2 2 Projetar o algoritmo 3 3 Converter o algoritmo em linguagem de programação 4 4 Testar solução 5 5 Decompor Refinar passo a passo Refinar passo a passo Identificar o problema

19 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

20 Problema 3 :: Definir Entradas e Saídas GrandezaUnidade de medidaFaixa de valores Entradas Saídas GrandezaUnidade de medidaFaixa de valores Entradas Xm> 0 Ym Zm Saídasmensagem--- Não é triângulo, Triângulo equilátero, Triângulo isósceles, Triângulo escaleno

21 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óscelesEscaleno V F

22 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)

23 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)

24 Problema 3 :: Solução V V F F fim C2 Equilátero F F V 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 V F F Escaleno C3 Isósceles

25 Problema 3 :: Testar Solução V V F F fim C2 Equilátero F F V 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 V F F Escaleno C3 Isósceles X = 1, Y = 2, Z = 3 X = 4, Y = 4, Z = 4 X = 3, Y = 2, Z = 3 X = 3, Y = 4, Z = 5

26 Voltando ao Problema 1 Duas pessoas jogam pedra, papel, tesoura. Como determinar quem ganhou?

27 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

28 Voltando ao Problema 1 :: Solução Final V V F F Empate fim Jogador 2 ganhou C1 Jogador 1 ganhou V V F 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

29 Voltando ao Problema 1 :: Testando Solução V V F F Empate fim Jogador 2 ganhou C1 Jogador 1 ganhou V V F 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 J1J2

30 Problema 1 pode ficar mais interessante? Como determinar o vencedor no jogo Pedra, Papel, Tesoura, Lagarto, Spock?

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

32 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 B C N1 N2 N3

33 Problema 4 :: Definir Entradas e Saídas GrandezaUnidade de medidaFaixa de valores Entradas Saídas GrandezaUnidade de medidaFaixa de valores EntradasA, B, C--- Inteiros, qualquer ordem SaídasN1, N2, N3--- Inteiros, ordem decrescente

34 Problema 4 :: Árvore de decisão A > B C > N1 N1 = A N2 = B VF N1 = B N2 = A VF N3 = N2 N2 = N1 N1 = C C > N2 N3 = N2 N2 = C VF N3 = C

35 Problema 4 :: Solução V V F F fim C > N1 N3 = N2 N2 = N1 N1 = C N3 = N2 N2 = N1 N1 = C N1, N2, N3 V V F F início A, B, C N1 = A N2 = B N1 = A N2 = B A > B V V F F N3 = C C > N2 N3 = N2 N2 = C N3 = N2 N2 = C N1 = B N2 = A N1 = B N2 = A

36 Problema 4 :: Teste V V F F fim C > N1 N3 = N2 N2 = N1 N1 = C N3 = N2 N2 = N1 N1 = C N1, N2, N3 V V F F início A, B, C N1 = A N2 = B N1 = A N2 = B A > B V V F F N3 = C C > N2 N3 = N2 N2 = C N3 = N2 N2 = C N1 = B N2 = A N1 = B N2 = A A = 1, B = 2, C = 3 A = 4, B = 4, C = 4 A = 1, B = 4, C = 3 A = 3, B = 5, C = 5

37 Estrutura Condicional de Seleçã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 loteria F touro? gêmeos? Não saia de casa hoje! Sorte no amor F F V V tente de novo

38 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 mensalAlíquota Até R$ 1.499,15Isento De R$ 1.499,16 até R$ 2.246,757,5% De R$ 2.246,76 até R$ 2.995,7015% De R$ 2.995,71 até R$ 3.743,1922,5% acima de R$ 3.743,1927,5%

39 Problema 5 :: Definir Entradas e Saídas GrandezaUnidade de medidaFaixa de valores Entradas Saídas GrandezaUnidade de medidaFaixa de valores EntradasRendaR$ 0 SaídasAlíquota% 0

40 Problema 5 :: Solução início R R 1499,15 V A = 0 F R 2264,75 R 2995,70 A = 7,5 A = 15 F F V V R 3743,19 A = 22,5 F V fim A A A = 27,5

41 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.

42 Problema 6 :: Definir Entradas e Saídas GrandezaUnidade de medidaFaixa de valores Entradas Saídas GrandezaUnidade de medidaFaixa de valores EntradasRendaR$ 0 SaídasImpostoR$ 0

43 Problema 6 :: Projeto do Algoritmo O que é o cálculo progressivo? Uma pessoa que recebe R$ 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$ pagará: 7,5% de (2264,75 – 1499,15) 15% de (2500 – 2264,75) E assim por diante...

44 Problema 6 :: Projeto do Algoritmo Para simplificar o desenho do fluxograma, vamos adotar as seguintes convenções: Faixa de renda mensalConstante R$ 1.499,15V1 R$ 2.246,75V2 R$ 2.995,70V3 R$ 3.743,19V4

45 Problema 6 :: Solução início R R > V1 V imp = 0,075*(R-V1) F R > V2 R > V3 F F V V R > V4 F 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

46 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.

47 Problema 7 :: Definir Entradas e Saídas GrandezaUnidade de medidaFaixa de valores Entradas Saídas GrandezaUnidade de medidaFaixa de valores EntradasAno--- SaídasMensagem--- {bissexto, não bissexto}

48 Problema 7 :: Árvore de decisão ano % 400 == 0 ano % 100 == 0 Bissexto V Não bissexto F V F ano % 4 == 0 Bissexto Não bissexto V F

49 Problema 7 :: Solução 1 V V F F fim C2 Não bissexto V V F F início ano Bissexto C1 ano % 400 == 0 C1 ano % 100 == 0 C2 ano % 4 == 0 C3 V V F F Não bissexto C3 Bissexto

50 Problema 7 :: Teste da Solução 1 V V F F fim C2 Não bissexto V V F F início ano Bissexto C1 ano % 400 == 0 C1 ano % 100 == 0 C2 ano % 4 == 0 C3 V V F F Não bissexto C3 Bissexto 1900, 2000, 2014, 2016, 2100 e 2400

51 Problema 7 :: Solução 2 ano % 400 == 0 ano % 100 == 0 Bissexto 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

52 Problema 7 :: Solução 2 fim Não bissexto V V F F início ano Bissexto C1 (ano % 400 == 0) OU ((ano % 100 0) E (ano % 4 == 0)) C1

53 Problema 7 :: Teste da Solução 2 fim Não bissexto V V F 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

54 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)

55 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 6) NÃO (num 6) (num 6) (NÃO num 0) E (NÃO num 6) NÃO (num 0 OU num 6)

56 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:

57 Dúvidas?


Carregar ppt "Turma: Matemática Professor: André Luiz da Costa Carvalho IEC037 Introdução à Programação de Computadores Aula 06 – Operadores."

Apresentações semelhantes


Anúncios Google