Escolar Documentos
Profissional Documentos
Cultura Documentos
de Melo-Minardi
Departamento de Ciência da Computação
Instituto de Ciências Exatas
Universidade Federal de Minas Gerais
MÓDULO 2 - PROGRAMAÇÃO
Estruturas de repetição
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 2
ESTRUTURAS DE REPETIÇÃO
▸ Você já se perguntou por que usamos programas de computadores?
ESTRUTURAS DE REPETIÇÃO
▸ Para que essas tarefas possam ser executadas um certo número de vezes, precisamos
de estruturas das linguagens de programação que nos permitam realizar repetições
como por exemplo a do esquema abaixo
FAÇA ALGO
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 4
CENÁRIOS
▸ Há algumas possibilidades de cenários nos quais podemos desejar expressar
repetições
WHILE (ENQUANTO)
▸ Os laços while (enquanto) são usados nos casos indefinidos, ou seja, naqueles em
que não se sabe quantas vezes esse laço será executado e a condição de continuidade
deve ser verificada a cada nova interação
num = 289
divisor = num - 1
if divisor > 1:
print(num, 'não é primo: divisível por', divisor)
else:
print(num, ' é primo')
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 6
WHILE (ENQUANTO)
▸ O laço while itera sobre o divisor e a condição de continuidade é que ambas as
seguintes condições sejam verdadeiras
▸ Não ter encontrado um divisor: num % divisor != 0 (resto da divisão inteira é diferente
de zero)
FOR (PARA)
▸ Um loop for é usado para iterar em uma sequência (que é uma lista, uma tupla, um
dicionário ou uma sequência)
FOR (PARA)
▸ Podemos iterar também sobre strings
for n in 'ACCAGGAGGCGATG':
print(n)
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 9
FOR (PARA)
▸ Note que o laço for é um laço definido, ou seja, utilizado quando sabemos
previamente quantas vezes o laço irá executar
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 10
for n in 'ACCAGGAGGCGATG':
print(n)
if n == 'X':
break
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 11
for n in 'ACCAGGAGGCGATG':
for n in 'ACCAGGAGGCGATG':
if n == 'X':
print(n)
break
if n == 'X':
print(n)
break
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 12
for n in 'ACCAGGAGGCGATG':
if n == 'X':
continue # Não imprimirá em caso de um núcleotídeo X aparecer
print(n)
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 13
A FUNÇÃO RANGE
▸ Para percorrer um bloco de código um número pré-definido de vezes, podemos usar a
função range()
for i in range(256):
print(i) # Imprime de 0 a 255
A FUNÇÃO RANGE
▸ Por padrão, a função range() incrementa o índice de 1 em 1 unidade
for i in range(100,256,2):
print(i) # Imprime de 100, 102, 104, 106, 108, …, 254
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 15
for n in 'ACCAGGAGGCGATG':
print(n)
else:
print('Fim do laço')
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 16
▸ O laço interno será executado uma vez para cada iteração do laço externo
seq = 'ACCAGGAGGCGATG'
for n in seq:
for m in seq:
print(n,m)
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 17
LAÇOS INFINITOS
▸ Há laços que nunca terminam de executar: laços infinitos
▸ Podem ocorrer:
▸ por um erro de lógica que não garante que uma condição de parada seja atingida
FOREACH
▸ Particularmente, a linguagem Perl possui um outro tipo de laço chamado “foreach” (para
cada)
▸ Os mesmos poderiam ser utilizados para iterar sobre elementos de um hash como no
exemplo abaixo
%AAs = (
"ALA" => 'A',
"CYS" => 'C',
"ASP" => 'D',
"GLU" => 'E'
);
▸ Inicialização ($i = 0)
▸ Incremento ($i++)
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 23
DO-WHILE (FAÇA-ENQUANTO)
▸ Usando o comando "while", se a condição for falsa na primeira iteração, nenhum dos
comandos é executado
▸ Existe uma variação que é o “do-while” e a diferença é que a primeira iteração do laço
sempre será executada
$num = $divisor = 289;
do {
$divisor--;
} while ((($num % $divisor) != 0) && ($divisor > 1));
▸ Nos “while” temos uma condição de continuidade enquanto no “until" teremos uma
condição de parada
$num = 289;
$divisor = $num - 1;
until ((($num % $divisor) == 0) || ($divisor == 1)){
$divisor--;
}
if ($divisor > 1){
print "$num não é primo: divisível por
$divisor\n";
} else {
print "$num é primo\n";
}
MÓDULO 2 - PROGRAMAÇÃO - Estruturas de repetição 26
CONTROLE DE LAÇOS
▸ Apesar dos loops respeitarem às suas condições de continuidade ou de parada, há
comandos que nos permitem interferir no meio da execução desses laços e forçar
certos comportamentos