Académique Documents
Professionnel Documents
Culture Documents
2016/2
Aula 03 Estruturas Condicionais Encadeadas
Atualizao: 28/nov/16
Exemplos extras
Contedo
Exemplos extras
Tipos de operadores
Operandos Resultado
. Tipo
(entradas) (sada)
and or not
Operador
True/False lgico True/False
True / False
AND (E lgico)
Resulta em verdade
somente se todas as # Testa se triangulo
eh equilatero
condies so
verdadeiras (vlidas). ladoA = 5
ladoB = 5
A B A and B ladoC = 5
F F F print(
F V F (ladoA == ladoB) and
(ladoB == ladoC))
V F F
V V V
Resulta em verdade
somente se pelo menos # Testa se triangulo
eh isosceles
uma das condies
verdadeira. ladoA = 4
ladoB = 5
A B A or B ladoC = 5
F F F print(
F V V (ladoA == ladoB) or
(ladoB == ladoC) or
V F V (ladoA == ladoC))
V V V
Comparao True
formada por
DOIS sinais de =
Precedncia entre operadores
Operador Significado
() Grupos entre parnteses
** Potenciao
- Negao
* / % // Multiplicao, divises, resto
+ - Subtrao, adio Na dvida, use
> >= < <= == != Comparaes parnteses.
not NO lgico
and E lgico
or OU lgico
= Atribuio
Operadores Lgicos
:: Exemplo A
salario > 1000 and
x <= 20 or x >= 40
idade > 18
Calcular o alcance de 02
= sen 2
um projtil.
Entradas:
Velocidade inicial 0
ngulo entre o cano
do canho e o solo
Considere:
= 9,81/ 2 .
Problema 1
2 Identificar entradas e sadas
V F else
not (A or B or C or ...)
not (A) and not (B) and not (C) and not (...)
Problema 2
Dados trs valores x, y e z, verifique:
1. Se eles podem ser os comprimentos dos lados de um
tringulo.
2. Caso positivo, se o tringulo equiltero, issceles ou
escaleno.
3. Imprimir nomes sem acento.
Problema 2
1 Identificar o problema (1/2)
1. Verificar se trs medidas formam um tringulo vlido:
Nenhum dos lados de um tringulo deve ser maior do
que a soma dos outros dois.
Exemplos:
5 cm 4 cm
4 cm 2 cm
3 cm 1 cm
Problema 2
1 Identificar o problema (2/2)
2. Verificar quantos lados so iguais entre si.
Exemplos:
Equiltero Issceles Escaleno
No Todos os trs
tringulo lados so iguais
V F
Algum par de
Equiltero
lados iguais
V F
Issceles Escaleno
Problema 2
3 Projetar algoritmo refinamento
Algum
(x >= y + z) or (y >= z + x) or (z >= x + y)
V F else
Todos
No tringulo (x == y) and (y == z)
V F else
Algum
Equiltero (x == y) or (y == z) or (z == x)
else
V F
Issceles Escaleno
Problema 2
4 Codificar em Python verso 1
# Entrada de dados
x = float(input("Lado x: ")) Medidas dos lados
y = float(input("Lado y: ")) de um polgono so
nmeros reais
z = float(input("Lado z: "))
Exemplos Extras
Estruturas Condicionais Encadeadas
Estruturas condicionais encadeadas (ou aninhadas) so
estruturas condicionais dentro de outras estruturas
condicionais.
Um longo encadeamento de ifs e elses, em diversos
nveis de indentao, pode confundir o programador.
O comando elif substitui um par else / if sem criar
um outro nvel de indentao na estrutura condicional.
Estruturas Condicionais Encadeadas
:: Exemplo
if (delta < 0):
print("Nao tem raiz real")
else:
if (delta == 0):
r1 = -b/(2 * a)
else:
r1 = (-b+delta**0.5)/(2*a)
r2 = (-bdelta**0.5)/(2*a)
Grandeza Unidade
Unidadede
demedida
medida Faixa
Faixade
devalores
valores
Mo do J1 --- {Pedra, Papel, Tesoura}
Entradas
Mo do J2 --- {Pedra, Papel, Tesoura}
Sadas Vencedor --- {J1, J2, Empate}
Problema 3
3 Projetar algoritmo
J1 == J2
elif
V F
J1 ganhou J2 ganhou
Problema 3
Tratamento de maisculas e minsculas
desejvel garantir que a comparao das jogadas d
certo mesmo quando o usurio digita PEDRA, PaPeL ou
TESOURa em padres diferentes de caracteres
maisculos ou minsculos.
str1 = "Pedra"
print(str1.lower()) print(str1.upper())
pedra PEDRA
Problema 3
4 Codificar em Python
# Leitura das entradas
j1 = input("Jogada do Jogador 1: ").lower()
j2 = input("Jogada do Jogador 2: ").lower()
BISSEXT
O ano % 100 == 0
elif
V F
NO
ano % 4 == 0
BISSEXTO
else
V F
NO
BISSEXTO
BISSEXTO
Problema 4
4 Codificar em Python verso 1
# Entrada de dados
ano = int(input("Ano: ")) Ano um valor inteiro
NO BISSEXTO ano % 4 == 0
V F
BISSEXTO NO BISSEXTO
ano % 400 == 0 or
Quais caminhos
levam a um ano
(ano % 100 != 0) and (ano % 4 == 0)
bissexto?
Problema 4
4 Codificar em Python verso 2
# Entrada de dados
ano = int(input("Ano: "))
Escreva um programa
que leia a renda mensal
de uma pessoa.
Como sada, informe o
valor do imposto de
renda devido.
Importante: as alquotas
so aplicadas de forma
progressiva.
Problema 5
2 Identificar entradas e sadas
if (r <= f1):
imp = 0
elif (r <= f2):
imp = 0.075*(r-f1)
elif (r <= f3):
imp = 0.075*(f2-f1) + 0.15*(r-f2)
elif (r <= f4):
imp = 0.075*(f2-f1) + 0.15*(f3-f2) + 0.225*(r-f3)
else:
imp = 0.075*(f2-f1)+0.15*(f3-f2)+0.225*(f4-f3)+0.275*(r-f4)
print(imp)
Contedo
Exemplos Extras
Exemplo 1
Sejam A, B, C trs nmeros inteiros quaisquer.
Escreva um script para arrum-los em ordem
decrescente.
Exemplo 1
1 Identificar o problema
So dados trs nmeros inteiros quaisquer: A, B, C.
Eles devem ser arrumados em ordem decrescente.
Pode-se considerar que a sada seja
N1 N2 N3
Agora, o problema se resume a associar:
A N1
B N2
C N3
Exemplo 1
2 Identificar entradas e sadas
N1 A N1 B
N2 B N2 A
C > N1
elif
V F
N3 N2
C > N2
N2 N1
else
N1 C V F
N3 N2
N3 C
N2 C
Exemplo 1
4 Codificar em Python
a = int(input("Numero a: "))
b = int(input("Numero b: "))
c = int(input("Numero c: "))
if (a > b):
n1 = a
n2 = b
else:
n1 = b
n2 = a
if (c > n1):
n3 = n2
n2 = n1
n1 = c
elif (c > n2):
n3 = n2
n2 = c
else:
n3 = c
print(n1, n2, n3)
Exemplo 2
A equao de uma
circunferncia de raio R y
2 + 2 = 2 .
Escreva um algoritmo
R
que, dado um ponto P
qualquer, verifique se ele
x
se encontra:
Contido na
circunferncia
No interior
No exterior
Exemplo 2
2 Identificar entradas e sadas
interno externo
Exemplo 2
4 Codificar em Python
# Entrada de dados
Coordenadas
so valores r = float(input("Raio: "))
reais x = float(input("Coord. X do ponto: "))
y = float(input("Coord. Y do ponto: "))
quantidade de meses e
anos. 2
= 1+
Mas a sada da equao
o saldo, informao que log 2 = log 1 +
j conhecemos.
Portanto, temos de log 2 = log 1 +
reescrever a equao,
log 2
isolando o no lado =
log 1 +
esquerdo.
Exemplo 3
3 Projetar algoritmo
Dados
meses = int(log(2) / log(1 + t)) + 1
invlidos
Exemplo 3
4 Codificar em Python
# Entrada de dados
t = float(input("Informe a taxa de aplicacao: "))
Validao da entrada
if ((t >= 0) and (t <= 1)):
# Importar modulo matematico
from math import *
0
Exemplo 4
2 Identificar entradas e sadas
Sul ang == 90
V F elif
Oeste Desconhecido
Exemplo 4
4 Codificar em Python
# Entrada de dados
ang = int(input("Angulo: "))
PERDEU N2 == N3
F V
PERDEU GANHOU