(Q2 - 3,5 pontos) Considere uma lista
de tamanho
em memória. Escreve o trecho de código capaz alterar a própria lista
da seguinte forma: deve-se inverter a posição de todos os pares de elementos da dessa lista. Veja os exemplos abaixo:
- Se
, deverá ser modificada para
.
- Se
, deverá ser modificada para
.
OBS 1: Obviamente, seu código deverá funcionar para qualquer lista com 2 ou mais elementos e não apenas para as duas listas dos exemplos acima. OBS 2: veja que no caso de uma lista com número ímpar de elementos (segundo exemplo), nada deverá ser feito com o último elemento.
OBS 1: Obviamente, seu código deverá funcionar para qualquer lista com 2 ou mais elementos e não apenas para as duas listas dos exemplos acima. OBS 2: veja que no caso de uma lista com número ímpar de elementos (segundo exemplo), nada deverá ser feito com o último elemento.
Passo 1
Beleza, vamos lá! O problema pede para a gente pegar uma lista chamada
que tem pelo menos 2 elementos e inverter a posição de cada par de elementos. Por exemplo, se a lista for
, ela deve virar
. Se a lista tiver um número ímpar de elementos, como
, a gente inverte os pares que dá e deixa o último elemento do jeitinho que está. Para resolver isso, vamos precisar entender como acessar e modificar elementos em listas, usar loops para percorrer a lista e fazer trocas de posições.
Passo 2
Primeiro, vamos pensar em como percorrer a lista em pares. Se a lista tem
elementos, a gente pode usar um loop que vai de 0 até
, pulando de 2 em 2. Isso porque vamos sempre pegar dois elementos de cada vez: o de índice
e o de índice
.
Passo 3
Dentro do loop, a gente vai trocar os elementos de posição. Ou seja, vamos fazer com que o elemento que estava em
passe para
e o que estava em
passe para
. Essa troca é bem simples e pode ser feita em uma única linha de código.
Passo 4
Precisamos também cuidar do caso em que a lista tem um número ímpar de elementos. Nesse caso, o último elemento não tem par para trocar, então vamos deixar ele na mesma posição. O nosso loop já vai até
, garantindo que não tentemos trocar um elemento que não tem par.
Passo 5
Agora, vamos colocar tudo isso em código. Vou usar Python porque é uma linguagem bem clara e fácil de entender. Aqui está uma função que faz exatamente o que a gente precisa:
def inverter_pares(u):
n = len(u)
for i in range(0, n - 1, 2):
u[i], u[i + 1] = u[i + 1], u[i]
return u
Resposta
Usando a função acima, se tivermos
, após a execução, a lista ficará assim: