Escolar Documentos
Profissional Documentos
Cultura Documentos
COMPUTACIONAL
Introdução
Neste capítulo, você vai estudar a estrutura de repetição while e enten-
der como funcionam as variáveis contadoras e acumuladoras, necessárias
para controlar os laços de repetição e acumular valores de variáveis,
respectivamente. Em seguida, você vai aprender como verificar o fluxo
de repetição do laço while por meio de um teste de mesa. Por fim, você
vai compreender como utilizar esse laço de repetição para solucionar
problemas computacionais.
Blocos de instrução
Segundo Ramalho (2015), os blocos de instrução são um conjunto de comandos
pertencentes a uma função, uma estrutura condicional, um laço de repetição,
etc. Na maioria da linguagens de programação, os blocos são delimitados por
abertura ( { ) e fechamento ( } ) de chaves ({ }). Porém, na linguagem Python,
os blocos de instrução são delimitados pela indentação do código, ou seja,
o recuo aplicado ao código fonte em relação à sua margem, a fim de tornar o
código mais legível e facilitar o reconhecimento de sua estrutura (Figura 2).
Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python) 3
(a)
(b)
Comando while
Segundo Barry (2018), o laço de repetição while (“enquanto”, em inglês)
permite repetir um conjunto de instruções enquanto a condição testada for
verdadeira. Essa condição, que é sempre testada no início do laço, contém
uma expressão booleana que pode assumir o valor de verdadeira ou falsa. O
f uxograma da Figura 3 mostra o funcionamento do comando while, em
que a condição é testada antes de iniciar a iteração do laço; enquanto ela for
verdadeira, o loop será repetido.
while condição:
Variável contadora
No comando while, a variável contadora é utilizada como controle do
laço; ela determina o número de vezes que o conjunto de instruções do laço
while será executado. Ela deve ser inicializada antes do comando while e
ser incrementada ou decrementada dentro do bloco de instrução do comando
while, de modo que a condição se torne falsa quando o número de repetições
desejadas for atingido.
Fique atento a essa questão, pois, do contrário, você pode criar um loop
infinito indesejado, conforme aponta Borges (2014).
O exemplo da Figura 4 traz o laço de repetição while utilizando uma variável con-
tadora, que incrementa o seu valor a cada execução do loop. O bloco de instruções
dentro do laço é repetido três vezes.
(a)
(b)
Figura 4. (a) Laço de repetição while com incremento da variável contadora e (b) resultado
da execução do código.
6 Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python)
(a)
(b)
Figura 5. (a) Laço de repetição while com decremento da variável contadora e (b) resultado
da execução do código.
Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python) 7
O exemplo mostrado na Figura 6 traz o laço de repetição infinito, que é um laço que
apresenta uma condição de teste sempre verdadeira, implementado com while. Ele
contém o valor True (Verdadeiro) como teste lógico e a estrutura condicional if
para determinar quando executar o comando break e encerrar a execução do loop.
O código da Figura 6a é um loop infinito, pois a condição do comando while é
sempre verdadeira (True); assim, não há uma condição de parada. A variável conta-
dora de controle cont é inicializada fora do laço com o valor 1; em toda a execução
do loop, ela é incrementada de uma unidade no comando cont+=1 e testada na
estrutura condicional if (cont>3). Quando o valor de cont for maior do que 3,
o teste lógico da estrutura condicional if é verdadeiro e, então, o comando break
é executado, parando o laço de repetição while. O resultado da execução desse
código é mostrado na Figura 6b, em que é possível perceber que o comando while
imprime a mensagem dentro do laço três vezes, semelhante ao exemplo da Figura 4.
8 Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python)
(a)
(b)
Figura 6. (a) Laço de repetição while com instrução break e (b) resultado da execução
do código.
(a)
(b)
Figura 7. (a) Laço de repetição while com instrução continue e (b) resultado da
execução do código.
(a)
(b)
Figura 8. (a) Teste de mesa do comando while e (b) tabela com teste de mesa do código.
Variável acumuladora
Variáveis acumuladoras são comumente empregadas em laços de repetição.
Sua função é acumular um determinado valor a cada iteração/repetição do
loop. Dessa forma, o valor da variável acumuladora é somado com um valor
numérico ou com o conteúdo de outra variável, conforme leciona Matthes
(2016).
O código mostrado na Figura 8a possui um laço while com uma variável
acumuladora soma. Essa variável acumula o seu próprio valor anterior, mais
outro valor ou o valor de uma variável (no caso, a variável cont), acumulando,
assim, o valor somado a cada iteração do while.
Sequência de Fibonacci
Segundo Matthes (2016), a sucessão ou sequência de Fibonacci é uma sequência
numérica em que os dois primeiros números têm valor F0= 0 e F1= 1 e os outros
números da sequência são calculados pela equação Fn = F(n-1) + F(n-2). Assim, o ter-
ceiro elemento é calculado por F3 = F2 + F1 = 1, o quarto elemento é F4 = F3 + F2 = 2,
o quinto é F5 = F4 + F3 = 3, e assim por diante. O código da Figura 9 mostra
um programa da sequência de Fibonacci, em que o usuário escolhe quantos
elementos da sequência ele quer imprimir.
O código da Figura 9 possui dois comandos while, sendo que o primeiro
controla a continuidade de execução do programa. Ele repetirá o cálculo da
sequência de Fibonacci (comando a, b = b, a+b) até que o usuário digite
um valor diferente de 1; caso o usuário digite o valor 0, a variável de controle
é atualizada, e é encerrada a execução do programa. O segundo comando
while é responsável por calcular e imprimir os elementos da sequência de
Fibonacci conforme a quantidade de números escolhida pelo usuário.
Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python) 13
(a)
(b)
Leituras recomendadas
HETTINGER, R.; CARROLL, W. I. Python Enhancement Proposal (PEP) 315: Enhanced
while loop. Python Software Foundation, Wilmington, 2003. Disponível em: https://
www.python.org/dev/peps/pep-0315/. Acesso em: 3 jun. 2019.
LABAKI, J. Testes, loops, varreduras e erros. In: LABAKI, J. Introdução a Python: módulo
A. Ilha Solteira: Departamento de Engenharia Mecânica, Universidade Estadual Pau-
lista “Júlio de Mesquita Filho”, 2004. p. 29–46. Disponível em: https://www.dcc.ufrj.
br/~fabiom/mab225/pythonbasico.pdf. Acesso em: 3 jun. 2019.
16 Comando while, variáveis contadoras e acumuladoras (utilizando a linguagem Python)
PINA JÚNIOR, J. C.; MORIMOTO, C. H. Comando de repetição: while. In: PINA JÚNIOR, J.
C.; MORIMOTO, C. H. Introdução à Computação com Python. São Paulo: Departamento
de Ciência da Computação, IME-USP, 2019. Disponível em: https://panda.ime.usp.br/
cc110/static/cc110/03-while.html. Acesso em: 3 jun. 2019.
VIEGAS, T. B. Correções para PEP8 - Listas 03 e 04. Python Brasil Exercícios, [S. l.], 4 ago.
2014. Disponível em: https://github.com/selatotal/pythonBrasilExercicios/tree/mas-
ter/03_EstruturasRepeticao. Acesso em: 3 jun. 2019.