Imagine que nós temos uma lista onde todos os elementos ímpares aparecem antes que todos os elementos pares. Por exemplo,
L
L
0 | 1 |
|
|||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 9 | 3 | 7 | 11 | 2 | 4 | 10 | 6 | 20 | 14 | 8 |
A tarefa consiste em:
Encontrar o primeiro elemento par da lista.
No exemplo acima, isso nos daria:
=> 2
Apresente um programa que realiza essa tarefa usando o while.
No exemplo acima, isso nos daria:
=> 2
Apresente um programa que realiza essa tarefa usando o while.
Passo 1
Beleza, o enunciado tá dizendo que a gente tem uma lista em que TODOS os números ímpares vêm primeiro e, só depois, todos os pares. Exemplo:
L = [1, 9, 3, 7, 11, 2, 4, 10, 6, 20, 14, 8]
A tarefa é: “achar o primeiro elemento par nessa lista”. No exemplo, a resposta é 2.
Conteúdo envolvido:
L = [1, 9, 3, 7, 11, 2, 4, 10, 6, 20, 14, 8]
A tarefa é: “achar o primeiro elemento par nessa lista”. No exemplo, a resposta é 2.
Conteúdo envolvido:
- Estruturas de repetição (while)
- Operador resto da divisão (módulo)
- Condicionais (if/else)
Passo 2
Vamos definir as variáveis iniciais que precisamos:
• i = 0 (é o nosso “cursor” na lista)
• n = comprimento de L (quantos elementos tem em L)
• i = 0 (é o nosso “cursor” na lista)
• n = comprimento de L (quantos elementos tem em L)
Agora, o plano é “andar” pela lista enquanto o elemento na posição i for ímpar. Para testar se é ímpar, usamos o módulo:
Isso quer dizer “o resto da divisão de L[i] por 2 é diferente de zero”, logo é ímpar.
Passo 3
Escrevendo isso em pseudocódigo com while:
i = 0
n = len(L)
while i < n and (L[i] % 2) != 0:
i = i + 1
Explicação do que tá rolando no while:
- Verificamos se ainda não saímos da lista (i < n).
- Checamos se L[i] é ímpar ((L[i] % 2) != 0).
- Enquanto as duas coisas forem verdadeiras, avançamos o i (i = i + 1).
Passo 4
Quando o while terminar, ou a gente encontrou um L[i] que não é ímpar (ou seja, é par), ou acabamos a lista. Então só falta conferir:
se i < n:
resposta = L[i]
senão:
não existe número par na lista
No nosso caso, a lista sempre terá pelo menos um par (segundo o enunciado), então a gente cai no
resposta = L[i]
.Resposta
Segue o programa completo em estilo Python (mas a ideia vale pra qualquer linguagem com while e módulo):
i = 0
n = len(L)
while i < n and (L[i] % 2) != 0:
i += 1
# ao sair do loop, i aponta pro primeiro par
if i < n:
print("Primeiro elemento par é", L[i])
else:
print("Não há elemento par na lista")
No exemplo dado, isso imprime:
=> 2
=> 2