turma: matemática professor: andré luiz da costa carvalho e-mail: [email protected] iec037...
TRANSCRIPT
![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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/34.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/37.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/45.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/46.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/47.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/48.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/49.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/50.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/51.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/52.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/53.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/54.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/55.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/56.jpg)
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](https://reader031.vdocuments.pub/reader031/viewer/2022020122/552fc131497959413d8d5e54/html5/thumbnails/57.jpg)
Dúvidas?