Escolar Documentos
Profissional Documentos
Cultura Documentos
Vanessa Braganholo
vanessa@ic.uff.br
Estruturas de Repeti•‹o
} Permitem que um bloco de comandos seja executado
diversas vezes
} Dois tipos de Repeti•‹o:
} Repeti•‹o condicional: executa um bloco de c—digo
enquanto uma condi•‹o l—gica for verdadeira (while)
} Repeti•‹o cont‡vel: executa um bloco de c—digo um
nœmero predeterminado de vezes (for)
2
Repeti•‹o condicional
Pseudoc—digo Python
... ...
enquanto CONDI‚ÌO while CONDI‚ÌO:
fa•a INSTRU‚ÌO 1;
INSTRU‚ÌO 1; INSTRU‚ÌO 2;
INSTRU‚ÌO 2; ...
... INSTRU‚ÌO N;
INSTRU‚ÌO N; ...
...
3
Repeti•‹o condicional
Se Enquanto
F V
Condi•‹o?
F V
Condi•‹o?
Fc—digo
C—digo
4
Repeti•‹o Condicional
} Executa o bloco de instru•›es enquanto a condi•‹o
for verdadeira
} A condi•‹o Ž uma express‹o booleana que pode fazer
uso de quaisquer operadores
} O bloco de c—digo pode conter um ou mais comandos
} O in’cio e o fim do bloco s‹o definidos de acordo com a
endenta•‹o
5
Repeti•‹o Condicional
} Executa o bloco de instru•›es enquanto a condi•‹o for
verdadeira
} A condi•‹o Ž uma express‹o booleana que pode fazer uso
de quaisquer operadores
} O bloco de instru•›es pode conter um ou mais comandos
} O in’cio e o fim do bloco s‹o definidos de acordo com a
endenta•‹o
7
Exemplo 1
numero = int(input('Digite um numero: '))
while numero > 0:
numero = numero - 1
print(numero)
print('Boom!!')
8
Exemplo 2 Ð Contador
} Programa que imprime a quantidade de nœmeros pares de
100 atŽ 200, incluindo-os
9
Exemplo 2 Ð Contador
} Programa que imprime a quantidade de nœmeros pares de
100 atŽ 200, incluindo-os
num = 100
contador_pares = 0
while num <= 200:
if num % 2 == 0:
contador_pares = contador_pares + 1
num = num + 1
print(contador_pares)
10
Desafio
} Como fazer para contar a quantidade de nœmeros pares
entre dois nœmeros quaisquer?
11
Desafio
} Como fazer para contar a quantidade de nœmeros pares
entre dois nœmeros quaisquer?
12
Exemplo 3 - Acumulador
} Programa que imprime a soma de todos os nœmeros
pares entre dois nœmeros quaisquer, incluindo-os
13
Exemplo 4 Ð Fatorial de um nœmero
numero = int(input('Digite um nœmero inteiro positivo: '))
fatorial = 1
while numero > 0:
fatorial = fatorial * numero
numero = numero Ð 1
print('O fatorial desse nœmero Ž ', fatorial)
14
Exemplo 5
} Qual a sa’da do programa abaixo?
i = 1
while True:
i = i + 1
print(i)
15
Exemplo 5
} Qual a sa’da do programa abaixo?
i = 1
while True:
i = i + 1
print(i)
16
Exerc’cio
} Fa•a um programa que gere nœmeros inteiros aleat—rios
entre 1 e 10 e calcule a soma desses nœmeros, atŽ que
seja gerado um nœmero num que foi informado pelo
usu‡rio anteriormente.
} Dica 1: antes de mais nada, pe•a para o usu‡rio digitar um
nœmero entre 1 e 10 e guarde o valor em num
} Dica2: use a fun•‹o randint(inicio, fim) do m—dulo random para
gerar um nœmero aleat—rio entre 1 e 10
17
Solu•‹o do Exerc’cio
from random import randint
18
Solu•‹o do Exerc’cio
from random import randint
19
Solu•‹o do Exerc’cio
from random import randint
20
Repeti•‹o Cont‡vel
} E se o enunciado fosse ÒFa•a um programa que soma X
nœmeros gerados aleatoriamente no intervalo de 1 a 10,
onde X Ž informado pelo usu‡rioÓ ??
21
Repeti•‹o Cont‡vel
from random import randint
22
Repeti•‹o Cont‡vel
from random import randint
Pseudoc—digo Python
... ...
para VARIçVEL variando de for VARIçVEL in (faixa-
VALOR INICIAL a VALOR de-valores):
FINAL com passo
INSTRU‚ÌO 1
INCREMENTO
INSTRU‚ÌO 2
INSTRU‚ÌO 1
...
INSTRU‚ÌO 2
INSTRU‚ÌO N
...
...
INSTRU‚ÌO N
...
24
Faixa de Valores
} Os valores podem ser listados explicitamente
} Exemplo:
for x in (0,1,2,3,4):
print(x)
25
Faixa de Valores
} Os valores podem ser listados explicitamente
} Exemplo:
for x in (0,1,2,3,4):
print(x)
for x in range(0,5,1):
print(x)
incremento (opcional) Ð
quando omitido,
incremento = 1
in’cio (opcional) Ð
quando omitido,
in’cio = 0 fim (obrigat—rio)
27
Exemplo de Range
for variavel in range(6):
print(variavel)
>>>
0
1
2
3
4
5
Exemplo de Range
for variavel in range(1,6):
print(variavel)
>>>
1
2
3
4
5
Exemplo de Range
for variavel in range(2,10,2):
print(variavel)
>>>
2
4
6
8
Exemplo de Range
for variavel in range(10,0,-2):
print(variavel)
>>>
10
8
6
4
2
Retomando o Exemplo de Soma de Nœmeros
Aleat—rios
} Fa•a um programa que soma X nœmeros gerados
aleatoriamente no intervalo de 1 a 10, onde X Ž
informado pelo usu‡rio
32
Soma de Nœmeros Aleat—rios com while
from random import randint
33
Soma de Nœmeros Aleat—rios com while
from random import randint
35
Exemplo
} Programa que imprime a soma de todos os nœmeros
pares entre dois nœmeros quaisquer, incluindo-os
36
Fatorial
} Programa para calcular fatorial de um nœmero:
37
Tabela de Jogos
} Programa para gerar a tabela de jogos de um campeonato
que tem 5 times (times jogam em casa e na casa do
advers‡rio)
38
Agenda
} Programa para imprimir uma agenda di‡ria, com hor‡rios
de 15 em 15 minutos
39
Exerc’cios
1. Fa•a um programa para montar a tabela de
multiplica•‹o de nœmeros de 1 a 10 (ex.: 1 x 1 = 1, 1 x 2
= 2, etc.)
2. Fa•a um programa para determinar o nœmero de d’gitos
de um nœmero inteiro positivo informado
3. Fa•a um programa para calcular a sŽrie de Fibonacci
para um nœmero informado pelo usu‡rio, sendo F(0) =
0, F(1) = 1 e F(n)= F(n-1)+F(n-2)
} Por exemplo, caso o usu‡rio informe o nœmero 9, o resultado seria:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34
40
Exerc’cios
4. Fa•a um programa para listar todos os divisores de um
nœmero ou dizer que o nœmero Ž primo caso n‹o
existam divisores
} Ao final, verifique se o usu‡rio deseja analisar outro nœmero
41
Exerc’cios
5. Fa•a um programa que calcule o retorno de um investimento
financeiro fazendo as contas m•s a m•s, sem usar a f—rmula de
juros compostos
} O usu‡rio deve informar quanto ser‡ investido por m•s e qual ser‡ a
taxa de juros mensal
} O programa deve informar o saldo do investimento ap—s um ano (soma
das aplica•›es m•s a m•s considerando os juros compostos), e
perguntar ao usu‡rio se ele deseja que seja calculado o ano seguinte,
sucessivamente
} Por exemplo, caso o usu‡rio deseje investir R$ 100,00 por m•s, e tenha
uma taxa de juros de 1% ao m•s, o programa forneceria a seguinte
sa’da:
42
Refer•ncias
} Slides feitos em conjunto com Leonardo Murta e Aline
Paes
43
Estruturas de Repeti•‹o
Vanessa Braganholo
vanessa@ic.uff.br