Buscar

Slides Estrutura de Repeticao - While (1).pdf

Prévia do material em texto

Aula 9 – Estrutura de Repetição 
com While 
Computação I - 2012/2 2 
Estrutura de repetição 
 
 
 
Permite que o programador especifique que o programa deve repetir um 
conjunto de comandos enquanto uma dada condição for verdadeira. 
 
 
 
 
O que fazer para fornecer 
mais de um número antes 
do programa terminar ? 
def main(): 
 
 X= input("Me forneça um inteiro: ") 
 
 if X > 0 : 
 print "%d é um inteiro positivo" % X 
 
 else : 
 
 if X < 0 : 
 print "%d é um inteiro negativo" % X 
 
 else : 
 print "%d é zero" % X 
 
if __name__ == "__main__": 
 main() 
Computação I - 2012/2 3 
Estrutura de repetição 
 
 
 
 
 
 
def main(): 
 
 X = raw_input("Me forneça um inteiro: ") 
 while X != “fim”: 
 
 X = int(X) 
 if X > 0 : 
 print "%d é um inteiro positivo" % X 
 else : 
 if X < 0 : 
 print "%d é um inteiro negativo" % X 
 else : 
 print "%d é zero" % X 
 X = raw_input("Me forneça um inteiro: “) 
 
 
if __name__ == "__main__": 
 main() 
Permite que o programador especifique que o programa deve repetir um 
conjunto de comandos enquanto uma dada condição for verdadeira. 
 
while expressão : 
 comandos 
Computação I - 2012/2 4 
Estrutura de repetição 
 
 
 
 
 
 
def main(): 
 
 X = raw_input("Me forneça um inteiro: “) 
 while X != “fim”: 
 
 X = int(X) 
 if X > 0 : 
 print "%d é um inteiro positivo" % X 
 else : 
 if X < 0 : 
 print "%d é um inteiro negativo" % X 
 else : 
 print "%d é zero" % X 
 X = raw_input("Me forneça um inteiro: ") 
 
 print “Tchau :~)” 
if __name__ == "__main__": 
 main() 
while expressão : 
 comandos 
Permite que o programador especifique que o programa deve repetir um 
conjunto de comandos enquanto uma dada condição for verdadeira. 
 
Computação I - 2012/2 5 
Estrutura de repetição - while 
 
 
 
While condição: 
 comandos 
 
 
● A condição é similar a usada no IF, incluindo and e or. 
 
● Repete os comandos enquanto a condição for verdadeira. 
 
● Deve haver algum processo dentro do bloco de comandos que torne a 
condição falsa e a repetição seja encerrada. 
 
 
Computação I - 2012/2 6 
Estrutura de repetição - while 
 
 
 
Exemplo: 
 
def main(): 
 
 contador = 0 
 while contador < 10 : 
 print contador 
 contador = contador + 1 
 
if __name__ == "__main__": 
 main() 
Variável contadora 
Computação I - 2012/2 7 
Estrutura de repetição - while 
 
 
 
Formas de encerrar o “loop” : 
 
●Quando usamos um contador para encerrar o processo de repetição. 
 
While contador < 10: 
 
●Quando usamos um valor lido para encerrar o processo de repetição 
(Flag). 
 
While X != “Fim”: 
Computação I - 2012/2 8 
Estrutura de repetição - while 
 
 
 
Exercício: Faça um programa que leia 10 números inteiros e imprima a 
sua soma. 
 
def main(): 
 
 contador = 0 
 soma = 0 
 while contador < 10: 
 num = input("Digite um número:") 
 soma = soma + num 
 contador = contador + 1 
 
 print "Soma dos 10 números: %d" %soma 
 
if __name__ == "__main__": 
 main() 
Variável acumuladora Um contador encerra 
a repetição 
Computação I - 2012/2 9 
Estrutura de repetição - while 
 
 
 
Exercício: Faça um programa que leia um conjunto de números até que 
seja digitado um número negativo. Imprima a soma dos números sem 
considerar o número negativo digitado. 
 
def main(): 
 
 soma = 0 
 num = input("Digite um número:") 
 while num >= 0: 
 soma = soma + num 
 num = input("Digite um número:") 
 
 print "Soma dos 10 números: %d" %soma 
 
if __name__ == "__main__": 
 main() 
 
 
Um flag (num >= 0) encerra 
a repetição 
O número é lido pelo menos uma vez antes, 
pois é testado na condição do While. 
Computação I - 2012/2 10 
Estrutura de repetição - While 
 
 
 
Faça um programa que determina a soma de todos os números 
pares desde 100 até 200. 
def main(): 
 Soma = 0 
 Par = 100 
 while Par <= 200 : 
 Soma = Soma + Par 
 Par = Par + 2 
 print Soma 
if __name__ == "__main__": 
 main() 
O Contador não precisa começar 
de 0, e nem ir de 1 em 1. 
Computação I - 2012/2 11 
Estrutura de repetição - While 
 
 
 
O programa abaixo apresenta algum problema? 
def main(): 
 
 X = 10 
 
 while X > 8 : 
 
 print X 
 
 X = X + 2 
 
if __name__ == "__main__": 
 main() 
Computação I - 2012/2 12 
Estrutura de repetição - While 
 
 
 
O programa abaixo apresenta algum problema? 
def main(): 
 
 X = 10 
 
 while X > 8 : 
 
 print X 
 
 X = X + 2 
 
if __name__ == "__main__": 
 main() 
Cuidado para o programa 
não entrar num loop 
infinito!!! 
Computação I - 2012/2 13 
Estrutura de repetição - While 
 
 
 
Validando Dados: 
 
Faça um programa que leia duas notas e calcule a sua média. Use uma 
função separada para calcular a média. Caso o usuário digite notas 
inválidas ( < 0 ou > 10), o programa deve mostrar uma mensagem de 
“nota inválida” e pedir para o usuário digitar novamente. O programa 
deve se repetir até que notas válidas sejam digitadas. 
Computação I - 2012/2 14 
Estrutura de repetição - While 
 
 
 
Resposta: 
 
def media(n1,n2): 
 return (n1+n2)/2.0 
 
def main(): 
 
 p1,p2 = input("Digite as notas da p1 e da p2: ") 
 while p1 < 0 or p1 > 10.0 or p2 < 0 or p2 > 10.0: 
 print "Uma das notas está inválida. A nota deve estar entre 0 e 10." 
 p1,p2 = input("Digite novamente as notas: ") 
 
 print "A média das notas é %.1f" %media(p1,p2) 
 
if __name__ == "__main__": 
 main() 
Computação I - 2012/2 15 
Estrutura de repetição - While 
 
 
 
Criando Menus: 
 
Faça um programa que apresente na tela o seguinte menu: 
 
1 – Somar dois números 
2 – Multiplicar dois números 
3 – Sair 
Digite a sua opção: 
 
A opção 1 soma dois números digitados e imprime a soma na tela. 
A opção 2 multiplica dois números digitados e imprime a multiplicação na 
tela. 
A opção 3 encerra o programa. 
 
O programa deve se repetir até que seja digitada a opção 3. 
Computação I - 2012/2 16 
Resposta 1 
 
 
 
def main(): 
 print "1 - Somar os dois números" 
 print "2 - Multiplicar os dois números" 
 print "3 - Sair" 
 op = input("Digite a sua opção: ") 
 
 while op != 3: 
 if op == 1 or op == 2: 
 n1,n2 = input("Digite dois números:") 
 if op == 1: 
 print "Soma: %d\n" %(n1+n2) 
 else: 
 print "Multiplicação: %d\n" %(n1*n2) 
 else: 
 print "opção inválida\n" 
 
 print "1 - Somar os dois números" 
 print "2 - Multiplicar os dois números" 
 print "3 - Sair" 
 op = input("Digite a sua opção: ") 
 
if __name__ == "__main__": 
 main() 
O menu é obrigatoriamente colocado 
antes, pois a variável op vai ser testada 
na condição. 
Computação I - 2012/2 17 
Resposta 2 
 
 
 
def main(): 
 
 op = 4 
 
 while op != 3: 
 print "1 - Somar os dois números" 
 print "2 - Multiplicar os dois números" 
 print "3 - Sair" 
 op = input("Digite a sua opção: ") 
 
 if op == 1 or op == 2: 
 n1,n2 = input("Digite dois números:") 
 if op == 1: 
 print "Soma: %d\n" %(n1+n2) 
 else: 
 print "Multiplicação: %d\n" %(n1*n2) 
 elif op != 3: 
 print "opção inválida\n" 
 
if __name__ == "__main__": 
 main() 
A variável op é inicializada com qualquer 
valor diferente de 3,só para entrar no while. 
O menu é colocado uma única vez no 
Início do while. 
Computação I - 2012/2 18 
Resposta 3 
 
 
 
def main(): 
 
 while True: 
 print "1 - Somar os dois números" 
 print "2 - Multiplicar os dois números" 
 print "3 - Sair" 
 op = input("Digite a sua opção: ") 
 
 if op == 1 or op == 2: 
 n1,n2 = input("Digite dois números:") 
 if op == 1: 
 print "Soma: %d\n" %(n1+n2) 
 else: 
 print "Multiplicação: %d\n" %(n1*n2) 
 elif op != 3: 
 print "opção inválida\n" 
 else: 
 break 
 
if __name__ == "__main__": 
 main() 
Executa os comandos indefinidamente, 
até que alguma coisa interrompa a execução 
Comando que interrompe a execução 
de uma estrutura de repetição 
Computação I - 2012/2 19 
Aula 9 – Estrutura de Repetição - 
While 
	Slide Number 1
	Estrutura de repetição
	Estrutura de repetição
	Estrutura de repetição
	Estrutura de repetição - while
	Estrutura de repetição - while
	Estrutura de repetição - while
	Estrutura de repetição - while
	Estrutura de repetição - while
	Estrutura de repetição - While
	Estrutura de repetição - While
	Estrutura de repetição - While
	Estrutura de repetição - While
	Estrutura de repetição - While
	Estrutura de repetição - While
	Resposta 1
	Resposta 2
	Resposta 3
	Slide Number 19

Continue navegando