Escolar Documentos
Profissional Documentos
Cultura Documentos
Apresentação
Em diversas situações cotidianas, realizamos tarefas repetitivas, como realizar um
número determinado de movimentos ao nos exercitarmos, saber o total em dinheiro
ao contar uma a uma as cédulas (ou moeda) disponíveis, entre outras.
Na Programação, existem situações em que você precisa repetir uma única instrução
ou um grupo de instruções até que alguma condição seja atendida, tais como ler
todos os arquivos de um diretório, enviar e-mail a todos os funcionários etc. Essas
tarefas na Programação são tratadas por instruções em loop.
Objetivos
Examinar problemas que envolvem repetição de comandos;
Analisar o uso das estruturas de repetição de maneira a evitar a duplicação e a
redundância de códigos;
Avaliar o uso em conjunto com outras estruturas já vistas, de modo a
representar situações que envolvem a contagem e soma de valores.
Estruturas de Repetição
Vamos considerar o exemplo do cálculo de média tratado até aqui. Imagine se
você quiser lançar a nota de 3 alunos.
Não parece uma boa ideia ficar “copiando e colando” (e contando!) inúmeras
vezes o código.
2 Leia a nota 1
3 Leia a nota 2
4 Calcule a média
Ou seja, as ações após a linha 2 serão repetidas até que a condição (linha 1)
seja satisfeita. A esses trechos do algoritmo que são repetidos damos o nome
de laços de repetição.
Pseudocódigo
bloco de comandos;
FIMENQUANTO
Python
while (<condição>):
bloco de comandos;
Pseudocódigo
senha ← ‘0’;
LEIA(senha);
FIMENQUANTO
Python
senha=‘0’
Pseudocódigo
REPITA
bloco de comandos;
ATÉ (<condição>);
Python
while True:
bloco de comandos;
if (<condição>):
break;
Dica
Pseudocódigo
REPITA
LEIA(senha);
ATÉ (senha==‘123’)
Python
while True:
senha = input(‘Digite sua senha: ’)
if (senha == ‘123’)
break;
Repetição Contável
Até agora, as estruturas apresentadas não possibilitam determinar a
quantidade de vezes que o bloco será executado. Ou eles irão repetir-se
enquanto uma condição for satisfeita ou que se repita até que a condição
seja satisfeita. No caso em que precisamos determinar o número de vezes (ou
seja, ela é contável!) em que certos comandos devem ser repetidos, a
estrutura utilizada é o para.
Pseudocódigo
bloco de comandos;
FIM PARA
Python
bloco de comandos
Pseudocódigo
LEIA(num)
FIM PARA
Python
for x in range(10):
Listados explicitamente
>>> print(x)
>>> print(x)
Como podemos perceber, o comando range tem três parâmetros, dos quais
ele:
01
02
Determina o valor final (obrigatório);
03
Exemplo
>>> print(x)
>>> print(x)
>>> print(x)
(Fonte: Marina Pousheva / Shutterstock)
Contadores e Somadores
Em muitas situações, estamos interessados em contar coisas como, por
exemplo, a quantidade de carros que passam em um pedágio, o número de
pessoas em uma fila etc. Em outros, podemos estar interessados em realizar
cálculos estatísticos, como obter a média de notas de uma turma, calcular a
velocidade média de carros trafegando em uma via em determinado instante
de tempo, entre outros.
>>> num = 1
>>> cont = 0
>>> num = 1
>>>
>>> print(cont)
>>> cont = 0
>>> velocidade = 1
>>> soma = 0
>>> print(media)
Comentário
>>> if (velocidade>=100):
>>> print(media)
(Fonte: Kichigin / Shutterstock)
Exemplo
>>> sum=0
>>> sum=sum+j
Exemplo
A função deve ser avaliada para x = 0 e, depois disso, para cada uma das
10.000 partições feitas. Todas as vezes que x for avaliado, o resultado deve
ser armazenado em um somatório. Esse somatório é o resultado da integral.
>>> integral=0.0
>>> x,y=limInf,0
>>> integral+=particoes*y;
>>> x+=particoes
>>> print(integral)
Atividade
1. Observe os trechos dos algoritmos a seguir:
ALGORITMO questao1a
x,y,z: inteiro;
INÍCIO
x ← 10;
z ← 0;
ESCREVA(‘Informe um número: ’)
LEIA(y);
z ← z + 1;
x ← x + y;
FIM ENQUANTO
ESCREVA(x)
FIM ALGORITMO.
ALGORITMO questao1b
x,y,z: inteiro;
INÍCIO
x ← 10;
z ← 0;
ESCREVA(‘Informe um número: ’)
LEIA(y);
REPITA
z ← z + 1;
x ← x + y;
ATÉ (z>y);
ESCREVA(x)
FIM ALGORITMO.
a) 35 e 15; 10 e 10.
b) 35 e 15; 10 e loop infinito.
c) loop infinito em ambos; 10 e 10.
d) 35 e loop infinito; 5 e 5.
e) 25 e 10; loop infinito.
2. Implemente os seguintes algoritmos em Python:
ALGORITMO questao2a
ALGORITMO questao1a;
x,y,z: inteiro;
INÍCIO
x ← 10;
z ← 0;
ESCREVA(‘Informe um número: ’)
LEIA(y);
z ← z + 1;
x ← x + y;
FIM ENQUANTO
ESCREVA(x)
FIM ALGORITMO.
ALGORITMO questao2b
ALGORITMO questao1b;
x,y,z: inteiro;
INÍCIO
x ← 10;
z ← 0;
ESCREVA(‘Informe um número: ’)
LEIA(y);
REPITA
z ← z + 1;
x ← x + y;
ATÉ (z>y);
ESCREVA(x)
FIM ALGORITMO.
Referências
GRUS, J. Data science from scratch: first principles with Python. Beijing: O’Reilly,
2015.
Próximos Passos