Ir para o conteúdo

Laços e Listas

Vai repetir a declaração? Laço nela...

Laços e listas

Como tarefas repetitivas em um programa podem ser automatizadas com o uso de laços. Também serão introduzidos os objetos listas para o armazenamento e processamento de coleções de dados com ordem específica. Laços e listas junto com o tópico anterior, consistem na base fundamental para o resto do curso.

Tabelas

Faça uma tabela com graus Celsius e seus correspondentes graus Fahrenheit

-20  -4.0
-15   5.0
-10  14.0
 -5  23.0
  0  32.0
  5  41.0
 10  50.0
 15  59.0
 20  68.0
 25  77.0
 30  86.0
 35  95.0
 40 104.0

Como um programa escreveria na saída tal tabela?

Fazendo uma tabela

A solução simples

Sabemos como fazer uma linha na tabela:

C = -20
F = 9.0/5*C + 32
print C, F

Podemos, simplesmente, repetir a declaração:

C = -20; F = 9.0/5*C + 32; print C, F
C = -10; F = 9.0/5*C + 32; print C, F
...
C = 35; F = 9.0/5*C + 32; print C, F
C = 40; F = 9.0/5*C + 32; print C, F
  • Muito tedioso de escrever, e fácil de errar.
  • Quando programar se torna tedioso, existe, normalmente uma construção que automatiza a escrita!
  • O computador é muito bom em fazer tarefas repetitivas.
  • Para isso, usamos os laços.

Laço while

O laço while torna possível repetir tarefas quase semelhantes.

Um laço while repete um conjunto de declarações enquanto uma condicional for verdadeira.

while condição:
    - declaração 1 -
    - declaração 2 -
    ...
- primeira declaração após o laço - 
  • Todas as declarações em um laço devem ser indentadas!

Tabela com o laço while

print '------------------' ## cabeçalho da tabela
C = -20                    ## valor inicial para C
dC = 5                     ## incremento de C no laço
while C <= 40:             ## cabeçalho do laço com a condicional
    F = (9.0/5)*C + 32     ## 1a declaração do laço
    print C, F             ## 2a declaração do laço
    C = C + dC             ## Última declaração do laço
print '------------------' ## linha final da tabela

Fluxo do programa em um laço while

Vamos simular o laço while na mão:

  • Primeiro C é -20, $ -20 \leq 40 $ é verdade, então executamos as declarações do laço.
  • Calculamos F, visualizamos o print, e atualizamos C para -15.
  • Voltamos para a linha do while, avaliamos $ C \leq 40 $, que é verdade, então vamos a uma nova rodada do laço.
  • Continuamos assim até que o C seja atualizado para 45.
  • Agora a condição do laço $ 45 \leq 40 $ é falsa, e o programa pula para a primeira linha após o laço, e o laço termina.