mc-102—aula04 expressõesrelacionais,lógicasecomandos …bit/mc102/aulas/aula04.pdf · mc-102...

40
MC-102 — Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Prof. Luiz F. Bittencourt Turmas QRST Instituto de Computação – Unicamp 2018 Conteúdo adaptado de slides fornecidos pelo Prof. Eduardo Xavier.

Upload: trancong

Post on 10-Nov-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

MC-102 — Aula 04Expressões Relacionais, Lógicas e Comandos

Condicionais

Prof. Luiz F. BittencourtTurmas QRST

Instituto de Computação – Unicamp

2018

Conteúdo adaptado de slides fornecidos pelo Prof. Eduardo Xavier.

Page 2: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Roteiro

1 Expressões relacionais

2 Expressões lógicas

3 Comandos condicionais

4 Exercícios

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 2 / 40

Page 3: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Por que aprender a programar?

http://www.michaeleisen.org/blog/?p=358Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 3 / 40

Page 4: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

O Tipo bool

Em python o tipo bool especifica os valores booleanos falso (False) everdadeiro (True).

Podemos criar variáveis associadas a booleanos mas o uso mais comumé na verificação de resultados de expressões relacionais e lógicas.>>> a = True>>> type(a)<class ’bool’>

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 4 / 40

Page 5: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressão

Já vimos que constantes e variáveis são expressões.

Exemplo

a = 10a = b

Vimos que operações aritméticas também são expressões.

Exemplo

a = 2 + 2a = 10 / 3a = a + 1

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 5 / 40

Page 6: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões relacionais

Expressões relacionais são aquelas que realizam uma comparação entreduas expressões e retornam

1 False, se o resultado é falso2 True, se o resultado é verdadeiro.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 6 / 40

Page 7: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Operadores Relacionais

Os operadores relacionais da linguagem Python são:== : igualdade.! = : diferente.> : maior que.< : menor que.>= : maior ou igual que.<= : menor ou igual que.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 7 / 40

Page 8: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões relacionais

expressão == expressão : Retorna verdadeiro quando as expressõesforem iguais.>>> 9 == 9True>>> 9 == 10False>>>

expressão != expressão : Retorna verdadeiro quando as expressõesforem diferentes.>>> 9 != 9False>>> 9 != 10True>>>

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 8 / 40

Page 9: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões relacionais

expressão > expressão : Retorna verdadeiro quando a expressão daesquerda tiver valor maior que a expressão da direita.>>> 9 > 5True

expressão < expressão : Retorna verdadeiro quando a expressão daesquerda tiver valor menor que a expressão da direita.>>> 9 < 5False>>>

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 9 / 40

Page 10: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões relacionais

expressão >= expressão : Retorna verdadeiro quando a expressão daesquerda tiver valor maior ou igual que a expressão da direita.>>> 9 >= 5True>>>

expressão <= expressão : Retorna verdadeiro quando a expressão daesquerda tiver valor menor ou igual que a expressão da direita.>>> 9 <= 5False>>>

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 10 / 40

Page 11: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

O que será impresso pelo programa?p r i n t (9 > 3)

p r i n t ( (3∗4)/2 != (2∗3) )

a = 1b = −1p r i n t ( a != b )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 11 / 40

Page 12: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões lógicas

Expressões lógicas são aquelas que realizam uma operação lógica (ou, e,não, etc...) e retornam verdadeiro ou falso (como as expressõesrelacionais).

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 12 / 40

Page 13: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Operadores Lógicos

Na linguagem Python temos os seguintes operadores lógicos:and: operador E.or: operador OU.not: operador NÃO.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 13 / 40

Page 14: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões lógicas

expressão and expressão : Retorna verdadeiro quando ambas asexpressões são verdadeiras. Sua tabela verdade é:

Op1 Op2 Ret

V V VV F FF V FF F F

Qual o resultado da expressão lógica abaixo?a = 0b = 0( a == 0 and b == 0)

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 14 / 40

Page 15: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões lógicas

expressão or expressão : Retorna verdadeiro quando pelo menos umadas expressões é verdadeira. Sua tabela verdade é:

Op1 Op2 Ret

V V VV F VF V VF F F

Qual o resultado da expressão lógica abaixo?a = 0b = 1( a == 0 or b == 0)

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 15 / 40

Page 16: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Expressões lógicas

not expressão : Retorna verdadeiro quando a expressão é falsa evice-versa. Sua tabela verdade é:

Op1 Ret

V FF V

Qual o resultado da expressão lógica abaixo?a = 0b = 1not ( a != b )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 16 / 40

Page 17: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

O que será impresso pelo programa?p r i n t (8>9 and 10!=2)

p r i n t (14 > 100 or 2>1)

p r i n t ( not (14>100) and not (1>2) )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 17 / 40

Page 18: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Um comando condicional é aquele que permite decidir, a partir doresultado de uma expressão relacional ou lógica, se um determinado blocode comandos deve ou não ser executado.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 18 / 40

Page 19: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Bloco de comandos

É um conjunto de instruções agrupadas.Os comandos agrupados do bloco devem estar indentados dentro deum comando anterior seguido de dois pontos.A indentação é feita em geral com 2 espaços em branco antes de cadacomando que deve estar dentro do bloco.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 19 / 40

Page 20: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

O principal comando condicional é o if, cuja sintaxe é:i f e x p r e s s ã o r e l a c i o n a l ou l ó g i c a :

comandos execu tado s se a e xp r e s s ã o é v e r d a d e i r a

Os comandos são executados somente se a expressão relacional/lógicafor verdadeira.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 20 / 40

Page 21: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

O programa abaixo determina se o valor digitado é par.

a = int(input())if a%2 == 0:

print("O número digitado é par")

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 21 / 40

Page 22: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Uma variação do comando if é o if/else, cuja sintaxe é:i f e x p r e s s ã o r e l a c i o n a l ou l ó g i c a :

comandos execu tado s se a e xp r e s s ã o é v e r d a d e i r ae l s e :

comandos execu tado s se a e xp r e s s ã o é f a l s a

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 22 / 40

Page 23: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Exemplo: Determinando o menor de dois números:a = i n t ( i n pu t ( " D i g i t e um número : " ) )b = i n t ( i n pu t ( " D i g i t e um número : " ) )i f a < b :

p r i n t ( "O menor número é : " , a )e l s e :

p r i n t ( "O menor número é : " , b )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 23 / 40

Page 24: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Note que o if é um comando, e como tal pode aparecer dentro dobloco de comandos de outro if.

Exemplo: Usando apenas operadores relacionais e aritméticos, vamosescrever um programa que lê um número e verifica em qual dos seguintescasos o número se enquadra:

Par e menor que 100.Par e maior ou igual a 100.Ímpar e menor que 100.Ímpar e maior ou igual a 100.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 24 / 40

Page 25: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

a = i n t ( i n pu t ( " D i g i t e um número : " ) )i f ( a % 2 == 0 ) : #<−− Se número f o r par , e x ecu ta b l o co aba i xo

i f ( a<100):p r i n t ( "O número é par e menor do que 100" )

e l s e :p r i n t ( "O número é par e maior ou i g u a l que 100" )

e l s e : #<−− Se número f o r ímpar , e xecu ta b l o co aba i xoi f ( a<100):

p r i n t ( "O número é ímpar e menor do que 100" )e l s e :

p r i n t ( "O número é ímpar e maior ou i g u a l que 100" )

Se você pudesse usar operadores lógicos, como você poderia refazer esteprograma?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 25 / 40

Page 26: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

p r i n t ( " D i g i t e um número : " )a = i n t ( i n pu t ( ) )i f ( a % 2 == 0) and ( a<100):

p r i n t ( "O número é par e menor do que 100" )i f ( a % 2 == 0) and ( a>=100):

p r i n t ( "O número é par e maior ou i g u a l que 100" )i f ( a % 2 != 0) and ( a<100):

p r i n t ( "O número é ímpar e menor do que 100" )i f ( a % 2 != 0) and ( a>=100):

p r i n t ( "O número é ímpar e maior ou i g u a l que 100" )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 26 / 40

Page 27: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Lembre-se que o que define a qual bloco de comandos um comandopertence é a sua indentação!i f ( cond1 ) :

i f ( cond2 ) :comando1

e l s e :comando2

Quando o comando2 é executado?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 27 / 40

Page 28: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

Lembre-se que o que define a qual bloco de comandos um comandopertence é a sua indentação!i f ( cond1 ) :

i f ( cond2 ) :comando1

e l s e :comando2

Quando o comando2 é executado?Resposta: quando cond1 for falsa.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 28 / 40

Page 29: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

i f ( cond1 ) :i f ( cond2 ) :

comando1e l s e :

comando2

Quando o comando2 é executado?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 29 / 40

Page 30: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

i f ( cond1 ) :i f ( cond2 ) :

comando1e l s e :

comando2

Quando o comando2 é executado?Resposta: quando a cond1 for verdadeira e cond2 for falsa.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 30 / 40

Page 31: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

i f ( cond1 ) :i f ( cond2 ) :

comando1e l s e :

comando2e l s e :

i f ( cond3 ) :comando3

e l s e :comando4

Quando o comando4 é executado?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 31 / 40

Page 32: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

i f ( cond1 ) :i f ( cond2 ) :

comando1e l s e :

comando2e l s e :

i f ( cond3 ) :comando3

e l s e :comando4

Quando o comando4 é executado?Resposta: quando a cond1 for falsa e cond3 for falsa.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 32 / 40

Page 33: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

a = 5i f ( a > 3 ) :

i f ( a < 7 ) :p r i n t ( "a" )

e l s e :i f ( a>−10):

p r i n t ( "b" )e l s e :

p r i n t ( "c" )

O que será impresso?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 33 / 40

Page 34: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

a = −12i f ( a > 3 ) :

i f ( a < 7 ) :p r i n t ( "a" )

e l s e :i f ( a>−10):

p r i n t ( "b" )e l s e :

p r i n t ( "c" )

O que será impresso?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 34 / 40

Page 35: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Comandos condicionais

a = 9i f ( a > 3 ) :

i f ( a < 7 ) :p r i n t ( "a" )

e l s e :i f ( a>−10):

p r i n t ( "b" )e l s e :

p r i n t ( "c" )

O que será impresso?

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 35 / 40

Page 36: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Exercícios

A solução abaixo está correta para classificar um número como par e menorque 100, ou par e maior ou igual a 100, etc, como no exemplo vistoanteriormente?p r i n t ( " D i g i t e um número : " )a = i n t ( i n pu t ( ) )i f ( a % 2 == 0) and ( a<100):

p r i n t ( "O número é par e menor do que 100" )e l s e :

i f ( a>=100):p r i n t ( "O número é par e maior ou i g u a l que 100" )

i f ( a % 2 != 0) and ( a<100):p r i n t ( "O número é ímpar e menor do que 100" )

e l s e :i f ( a>=100):

p r i n t ( "O número é ímpar e maior ou i g u a l que 100" )

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 36 / 40

Page 37: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Exercícios

Escreva um programa que lê um número inteiro do teclado e imprime"SIM"se o número for par e maior do que 10, ou for ímpar e menor doque 50. Caso contrário o programa deve imprimir "NAO".

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 37 / 40

Page 38: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Exercícios

Escreva um programa lê três números e imprime o maior deles.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 38 / 40

Page 39: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Exercícios

Escreva um programa lê três números distintos e os imprime emordem decrescente.

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 39 / 40

Page 40: MC-102—Aula04 ExpressõesRelacionais,LógicaseComandos …bit/mc102/aulas/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Author: Prof. Luiz

Biblioteca e livros

http://acervus.unicamp.brhttp://www.sbu.unicamp.brBibl. Central, Bibl. Área de Engenharia e Inst. Mat. Est. Comput.Cient.Filtros “LIVRO” e “E-BOOK”palavras-chave: “Introdução Algoritmos”, “Introduction Algorithms”,“Python”, “Introduction programming”, etc.PyCharm for Education:https://www.jetbrains.com/pycharm-edu/?fromMenu

Luiz Bittencourt (IC-UNICAMP) MC-102 — Aula 04 2018 40 / 40