Baixe o app para aproveitar ainda mais
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
Compartilhar