Computadores são muito eficientes em realizar tarefas bem definidas e repetitivas. E muito menos suscetíveis a cometer erros de cálculo do que nós humanos. Nesta aula vamos aprender a inserir automação em nossos programas utilizando estruturas de repetição. Loops (em português "laços de repetição") são estruturas que garantem que uma parte do código seja repetida várias vezes. Existem dois tipos fundamentais de loops: (i) *for* loops e (ii) *while* loops. Por simplicidade, veremos apenas o primeiro tipo neste curso.
Após esta aula você deverá ser capaz de:
No jargão da computação, chamamos de loop uma estrutura contendo código que será executado múltiplas vezes. Cada repetição do loop é chamada iteração.
A estrutura de um loop do tipo "for" é composta por:
i
ou j
, mas poderia ser qualquer outro nome, como por exemplo dinossauro
);Para exemplificar, vamos construir uma estrutura que imprima no console a frase "nova iteração" algumas vezes.
Uma característica da variável de iteração é que ela, a cada iteração, assumirá o valor seguinte na lista percorrida. Podemos então imprimir no console o número de cada nova iteração.
Podemos também percorrer listas com elementos não-numéricos por meio de loops.
Variáveis contadoras (normalmente chamadas ctr
) podem ser usadas para armazenar resultados de forma gradativa durante as iterações. Elas são usualmente inicializadas com valor zero e, a cada iteração, são atualizadas (normalmente somando-se 1).
Usando variáveis contadoras podemos, por exemplo, calcular a soma de números em uma lista.
Podemos também usar loops para percorrer strings, como se fossem uma lista de caracteres.
Ex 1. Escreva a função conta_sup
que recebe: uma lista l
contendo valores numéricos; e um número limite
. A função deve contar quantos elementos na lista l
têm valor maior ou igual a limite
.
Ex 2. Escreva a função busca_max
que recebe uma lista l
contendo valores numéricos e retorna o valor máximo encontrado nela. O comportamento dessa função é equivalente ao da função max
. No entanto, não use a função max
neste exercício.
Ex 3. Escreva uma função busca_primeiro_sup
que recebe: uma lista l
contendo valores numéricos; e um número limite
. A função deve retornar imediatamente assim que encontrar um elemento na lista l
com valor maior que limite
. Caso encontre um valor maior que o limtie, este valor deve ser retornado como resultado. Caso contrário, a função deve retornar uma string "Não encontrado"
.
Ex 4. Escreva uma função complementaBases
que recebe como input uma sequência de bases de um fragmento de DNA e retorna as bases complementares.