Você está na página 1de 34

Estruturas

condicionais
AULA 04 - EXA 801 – ALGORITMOS E
PROGRAMAÇÃO I

Photo by Google DeepMind


Expressões lógicas
ENTENDENDO VARIÁVEIS BOOLEANAS

11/03/2024
"O fato de a linguagem ser um instrumento da
razão humana, e não apenas um meio para a
expressão do pensamento, é uma verdade
geralmente admitida."

— GEORGE BOOL, CITADO NA PALESTRA DE KENNETH E. IVERSON


SOBRE O PRÊMIO TURING DE 1979.
Operadores relacionais
• Os operadores relacionais descrevem a Operador Significado
comparação a ser realizada entre os == Igual a
termos.
> Maior que
• Os resultados das operações relacionais < Menor que
são valores lógicos/booleanos (em Python, >= Maior ou igual a
são do tipo bool).
<= Menor ou igual a
!= Diferente de

11/03/2024
Exemplo 1

>>> 27 > 5

True

>>> 12 >= 10 + 5 - 3

True

>>> 10 != 15 - 3 - 2

False

11/03/2024
Bool
O tipo bool pode ser declarado por True ou NOTA
False, representando verdadeiro e falso,
respectivamente. Outros tipos podem ser considerados como
True ou False em expressões lógicas, como:

>>> True • int: 0 é False, outros números são True


True
>>> False • str: “” é False, outras strings são True
False

O mesmo ocorre com list, dict e sets, que serão


vistos mais à frente.

11/03/2024
Operadores lógicos
Operadores lógicos são usados para álgebra EXEMPLO
booleana. >>> jovem = idade > 18 and idade < 35
>>> jovem
Eles podem ser usados em conjunto com os True
operadores relacionais.
DICA:
Operador Significado No Python É possível simplificar essa
and e expressão usando:
or ou jovem = 18 < idade < 30
not não

11/03/2024
Exemplo 2
>>> a = 10
>>> b = 4
>>> c = 7
>>> d = 6
>>> a >= b and c > d
True
>>> b == c or a >= d
True
>>> d != a and not(b < d)
False
>>> c > a + b or a != b + d
False
>>> not(a - d - b)
True

11/03/2024
Estruturas condicionais
TOMANDO DECISÕES NO CÓDIGO

11/03/2024
"Ao encontrar seu caminho, você deve ignorar
o medo. Você precisa ter a coragem de
arriscar erros. Mas quando estiver na
estrada... corra, corra, corra e não pare até
chegar ao fim."

― JOSÉ N. HARRIS, MI VIDA: A STORY OF FAITH, HOPE AND LOVE


Importância
• Nem sempre desejamos que todas as ações sejam executadas, de acordo com certas condições.
• Assim, utiliza-se dessas estruturas para o controle do fluxo do programa, mudando seu
comportamento.
• Juntamente à essas estruturas, tem-se os operadores lógicos e relacionais.

if nome == "":
print("nome não definido")
else:
print(f"Seu nome {nome}")

11/03/2024
Se... Então...
• Uma estrutura muito utilizada por linguagens é o se..então...
• Perceba que o bloco então só é executado caso a expressão seja verdadeira:

se (expressão) então
comando1
comando2
comando3
fimse

11/03/2024
Se... Então ...
FLUXOGRAMA PSEUDOCÓDIGO PYTHON

se (expressão) então if expressão:


comandos comandos()
fimse

11/03/2024
Exemplo 3.1 - Pseudocódigo
# Algoritmo que avalia se uma pessoa pode tirar
# carteira de habilitação.

início
inteiro idade
escreva("Digite sua idade: ")
leia(idade)
se (idade >= 18) então
escreva("Já pode obter habilitação. ")
fimse
fim

11/03/2024
Exemplo 3.2 - Python

# Algoritmo que avalia se uma pessoa pode tirar


# carteira de habilitação.
idade = int(input("Digite sua idade: "))

# Comparação com a idade mínima


if idade >= 18:
print("Já pode obter habilitação!")
print("Até mais!")

11/03/2024
Estruturas condicionais compostas
Mas e se quisermos ter uma forma de executar instruções alternativas caso a expressão
validada seja falsa? Para isso, temos: Se.... Então... Senão...

Logo não precisaríamos de:

se (idade > 18 e idade < 30) então


print(“jovem”)
fimse

se não (idade > 18 e idade < 30) então


print(“não jovem”)
fimse

11/03/2024
Se... Então... Senão...
FLUXOGRAMA PSEUDOCÓDIGO PYTHON

se (expressão) então if expressão:


comando1 comando_1()
senão else:
comando_2()
comando2
fimse

11/03/2024
Exemplo 4.1 - Pseudocódigo
# Informa se o número inserido é impar ou par

início
inteiro num
escreva("Digite um número inteiro: ")
leia(num)
se (num % 2 == 0) então
escreva("O número digitado é par!")
senão
escreva("O número digitado é ímpar!")
fimse
fim

11/03/2024
Exemplo 4.2 - Python

# Informa se o número inserido é impar ou par

num = int(input("Digite um número inteiro: "))

if num % 2 == 0:
print("O número digitado é par!")
else:
print("O número digitado é ímpar!")

11/03/2024
Combinando instruções or
ORIGINAL REFATORAÇÃO

if numero < 10: if numero < 10 or numero > 20:


print("Número fora do intervalo.") print("Número fora do intervalo.")

if numero > 20:


print("Número fora do intervalo.")

11/03/2024
Combinando instruções and
ORIGINAL REFATORAÇÃO

if numero >= 10: if numero >= 10 and numero <= 20:


if numero <= 20: print("Número no intervalo.")
print("Número no intervalo.")

11/03/2024
Exemplo 5.1
Elabore um programa que, dada a idade de um nadador, classifica-o em uma das seguintes
categorias: infantil, de 5 a 10 anos; juvenil, de 11 a 17 anos; ou adulto, maior que 18 anos.

idade = int(input("Digite a idade: "))

if 5 <= idade <= 10:


print("Categoria infantil!")
if 10 < idade < 18:
print("Categoria juvenil!")
if idade >= 18:
print("Categoria adulto!")

11/03/2024
Estruturas Condicionais aninhadas
Mas o que acontece se queremos executar comandos alternativos caso as expressões anteriores
sejam falsas?

if expressão_1:
comando_1()
else:
if expressão_2:
comando_2()
else:
if expressão_3:
comando_3()
else:
comando_4()

11/03/2024
Estruturas Condicionais Aninhadas
PSEUDOCÓDIGO PYTHON

se (expressão1) então If expressão_1:


instruções1 instruções_1()
senão se (expressão2) então elif expressão_2:
instruções2 instruções_2()
senão se (expressão3) então elif expressão_3:
instruções3 instruções_3()
senão else:
instruções4 instruções_4()
fimse

11/03/2024
Exemplo 5.2
Elabore um programa que, dada a idade de um nadador, classifica-o em uma das seguintes categorias:
infantil, de 5 a 10 anos; juvenil, de 11 a 17 anos; ou adulto, maior que 18 anos.

idade = int(input("Digite a idade: "))

if 5 <= idade <= 10:


print("Categoria infantil!")
elif idade >= 11 and idade < 18:
print("Categoria juvenil!")
elif idade >= 18:
print("Categoria adulto!")
else:
print("Muito jovem para nadar!")

11/03/2024
Exemplo 6
Escreva um programa que leia dois números inteiros e imprime na tela o maior dos dois ou uma
mensagem informando que os dois números são iguais.

num_1 = int(input("Digite o primeiro número inteiro: "))


num_2 = int(input("Digite o segundo número inteiro: "))

if num2 > num1:


print(f"{num_2} é maior.")
elif num1 > num2:
print(f"{num_1} é maior.")
else:
print("Os números são iguais")

11/03/2024
Exemplo 7 – Problema
Uma empresa concederá um aumento de salário aos seus funcionários variável de acordo com o cargo
conforme a tabela abaixo. Faça um programa que leia o salário e o código do cargo de um funcionário
e calcule o novo salário.

Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento. Mostre o
salário antigo, o novo salário e a diferença.

Código do Cargo Percentual


101 – Gerente 10%
102 – Engenheiro 20%
103 – Técnico 30%

11/03/2024
Exemplo 7 – Resolução
código = int(input("Digite o código do cargo: "))
salário = float(input("Digite o salário: "))

if código == 101:
novo = salário * 1.10
elif código == 102:
novo = salário * 1.20
elif código == 103:
novo = salário * 1.30
else:
novo = salário * 1.40

diferença = novo - salário


print(f"Antigo = {salário:.2f}")
print(f"Novo = {novo:.2f}")
print(f"Diferença = {diferença:.2f}")

11/03/2024
Estruturas Condicionais de
Múltipla Escolha
PSEUDOCÓDIGO PYTHON 3.10

escolha(variável) match variável:


caso valor1: comandos1 case valor_1:
caso valor2: comandos2
caso valorK: comandosK commandos_1()
padrão: comandosP case valor_2:
fimescolha commandos_2()
case valor_3:
commandos_3()
case _:
comandos_p()

11/03/2024
Exemplo 7.2 – Resolução com
Match/Case
código = int(input("Digite o código do cargo: "))
salário = float(input("Digite o salário: "))

match código:
case 101:
novo = salário * 1.10
case 102:
novo = salário * 1.20
case 103:
novo = salário * 1.30
case _:
novo = salário * 1.40

diferença = novo - salário


print(f"Antigo = {salário:.2f}")
print(f"Novo = {novo:.2f}")
print(f"Diferença = {diferença:.2f}")

11/03/2024
Exemplo 8 dia = int(input("Digite o dia da semana: "))

match dia:
Leia um número que corresponderá ao dia da case 1:
semana e apresente qual dia é este: print("Domingo")
case 2:
1 – Domingo print("Segunda-Feira")
2 – Segunda-feira case 3:
print("Terça-Feira")
3 – Terça-feira case 4:
print("Quarta-Feira")
4 – Quarta-feira case 5:
5 – Quinta-feira print("Quinta-Feira")
case 6:
6 – Sexta-feira print("Sexta-Feira")
7 – Sábado case 7:
print("Sábado")
case _:
print(f"Valor {dia} inválido")

11/03/2024
Exemplo 9
Leia um dia da semana e diga se este dia é útil ou final de semana:

dia = input("Digite o dia da semana:")

match dia:
case "Domingo" | "Sábado":
print("Final de semana")
case _:
print("Dia útil")

11/03/2024
Exemplo 10
Leia uma tecla e indique se é uma vogal ou qualquer outro caractere.

tecla = input('Digite uma tecla: ')

match tecla:
case 'a'| 'e' | 'i' | 'o' | 'u':
print('É uma vogal!')
case _:
print('Outro caractere!')

11/03/2024
George Boole, quoted in Kenneth E. Iverson's 1979 Turing Award Lecture.
QuotePark. Available from: https://quotepark.com/quotes/1846217-george-
boole-that-language-is-an-instrument-of-human-reason-an/. Acessed: 06 May
2024.

HARRIS, José. MI VIDA: A Story of Faith, Hope and Love. GoodReads. Available
from: https://www.goodreads.com/quotes/414998-when-you-find-your-path-
Referências you-must-ignore-fear-you. Acessed: 06 May 2024.

11/03/2024

Você também pode gostar