Buscar

AED1-03-Python-estruturas-condicionais-parte1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos	
  e	
  Estruturas	
  de	
  Dados	
  I	
  
Estruturas	
  Condicionais	
  em	
  Python	
  
Resolução	
  de	
  Problemas	
  Algorítmicos	
  
Definir	
  as	
  entradas	
  e	
  as	
  
saídas	
  
Fim	
  
Iden?ficar	
  o	
  problema	
  
Início	
  
Converter	
  o	
  algoritmo	
  em	
  
declarações	
  da	
  linguagem	
  de	
  
programação	
  
Projetar	
  o	
  algoritmo	
  
Decompor	
  
Refinar	
  
passo	
  a	
  passo	
  
Testar	
  o	
  programa	
  
resultante	
  
1	
  
2	
  
3	
  
4	
  
5	
  
Conteúdo	
  
Estruturas	
  Condicionais	
  Simples	
  
Estruturas	
  Condicionais	
  Compostas	
  
Como	
  montar	
  uma	
  condição?	
  
Estruturas	
  Condicionais	
  Encadeadas	
  
Estruturas	
  de	
  Programação	
  
¨  Qualquer	
  programa	
  de	
  computador	
  pode	
  ser	
  
escrito	
  combinando-­‐se	
  os	
  três	
  ?pos	
  básicos	
  de	
  
estruturas	
  de	
  programação:	
  
Sequencial	
   Condicional	
   Repe?ção	
  
Estrutura	
  Sequencial	
  
¨  É	
  a	
  estrutura	
  de	
  programação	
  mais	
  simples.	
  
¨  O	
  fluxo	
  de	
  comandos	
  do	
  algoritmo	
  segue	
  a	
  mesma	
  
sequência	
  linear	
  da	
  nossa	
  escrita:	
  
¤ De	
  cima	
  para	
  baixo	
  
¤ Da	
  esquerda	
  para	
  direita	
  
p/	
  esquerda	
  
p/	
  baixo	
   a = 3 b = 4 
m = (a + b)/2 
print(m) 
Estrutura	
  Condicional	
  
¨  Permite	
  alterar	
  o	
  fluxo	
  de	
  execução,	
  de	
  forma	
  a	
  
selecionar	
  qual	
  parte	
  do	
  algoritmo	
  deve	
  ser	
  
executada.	
  
¨  Essa	
  decisão	
  é	
  tomada	
  a	
  par?r	
  de	
  uma	
  condição,	
  
que	
  pode	
  resultar	
  apenas	
  em:	
  
¤ Verdade,	
  ou	
  
¤ Falsidade	
  
?	
  
Estrutura	
  Condicional	
  Simples	
  
¨  Quando	
  a	
  condição	
  é	
  
verdadeira,	
  o	
  “bloco	
  
verdade”	
  é	
  executado.	
  
¨  Quando	
  a	
  condição	
  é	
  
falsa,	
  o	
  “bloco	
  
verdade”	
  não	
  é	
  
executado.	
  
if (delta < 0): 
 print('Nao tem raizes reais') 
início	
  
a,	
  b,	
  c	
  
fim	
  
delta	
  <	
  0	
  
F	
   Não	
  tem	
  
raízes	
  reais	
  
V	
  
delta	
  ←	
  b**2	
  –	
  4*a*c	
  
Estrutura	
  Condicional	
  Simples	
  
::	
  Em	
  Python	
  
a = float(input("Digite a: ")) 
b = float(input("Digite b: ")) 
c = float(input("Digite c: ")) 
início	
  
a,	
  b,	
  c	
  
fim	
  
delta	
  <	
  0	
  
F	
   Não	
  tem	
  
raízes	
  reais	
  
v	
  
delta	
  ←	
  b**2	
  –	
  4*a*c	
  
if (delta < 0): 
 print("Nao tem raizes reais") 
delta = b**2 – 4 * a * c 
Condições	
  sempre	
  terminam	
  
com	
  sinal	
  de	
  dois	
  pontos	
  
Comandos	
  internos	
  às	
  condições	
  
devem	
  ser	
  recuados	
  (tecla	
  TAB)	
  
Exemplo	
  A	
  
# Script que calcula o valor do ingresso 
# a depender de se houver meia entrada 
 
op = input("Meia entrada? (S/N) ") 
ingresso = 30 
 
if (op == "S"): 
 ingresso = ingresso/2 
 
print("Valor do ingresso: ", ingresso) 
 
Recuo	
  do	
  comandos	
  dependente	
  
da	
  condição	
  (tecla	
  TAB)	
  
Conteúdo	
  
Estruturas	
  Condicionais	
  Simples	
  
Estruturas	
  Condicionais	
  Compostas	
  
Como	
  montar	
  uma	
  condição?	
  
Estruturas	
  Condicionais	
  Encadeadas	
  
Estruturas	
  Condicionais	
  Compostas	
  
¨  Quando	
  a	
  condição	
  é	
  
verdadeira,	
  o	
  “bloco	
  
verdade”	
  é	
  executado.	
  
¨  Quando	
  a	
  condição	
  é	
  
falsa,	
  o	
  “bloco	
  
falsidade”	
  é	
  executado.	
  
if (delta < 0): 
 print("Nao tem raiz real") 
else: 
 print("Tem raiz real") 
início	
  
a,	
  b,	
  c	
  
fim	
  
delta	
  <	
  0	
  
F	
  
Não	
  tem	
  
raízes	
  reais	
  
V	
  
delta	
  ←	
  b**2	
  –	
  4*a*c	
  
Tem	
  raiz	
  
real	
  
Estruturas	
  Condicionais	
  Compostas	
  
::	
  Em	
  Python	
  
if (delta < 0): 
 print("Nao tem raiz real") 
else: 
 print("Tem raiz real") 
if	
  e	
  else	
  sempre	
  terminam	
  
com	
  sinal	
  de	
  dois	
  pontos	
  
Comandos	
  internos	
  ao	
  if	
  e	
  
ao	
  else	
  devem	
  ser	
  recuados	
  
início	
  
a,	
  b,	
  c	
  
fim	
  
delta	
  <	
  0	
  
F	
  
Não	
  tem	
  
raízes	
  reais	
  
V	
  
delta	
  ←	
  b**2	
  –	
  4*a*c	
  
Tem	
  raiz	
  
real	
  
a = float(input("Digite a: ")) 
b = float(input("Digite b: ")) 
c = float(input("Digite c: ")) 
delta = b**2 – 4 * a * c 
Exemplo	
  B	
  
# Script que verifica se o aluno passou 
ou nao com base na media 
 
m = float(input("Digite sua media: ")) 
 
if (m >= 5.0): 
 print("Passou") 
else: 
 print("Reprovou") 
 
if	
  e	
  else	
  sempre	
  terminam	
  
com	
  sinal	
  de	
  dois	
  pontos	
  
Comandos	
  internos	
  ao	
  if	
  e	
  
ao	
  else	
  devem	
  ser	
  recuados	
  
Indentação	
  
¨  O	
  comando	
  else	
  deve	
  estar	
  alinhado	
  com	
  o	
  
comandos	
  if	
  correspondente.	
  
¨  Todos	
  os	
  comandos	
  de	
  um	
  mesmo	
  bloco	
  deverão	
  
ter	
  o	
  mesmo	
  recuo.	
  
Indentação	
  
::	
  Cuidados	
  
Indentação	
  Válida	
   Indentação	
  Inválida	
  
if (condição): 
 comando 
 comando 
else: 
 comando 
 comando 
if (condição): 
 comando 
 comando 
 else: 
 comando 
 comando 
if (condição): 
 comando 
 comando 
else: 
 comando 
 comando 
Indentação	
  
::	
  Diferenças	
  
if (temp > 25): 
 print("Quente") 
 print("Ligue o ventilador") 
print("Tchau") 
if (temp > 25): 
 print("Quente") 
 print("Ligue o ventilador") 
 print("Tchau") 
F	
  
V	
  t	
  >	
  25	
  
Tchau	
  
Quente	
  
Ligue	
  o	
  ...	
  
F	
  
V	
  t	
  >	
  25	
  
Tchau	
  
Quente	
  
Ligue	
  o	
  ...	
  
Não	
  confunda	
  
Indentação	
  (identação)	
  
• Inserção	
  de	
  espaços	
  em	
  um	
  código	
  
de	
  linguagem	
  de	
  programação	
  
Endentação	
  	
  
• Encaixe	
  dos	
  dentes	
  de	
  uma	
  peça	
  
denteada	
  com	
  os	
  de	
  outra	
  
Problema	
  1	
  
¨  Uma	
  lata	
  de	
  leite	
  em	
  pó	
  da	
  marca	
  A,	
  com	
  400g,	
  
custa	
  R$	
  8,39.	
  
¨  Um	
  saco	
  de	
  leite	
  em	
  pó	
  da	
  marca	
  B,	
  com	
  1kg,	
  
custa	
  R$	
  20,30.	
  
¨  Qual	
  marca	
  tem	
  o	
  melhor	
  preço?	
  
Problema	
  1	
  
2	
  –	
  Definir	
  entradas	
  e	
  saídas	
  
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Saídas 
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
PrecoA	
   R$	
   8.39	
  
PesoA	
   kg	
   0.4	
  
PrecoB	
   R$	
   20.30	
  
PesoB	
   kg	
   1.0	
  
Saídas Marca	
   -­‐-­‐-­‐	
   {“A”,	
  “B”}	
  
Problema	
  1	
  
3	
  –	
  Projetar	
  algoritmo 
F	
  
V	
  
início	
  
PrecoA,	
  PesoA	
  
PrecoB,	
  PesoB	
  
fim	
  
marca	
  ←	
  “A”	
  
rA	
  >	
  rB	
  
marca	
  ←	
  “B”	
  
rA	
  ←	
  PrecoA/PesoA	
  
rB	
  ←	
  PrecoB/PesoB	
  
marca	
  
Problema	
  1	
  
4	
  –	
  Codificar	
  em	
  Python 
# Entrada de dados 
pA = float(input("Digite o preco da marca A: ")) 
pB = float(input("Digite o preco da marca B:")) 
mA = float(input("Digite o peso da marca A: ")) 
mB = float(input("Digite o peso da marca B: ")) 
 
rA = pA / mA 
rB = pB / mB 
 
if (rA > rB): 
 marca = "B" 
else: 
 marca = "A" 
 
print("Compre a marca ", marca) 
Recuo	
  do	
  comandos	
  dependente	
  
da	
  condição	
  (tecla	
  TAB)	
  
Problema	
  2	
  
¨  Um	
  radar	
  de	
  trânsito	
  
verifica	
  a	
  velocidade	
  
dos	
  veículos.	
  
¨  Caso	
  ultrapassem	
  60	
  
km/h,	
  emite-­‐se	
  um	
  
registro	
  de	
  multa.	
  
¨  O	
  valor	
  da	
  multa	
  é	
  de	
  R
$	
  200,00	
  mais	
  R$	
  3,00	
  
para	
  cada	
  1	
  km/h	
  acima	
  
do	
  limite.	
  
¨  Escreva	
  um	
  programa	
  
para	
  determinar	
  o	
  valor	
  
da	
  multa.	
  
Problema	
  2	
  
2	
  –	
  Definir	
  entradas	
  e	
  saídas	
  
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Saídas 
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas Velocidade	
   km/h	
   ≥	
  0	
  
Saídas Multa	
   R$	
   ≥	
  0	
  
Problema	
  2	
  
3	
  –	
  Projetar	
  o	
  algoritmo	
  
V	
  
F	
  
início	
  
vel	
  
fim	
  
multa	
  ←	
  200	
  +	
  3	
  *	
  (vel	
  –	
  lim)	
  	
  
vel	
  >	
  lim	
  
multa	
  ←	
  0	
  
lim	
  ←	
  60	
  
multa	
  
Problema	
  2	
  
4	
  –	
  Codificar	
  em	
  Python	
  
# Entrada de dados e definicao de constantes 
vel = float(input("Informe a velocidade: ")) 
lim = 60 # Limite de velocidade 
 
# Calculo do valor da multa 
if (vel > lim): 
 multa = 200 + 3 * (vel – lim) 
else: 
 multa = 0 
 
# Exibicao de resultados 
print(multa) 
 
Problema	
  2	
  
5	
  –	
  Testar	
  o	
  script	
  resultante	
  
40 
km/h 60 km/h 80 km/h 
Problema	
  3	
  
¨  A	
  equação	
  de	
  uma	
  
circunferência	
  de	
  raio	
  
R	
  é	
  ​𝑥↑2 + ​𝑦↑2 = ​𝑅↑2 .	
  
¨  Escreva	
  um	
  algoritmo	
  
que,	
  dado	
  um	
  ponto	
  P	
  
qualquer,	
  verifique	
  se	
  
ele	
  se	
  encontra:	
  
¤ Na	
  circunferência	
  
¤ No	
  interior	
  	
  
¤ No	
  exterior	
  
y	
  
x	
  
R	
  
Problema	
  3	
  
2	
  –	
  Definir	
  entradas	
  e	
  saídas	
  
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Saídas 
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Raio	
   -­‐-­‐-­‐	
   >=	
  0	
  
Coordenada	
  X	
  de	
  P	
   -­‐-­‐-­‐	
  
Coordenada	
  Y	
  de	
  P	
   -­‐-­‐-­‐	
  
Saídas Localização	
  de	
  P	
   -­‐-­‐-­‐	
   {interior,	
  exterior,	
  na	
  circunferência}	
  
Problema	
  3	
  
3	
  –	
  Projetar	
  algoritmo	
  
X**2	
  +	
  Y**2	
  ==	
  R**2	
  
X**2	
  +	
  Y**2	
  <	
  R**2	
  
Na	
  
circunferência	
  
V	
  
P	
  é	
  interno	
  
F	
  
P	
  é	
  externo	
  
V	
   F	
  
Problema	
  3	
  
3	
  –	
  Projetar	
  algoritmo	
  
V	
  
F	
  
fim	
  
Externo	
  
C2	
  
Interno	
  
V	
  
F	
  
início	
  
R,	
  X,	
  Y	
  
Na	
  
circunferência	
  
C1	
  
X**2	
  +	
  Y**2	
  ==	
  R**2	
  C1	
  
X**2	
  +	
  Y**2	
  <	
  R**2	
  C2	
  
Problema	
  3	
  
4	
  –	
  Codificar	
  em	
  Python 
# Entrada de dados 
r = float(input("Digite raio: ")) 
x = float(input("Digite coord. X do ponto: ")) 
y = float(input("Digite coord. Y do ponto: ")) 
 
 
if (x**2 + y**2 == r**2): 
 print("Ponto estah na circunferencia.") 
else: 
 if (x**2 + y**2 < r**2): 
 print("Ponto eh interno.") 
 else: 
 print("Ponto eh externo.") 
Problema	
  4	
  
¨  Dados	
  os	
  coeficientes	
  a,	
  b,	
  c	
  de	
  uma	
  equação	
  de	
  2º	
  
grau,	
  determine	
  se	
  há	
  raízes	
  reais	
  e,	
  caso	
  posi?vo,	
  
quais	
  são	
  elas.	
  
Problema	
  4	
  
2	
  –	
  Definir	
  entradas	
  e	
  saídas	
  
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Saídas 
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Coeficiente	
  a	
   -­‐-­‐-­‐	
  
Coeficiente	
  b	
   -­‐-­‐-­‐	
  
Coeficiente	
  c	
   -­‐-­‐-­‐	
  
Saídas 
Raiz	
  ,	
  se	
  houver	
   -­‐-­‐-­‐	
  
Raiz	
  ,	
  se	
  houver	
   -­‐-­‐-­‐	
  
Problema	
  4	
  
3	
  –	
  Projetar	
  algoritmo 
V	
  
F	
  
início	
  
a,	
  b,	
  c	
  
fim	
  
Não	
  tem	
  raiz	
  
real	
  
delta	
  <	
  0	
  
r	
  ←	
  -­‐	
  b/(2*a)	
  
delta	
  ←	
  b**2	
  –	
  4*a*c	
  
V	
  
delta	
  ==	
  0	
  
F	
  
r	
  
r1	
  ←	
  (-­‐	
  b	
  +	
  √delta)/(2*a)	
  
r2	
  ←	
  (-­‐	
  b	
  -­‐	
  √delta)/(2*a)	
  
r1,	
  r2	
  
Problema	
  4	
  
4	
  –	
  Codificar	
  em	
  Python 
# Entrada de dados a = float(input("Digite a: ")) b = float(input("Digite b: ")) c = float(input("Digite c: ")) 
delta = b**2 – 4 * a * c if (delta < 0): print("Nao tem raiz real.") else: if (delta == 0): 
 r = -b / (2 * a) print("Uma raiz real") print(r) else: 
 r1 = (-b + delta**0.5) / (2 * a) r2 = (-b - delta**0.5) / (2 * a) print("Duas raizes reais:") print(r1) print(r2) 
Problema	
  5	
  
¨  Projete	
  um	
  algoritmo	
  para	
  uma	
  máquina	
  caça-­‐
níquel	
  que	
  gere	
  3	
  números	
  aleatórios	
  entre	
  1	
  e	
  10.	
  
¨  Se	
  os	
  três	
  números	
  forem	
  iguais,	
  o	
  jogador	
  ganha.	
  
Caso	
  contrário,	
  ele	
  perde.	
  
Problema	
  5	
  
2	
  –	
  Definir	
  entradas	
  e	
  saídas	
  
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
Saídas 
	
   Grandeza Unidade	
  de	
  medida Faixa	
  de	
  valores 
Entradas 
N1	
   -­‐-­‐-­‐	
   [1,10]	
  
N2	
   -­‐-­‐-­‐	
   [1,10]	
  
N3	
   -­‐-­‐-­‐	
   [1,10]	
  
Saídas Sucesso	
  no	
  jogo	
   -­‐-­‐-­‐	
   {Perdeu,	
  Ganhou}	
  
Problema	
  5	
  
3	
  –	
  Projetar	
  algoritmo	
  
N1	
  ==	
  N2	
  
N2	
  ==	
  N3	
  perdeu	
  
F	
  
perdeu	
  
V	
  
ganhou	
  
F	
   V	
  
Problema	
  5	
  
3	
  –	
  Projetar	
  algoritmo	
  
V	
  
F	
  
F	
  
início	
  
Gerar	
  N1,	
  N2,	
  N3	
  
Ganhou!	
  
fim	
  
N1	
  ==	
  N2	
  
Perdeu!	
  Perdeu!	
  
N2	
  ==	
  N3	
  
V	
  
	
  
Como	
  gerar	
  números	
  
aleatórios?	
  
Problema	
  5	
  
4	
  –	
  Codificar	
  em	
  Python 
# Biblioteca de nos. aleatorios 
import random 
 
# Gera nos. aleatorios entre 1 e 10 
n1 = random.randint(1,10) 
n2 = random.randint(1,10) 
n3 = random.randint(1,10) 
 
if (n1 == n2): 
 if (n2 == n3): 
 print("Ganhou") 
 else: 
 print("Perdeu") 
else: 
 print("Perdeu") 
Módulos	
  em	
  Python	
  (Bibliotecas)	
  
¨  Bibliotecas	
  organizam	
  
funções	
  bastante	
  
u?lizadas	
  em	
  arquivos	
  
diferentes.	
  
¨  Assim,	
  elas	
  podem	
  ser	
  
chamadas	
  quando	
  
necessário,	
  sem	
  ter	
  de	
  
reescrever	
  tudo.	
  
¨  Em	
  Python,	
  as	
  
bibliotecas	
  também	
  são	
  
conhecidas	
  como	
  
módulos.	
   Uso:	
  <módulo>.<função>

Outros materiais