computação 1 - python aula 7 - teórica estrutura de...

Post on 14-Jul-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Computacao 1 - Python

Aula 7 - Teorica

Estrutura de Repeticao com Teste de Parada:

while

Joao Carlos, Carla Delgado, Ana Luisa Duboc

1/ 18

Estrutura de Repeticao while

Permite que o programador especifique que a funcao deve repetirum conjunto de comandos enquanto uma dada condicao forverdadeira.

while <condicao>:<sequencia de comandos>

Exemplo

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

Joao Carlos, Carla Delgado, Ana Luisa Duboc

2/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ True

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ True

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ Truelistax=[’x’,’x’]

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ Truelistax=[’x’,’x’]numero = 0

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ Truelistax=[’x’,’x’]numero = 0

0 > 0

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ Truelistax=[’x’,’x’]numero = 0

0 > 0 ⇒ False

Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

1 de f exemplo1 ( numero ) :2 ”Funcao que c r i a uma l i s t a formada por s t r i n g s ’ x ’ . A quant i dade de s t r i n g s ’ x ’

e i g u a l a numero .3 Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t a x = [ ]7 wh i l e numero > 0 :8 l i s t . append ( l i s t a x , ’ x ’ )9 numero = numero − 1

10 r e t u r n l i s t a x

exemplo1(2)

listax=[]

2 > 0 ⇒ Truelistax=[’x’]numero = 1

1 > 0 ⇒ Truelistax=[’x’,’x’]numero = 0

0 > 0 ⇒ False

return [’x’,’x’]Joao Carlos, Carla Delgado, Ana Luisa Duboc

3/ 18

Estrutura de Repeticao while

while <condicao>:<sequencia de comandos>

A <condicao> e uma expressao ou dado do tipo booleano (True ouFalse), tal como os testes usados com o comando IF.

Estrutura tambem conhecida como laco de repeticao ou “loop”: obloco de comandos e sequencialmente repetido tantas vezes quanto oteste da condicao for verdadeiro.

Somente quando a condicao se torna falsa a proxima instrucao apos obloco de comandos associado ao while e executada (fim do laco).

Joao Carlos, Carla Delgado, Ana Luisa Duboc

4/ 18

Estrutura de Repeticao while

while <condicao>:<sequencia de comandos>

Se a <condicao> da estrutura while ja for falsa desde o inıcio, o bloco de<sequencia de comandos> associado a ela nunca e executado.

Deve haver algum processo dentro do bloco de <sequencia decomandos> que torne a condicao falsa e a repeticao seja encerrada, ouum erro GRAVE ocorrera: sua funcao ficara rodando para sempre!!

Joao Carlos, Carla Delgado, Ana Luisa Duboc

5/ 18

Estrutura de Repeticao while

1 de f e xemp l owh i l e 0 ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t anum = [ ]7 wh i l e numero > 0 :8 l i s t anum [ numero−1] = numero9 numero = numero −1

10 r e t u r n l i s t anum

Qual o problema desta funcao?

Joao Carlos, Carla Delgado, Ana Luisa Duboc

6/ 18

Estrutura de Repeticao while

1 de f e xemp l owh i l e 0 ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t anum = [ ]7 wh i l e numero > 0 :8 l i s t anum [ numero−1] = numero9 numero = numero −1

10 r e t u r n l i s t anum

Qual o problema desta funcao?

1 de f e xemp l owh i l e 1 ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t anum = numero ∗ [ 0 ]7 wh i l e numero > 0 :8 l i s t anum [ numero−1] = numero9 numero = numero −1

10 r e t u r n l i s t anum

Joao Carlos, Carla Delgado, Ana Luisa Duboc

6/ 18

Estrutura de Repeticao while

1 de f e xemp l owh i l e 0 ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t anum = [ ]7 wh i l e numero > 0 :8 l i s t anum [ numero−1] = numero9 numero = numero −1

10 r e t u r n l i s t anum

Qual o problema desta funcao?

1 de f e xemp l owh i l e 2 ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de Retorno : l i s t ”56 l i s t anum = [ ]7 wh i l e numero > 0 :8 l i s t . i n s e r t ( l i s t anum , 0 , numero )9 numero = numero −1

10 r e t u r n l i s t anum

Joao Carlos, Carla Delgado, Ana Luisa Duboc

7/ 18

Estrutura de Repeticao while

Exemplo

1 de f exemplo2 ( numero ) :23 ”Funcao que conta quantas ve z e s s e pode r e d u z i r em 1 o v a l o r do numero passado

como parametro a t e chega r a z e ro .4 Parametro de ent r ada : i n t5 Va l o r de r e t o r n o : s t r ”67 contador = 0 # v a r i a v e l c on tadora8 wh i l e numero > 0 :9 numero = numero − 1

10 contador = contador + 111 r e t u r n ”A funcao rodou ” + s t r ( c ontador ) + ” ve ze s . ”

Joao Carlos, Carla Delgado, Ana Luisa Duboc

8/ 18

Estrutura de Repeticao while

Faca uma funcao que determina a soma de todos os numeros paresdesde 100 ate 200.

Joao Carlos, Carla Delgado, Ana Luisa Duboc

9/ 18

Estrutura de Repeticao while

Faca uma funcao que determina a soma de todos os numeros paresdesde 100 ate 200.

1 de f somaPares ( ) :23 ”Funcao que c a l c u l a a soma dos numeros pa r e s de 100 a 2004 Parametro de ent r ada : nao tem5 Va l o r de r e t o r n o : i n t ”67 soma = 0 # v a r i a v e l acumuladora8 contador = 100 # o contador nao p r e c i s a comecar de ze ro9 wh i l e c ontador <= 200 :

10 soma = soma + contador11 contador = contador + 2 # o contador nao p r e c i s a i r de 1 em 112 r e t u r n soma

Joao Carlos, Carla Delgado, Ana Luisa Duboc

9/ 18

Estrutura de Repeticao while

A funcao abaixo apresenta algum problema?

1 de f exemplo3 ( ) :23 ”Parametro de ent r ada : nao tem4 Va l o r de r e t o r n o : i n t ”56 x = 107 wh i l e x > 8 :8 x = x+ 29 r e t u r n x

Joao Carlos, Carla Delgado, Ana Luisa Duboc

10/ 18

Estrutura de Repeticao while

A funcao abaixo apresenta algum problema?

1 de f exemplo3 ( ) :23 ”Parametro de ent r ada : nao tem4 Va l o r de r e t o r n o : i n t ”56 x = 107 wh i l e x > 8 :8 x = x+ 29 r e t u r n x

Sendo X igual a 10, o teste X > 8 e inicialmente verdadeiro.

Enquanto a condicao for verdadeira, apenas o comandoX = X + 2 sera executado. Porem incrementar a variavel Xnao altera a validade da condicao X > 8.

Logo, a repeticao segue indefinidamente! (Loop infinito)

Joao Carlos, Carla Delgado, Ana Luisa Duboc

10/ 18

Estrutura de Repeticao while

O que faz a seguinte funcao ?

1 de f soma ( numero ) :23 ”Parametro de ent r ada : i n t4 Va l o r de r e t o r n o : i n t ”56 soma = 07 contador = 08 wh i l e c ontador < numero :9 soma = soma + contador

10 contador = contador + 111 r e t u r n soma

Joao Carlos, Carla Delgado, Ana Luisa Duboc

11/ 18

Estrutura de Repeticao while

Faca uma funcao que gere numeros aleatorios entre 1 e 10 e calcule a soma destesnumeros ate que seja gerado o numero 5.Use a funcao randint(inicio,fim) do modulo random para gerar um numero aleatorio,onde os valores de (inıcio,fim) representam o intervalo desejado para os numeros aserem gerados.Exemplo: randint(1,10) → gera um numero aleatorio entre 1 e 10, inclusive.

Joao Carlos, Carla Delgado, Ana Luisa Duboc

12/ 18

Estrutura de Repeticao while

Faca uma funcao que gere numeros aleatorios entre 1 e 10 e calcule a soma destesnumeros ate que seja gerado o numero 5.Use a funcao randint(inicio,fim) do modulo random para gerar um numero aleatorio,onde os valores de (inıcio,fim) representam o intervalo desejado para os numeros aserem gerados.Exemplo: randint(1,10) → gera um numero aleatorio entre 1 e 10, inclusive.

1 from random import r a nd i n t23 de f somaA l e a to r i a ( ) :45 ”Parametro de ent r ada : nao tem6 Va l o r de r e t o r n o : i n t ”78 soma = 09 numero = r and i n t ( 1 , 10)

10 wh i l e numero != 5 :11 soma = soma + numero12 numero = r and i n t ( 1 , 10)13 r e t u r n soma

Joao Carlos, Carla Delgado, Ana Luisa Duboc

12/ 18

Estrutura de Repeticao while

Faca uma funcao que gere numeros aleatorios entre 1 e 10 e calcule a soma destesnumeros ate que seja gerado o numero 5.Use a funcao randint(inicio,fim) do modulo random para gerar um numero aleatorio,onde os valores de (inıcio,fim) representam o intervalo desejado para os numeros aserem gerados.Exemplo: randint(1,10) → gera um numero aleatorio entre 1 e 10, inclusive.

Solucao usando listas.

1 from random import r a nd i n t23 de f somaA l e a to r i a ( ) :45 ”Parametro de ent r ada : nao tem6 Va l o r de r e t o r n o : i n t ”78 l i s t a = [ ]9 numero = r and i n t ( 1 , 10)

10 wh i l e numero != 5 :11 l i s t . append ( l i s t a , numero )12 numero = r and i n t ( 1 , 10)13 r e t u r n sum ( l i s t a )

Joao Carlos, Carla Delgado, Ana Luisa Duboc

13/ 18

Estrutura de Repeticao while

Faca uma funcao que some 10 numeros gerados aleatoriamente no intervalo de1 a 5.

Joao Carlos, Carla Delgado, Ana Luisa Duboc

14/ 18

Estrutura de Repeticao while

Faca uma funcao que some 10 numeros gerados aleatoriamente no intervalo de1 a 5.

1 from random import r a nd i n t23 de f soma10 ( ) :45 ”Parametro de ent r ada : nao tem6 Va l o r de r e t o r n o : i n t ”78 soma = 09 contador = 0

10 wh i l e c ontador < 10 :11 numero = r and i n t ( 1 , 5 )12 soma = soma + numero13 contador = contador + 114 r e t u r n soma

Joao Carlos, Carla Delgado, Ana Luisa Duboc

14/ 18

Estrutura de Repeticao while

Para cada um dos itens abaixo, faca uma tabela mostrando os valores que i , j e n

assumem depois de cada execucao do laco while.

def ...i = 0j = 10n = 0while i < j:

i = i + 1j = j - 1n = n + 1

def ...i = 0j = 0n = 0while i < 10:

i = i + 1n = n + i + jj = j + 1

Joao Carlos, Carla Delgado, Ana Luisa Duboc

15/ 18

Estrutura de Repeticao while

Faca uma funcao que dada uma lista de tamanho desconhecidocontendo as notas de uma turma de alunos, retorne a media dessasnotas.

Joao Carlos, Carla Delgado, Ana Luisa Duboc

16/ 18

Autores

Joao C. P. da Silva Lattes

Carla Delgado Lattes

Ana Luisa Duboc Lattes

Colaboradores

Fabio Mascarenhas Lattes

Anamaria Martins Moreira Lattes

Leonardo de Oliveira Carvalho Lattes

Charles Figueiredo de Barros Lattes

Fabrıcio Firmino de Faria Lattes

Joao Carlos, Carla Delgado, Ana Luisa Duboc

17/ 18

Computacao 1 - Python

Aula 7 - Teorica

Estrutura de Repeticao com Teste de Parada:

while

Joao Carlos, Carla Delgado, Ana Luisa Duboc

18/ 18

top related