Buscar

07 - Estruturas de controle (elif)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Estruturas de Controle
elif
Linguagem de Programação I - Cátia Khouri & Fábio Moura
1
A estrutura de seleção múltipla elif
2/26/2009
Linguagem de Programação I - Estruturas de Controle
2
É utilizada quando se quer especificar ações condicionadas a uma série de decisões nas quais uma variável ou expressão é testada para cada um dos valores constantes que ela pode assumir
Como se trata de uma estrutura de seleção múltipla, podemos dizer que a estrutura elif equivale a uma série de if’s (ou if-else’s) em que as condições consistem sempre em comparar uma mesma variável (ou expressão) com diferentes valores possíveis
Consiste de uma série de rótulos case e um caso default
2
A estrutura de seleção múltipla elif
2/26/2009
Linguagem de Programação I - Estruturas de Controle
3
if expressao1:
 ações_expr1_true
elif expressao2:
 ações_expr2_true
 :
elif expressaoN:
 ações_exprN_true
else:
 ações_nenhuma_das_anteriores
3
Exemplo
2/26/2009
Linguagem de Programação I - Estruturas de Controle
4
Considere que em uma avaliação aplicada são atribuídos conceitos aos alunos: A, B, C, D, e E
Faça um programa que receba o conceito atingido por cada aluno e conte o número de ocorrências de cada conceito na turma, isto é, quantos conceitos A, quantos conceitos B, etc.
4
Exemplo
2/26/2009
Linguagem de Programação I - Estruturas de Controle
5
contA = contB = contC = contD = contE = 0
total = 0
print "Forneca os conceitos."
print "Digite '0' para terminar."
print
conceito = ‘’
while conceito != '0':
5
Exemplo (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
6
while conceito != '0':
 total += 1
 print "Digite o conceito %d:" % total,
 conceito = raw_input()
 if conceito == 'A' or conceito == 'a':
 contA += 1
 elif conceito == 'B' or conceito == 'b':
 contB += 1
 elif conceito == 'C' or conceito == 'c':
 contC += 1
6
Exemplo (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
7
 elif conceito == 'D' or conceito == 'd':
 contD += 1
 elif conceito == 'E' or conceito == 'e':
 contE += 1
 elif conceito != '0':
 print "Este conceito nao existe, digite 
		 um novo conceito."
 total -= 1
7
Exemplo (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
8
print
print "O totais por conceito sao:"
print "Conceito A:", contA
print "Conceito B:", contB
print "Conceito C:", contC
print "Conceito D:", contD
print "Conceito E:", contE
8
2/26/2009
Linguagem de Programação I - Estruturas de Controle
9
contA = contB = contC = contD = contE = total = 0
print "Forneca os conceitos."
print "Digite '0' para terminar."
print
conceito = ""
while conceito != '0':
 total += 1
 print "Digite o conceito %d:" % total,
 conceito = raw_input()
 if conceito == 'A' or conceito == 'a':
 contA += 1
 elif conceito == 'B' or conceito == 'b':
 contB += 1
 elif conceito == 'C' or conceito == 'c':
 contC += 1
9
2/26/2009
Linguagem de Programação I - Estruturas de Controle
10
 elif conceito == 'D' or conceito == 'd':
 contD += 1
 elif conceito == 'E' or conceito == 'e':
 contE += 1
 elif conceito != '0':
 print "Este conceito nao existe, digite um novo 
	 conceito."
 total -= 1
print
print "O totais por conceito sao:"
print "Conceito A:", contA
print "Conceito B:", contB
print "Conceito C:", contC
print "Conceito D:", contD
print "Conceito E:", contE
10
Expressões condicionais com operador ternário
2/26/2009
Linguagem de Programação I - Estruturas de Controle
11
Motivação: atribuir um valor baseado em uma condicional em uma única linha (oposto à instrução if-else)
Exemplo: encontrar o menor valor entre x e y
>>> x, y = 4, 3
>>> if x < y:
. . .	menor = x
. . . else:
. . .	menor = y
. . .
>>> menor
3
>>> menor = x if x < y else y
>>> menor
3
11
A instrução break
2/26/2009
Linguagem de Programação I - Estruturas de Controle
12
A instrução break termina o laço atual e cancela a execução da próxima instrução
O uso mais comum ocorre quando uma condição externa é disparada (geralmente testada com a instrução if)
Pode ser usada tanto em laços while quanto em for
num = int(raw_input("Digite um numero inteiro: "))
cont = num / 2
while cont > 0:
 if num % cont == 0:
 print cont, 'e o maior fator de', num
 break
 cont -= 1
12
A instrução continue
2/26/2009
Linguagem de Programação I - Estruturas de Controle
13
Salta os comandos restantes do corpo do laço e prossegue com a próxima repetição
Pode ser usada tanto em laços while quanto em for
Exemplo:
Solicitar ao usuário que entre com a senha
Se a senha fizer parte da lista de senhas corretas, emitir a mensagem ‘Acesso permitido!’
Caso contrário permitir uma nova tentativa
Ao final de três tentativas incorretas, imprimir a mensagem ‘Acesso negado!’
13
2/26/2009
Linguagem de Programação I - Estruturas de Controle
14
listaSenhas = ['uesb123', 'dce456', 'compt2009']
valida = False
cont = 3
while cont > 0:
 entrada = raw_input("Entre com a senha: ")
 # testa se a senha eh valida
 for cadaSenha in listaSenhas:
 if entrada == cadaSenha:
 valida = True
 break
 if not valida: 			# (ou valida == 0)
 print "Senha invalida!"
 cont -= 1
 continue
 else:
 break
print "Acesso permitido!" if valida else "Acesso negado!"
14
A instrução pass
2/26/2009
Linguagem de Programação I - Estruturas de Controle
15
Por não utilizar chaves para delimitar blocos de código, em alguns lugares o código é sintaticamente requerido em Python
Não existe o equivalente para chaves vazias ({ }) em Python
Se houver uma instrução em Python que requer um sub-bloco de código e este não estiver presente, ocorrerá um erro de sintaxe
Para evitar este erro, existe a instrução pass, que não faz absolutamente nada
Esta instrução é útil durante o desenvolvimento, quando queremos testar parte do código escrito
if escolha_usuario == ‘faca_calc': 
 pass 
else: 
 pass
15
Instrução else
2/26/2009
Linguagem de Programação I - Estruturas de Controle
16
Em C e na maioria das outras linguagens, não encontramos uma instrução else fora de instruções condicionais
Python oferece o else para laços while e for:
Uma cláusula else em laços só será executada se o laço terminar a sua execução, ou seja, desde que não seja abandonado por break
16
Instrução else
2/26/2009
Linguagem de Programação I - Estruturas de Controle
17
num = int(raw_input("Digite um numero inteiro: "))
cont = num / 2
while cont > 1:
 if num % cont == 0:
 print 'o maior fator de %d eh %d' % \
 (num, cont)
 break
 cont -= 1
else:
 print num, "eh primo"
17
Instruções auxiliares para laços e condicionais
2/26/2009
Linguagem de Programação I - Estruturas de Controle
18
Instrução
Auxiliar
if
while
for
elif
•
else
•
•
•
break
•
•
continue
•
•
pass
•
•
•
18
Operadores lógicos
2/26/2009
Linguagem de Programação I - Estruturas de Controle
19
and (“e” lógico)
>>> 2 < 4 and 2 == 4
False
or (“ou” lógico)
>>> 2 > 4 or 2 < 4
True
not (negação)
>>> not 6.2 <= 6
True
Outra forma do and
>>>> 3 < 4 and 4 < 5		>>>> 3 < 4 < 5
True					True
19
Exercícios
2/26/2009
Linguagem de Programação I - Estruturas de Controle
20
Observe o código a seguir:
# instrução A
if x > 0:
 # instrução B
 pass
elif x < 0:
 # instrução C
 pass
else:
 # instrução D
 pass
# instrução E
Quais das instruções acima (A, B, C, D, E) serão executadas se x < 0?
Quais instruções serão executadas se x == 0?
Quais instruções serão executadas se x > 0?
20
Exercícios (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
21
Escreva um programa que tenha como entrada 3 (três) números: (i)nício, (f)inal e (s)alto. Conte de i a f em incrementos de s, inclusive i e f.
Por exemplo, se as entradas são i == 2, f == 26, e s == 4, o programa deverá imprimir: 2, 6, 10, 14, 18, 22, 26
Quais os parâmetros poderiam ser passados para a função interna range() se quiséssemos que as seguintes listas
fossem geradas?
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[3, 6, 9, 12, 15, 18]
[-20, 200, 420, 640, 860]
21
Exercícios (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
22
Escreva um programa que receba um inteiro como entrada e imprima uma lista com todos os seus fatores, incluindo 1 e ele mesmo.
Exemplo: 
	Entre com um número: 15
	Fatores: [15, 5, 3, 1]
Escreva um programa para determinar se um número inteiro fornecido pelo usuário é ou não um número perfeito.
Um número perfeito é aquele cuja soma dos fatores (exceto ele mesmo) é igual a ele.
Por exemplo, os fatores de 6 são 1, 2, 3 e 6. Uma vez que 1 + 2 + 3 é igual a 6, então ele é considerado um número perfeito.
22
Exercícios (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
23
O fatorial de um número é definido como o produto de todos os valores de um até o próprio número.
N! = 1 * 2 * 3 * ... * (N-2) * (N-1) * N
Assim, 4! = 1 * 2 * 3 * 4
Escreva um programa que dado N, retorne N!
A seqüência de Números de Fibonacci é 1, 1, 2, 3, 5, 8, 13, 21, etc. Ou seja, o próximo valor na seqüência é a soma dos dois valores anteriores.
Escreva um programa que, dado N, mostre o valor do N-ésimo número de Fibonacci.
Por exemplo, o primeiro número de Fibonacci é 1, o sexto é 8, e assim por diante.
23
Exercícios (cont.)
2/26/2009
Linguagem de Programação I - Estruturas de Controle
24
Escreva um programa para determinar o número total de vogais, consoantes e palavras (separadas por espaços) em uma seqüência de texto.
Exemplo:
	Digite uma frase: O rato roeu a roupa do rei de Roma
	A sua frase possui:
	16 vogais
	10 consoantes
	9 palavras
24

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando