GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF69CO02Difícil⏱ medio

Projete em pseudocódigo uma função recursiva rotacionar_direita(L, k) que recebe uma lista L e um inteiro k =…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO02

Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete em pseudocódigo uma função recursiva rotacionar_direita(L, k) que recebe uma lista L e um inteiro k = 0 e retorna nova lista com os elementos rotacionados k posições à direita. Use apenas operações de lista básicas (cabeça/cauda, len, concatenar) e evite laços iterativos.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

funcao rotacionar_direita(L,k): se L == [] entao retorne L n <- len(L) r <- k mod n se r == 0 entao retorne L /* mover último elemento para frente r vezes recursivamente */ funcao mover_uma(L): se L == [] ou len(L) == 1 entao retorne L ultimo <- L[len(L)-1] init <- L[0:len(L)-1] retorne concatenar([ultimo], init) se r == 1 entao retorne mover_uma(L) senao return rotacionar_direita(mover_uma(L), r-1) Observações: primeiro reduzimos k por modulo n. A operação mover_uma coloca o último elemento na cabeça; aplicando-a r vezes obtemos a rotação à direita por r posições. A solução é recursiva e usa apenas operações básicas de lista. Complexidade: O(r·n) no método direto; pode ser otimizada concatenando sublistas em O(n) usando divisão em duas fatias quando necessário.

Explicação

A solução utiliza recursão para mover o último elemento da lista para a frente repetidamente, o que efetivamente realiza a rotação à direita. O uso do operador módulo permite otimizar o número de rotações, evitando operações desnecessárias quando k é maior que o tamanho da lista. Além disso, a função respeita as restrições de usar apenas operações básicas de lista, garantindo a simplicidade e eficiência do algoritmo.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

função recursiva

📌 Objetivo

fixacao

🧱 Pré-requisitos

funções recursivas · operações com listas

📚 Reveja

Revisar conceitos de listas e recursão em programação.

⚠️ Erro mais comum

O aluno pode confundir a lógica de rotação, tentando usar laços iterativos em vez de recursão.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Programação - Linguagem de programação

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.