38

MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

MC-102 � Aula 04

Expressões Relacionais, Lógicas e Comandos

Condicionais

Eduardo C. Xavier

Instituto de Computação � Unicamp

8 de Março de 2018

Page 2: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Roteiro

1 Expressões relacionais

2 Expressões lógicas

3 Comandos condicionais

4 Exercícios

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 2 / 38

Page 3: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

O Tipo bool

Em python o tipo bool especi�ca os valores booleanos falso (False) everdadeiro (True).

Podemos criar variáveis associadas a booleanos mas o uso mais comumé na veri�cação de resultados de expressões relacionais e lógicas.>>> a = True

>>> type(a)

<class 'bool'>

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 3 / 38

Page 4: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Expressão

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

Exemplo

a = 10a = b

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

Exemplo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 4 / 38

Page 5: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 5 / 38

Page 6: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Operadores Relacionais

Os operadores relacionais da linguagem Python são:

== : igualdade.

! = : diferente.

> : maior que.

< : menor que.

>= : maior ou igual que.

<= : menor ou igual que.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 6 / 38

Page 7: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Expressões relacionais

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

True

>>> 9 == 10

False

>>>

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

False

>>> 9 != 10

True

>>>

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 7 / 38

Page 8: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Expressões relacionais

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

True

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

False

>>>

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 8 / 38

Page 9: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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 >= 5

True

>>>

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

False

>>>

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 9 / 38

Page 10: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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 )

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 10 / 38

Page 11: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 11 / 38

Page 12: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Operadores Lógicos

Na linguagem Python temos os seguintes operadores lógicos:

and: operador E.

or: operador OU.

not: operador NÃO.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 12 / 38

Page 13: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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)

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 13 / 38

Page 14: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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)

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 14 / 38

Page 15: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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 )

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 15 / 38

Page 16: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 16 / 38

Page 17: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Comandos condicionais

Um comando condicional é aquele que permite decidir se um determinadobloco de comandos deve ou não ser executado, a partir do resultado deuma expressão relacional ou lógica.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 17 / 38

Page 18: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 18 / 38

Page 19: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 19 / 38

Page 20: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Comandos condicionais

O programa abaixo determina se um valor é par.

a = int(input())

if a%2 == 0:

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 20 / 38

Page 21: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 21 / 38

Page 22: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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 )

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 22 / 38

Page 23: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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 veri�ca 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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 23 / 38

Page 24: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 24 / 38

Page 25: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 25 / 38

Page 26: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Comandos condicionais

Lembre-se que o que de�ne 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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 26 / 38

Page 27: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Comandos condicionais

Lembre-se que o que de�ne 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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 27 / 38

Page 28: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Comandos condicionais

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

comando1e l s e :

comando2

Quando o comando2 é executado?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 28 / 38

Page 29: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 29 / 38

Page 30: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 30 / 38

Page 31: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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.

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 31 / 38

Page 32: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 32 / 38

Page 33: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 33 / 38

Page 34: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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?

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 34 / 38

Page 35: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Exercícios

A solução abaixo está correta para classi�car 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" )

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 35 / 38

Page 36: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 36 / 38

Page 37: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Exercícios

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 37 / 38

Page 38: MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos ...juliana/cursos/mc102/aula04.pdf · MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Eduardo

Exercícios

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

Eduardo C. Xavier (Instituto de Computação � Unicamp)MC-102 � Aula 04 8 de Março de 2018 38 / 38