GeraProva GeraProva Provas com IA para professores do Brasil
Computação6º anoBNCC EF06CO02Difícil⏱ longo

Projete em pseudocódigo uma função recursiva que verifica se uma lista de inteiros L está estritamente…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF06CO02

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 que verifica se uma lista de inteiros L está estritamente crescente (cada elemento maior que o anterior). Explique a correção da recursão e analise sua complexidade temporal.

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

Resposta esperada

Pseudocódigo: func crescente(L): se len(L) <= 1 então retorne verdadeiro se L[0] >= L[1] então retorne falso retorne crescente(L[1:]) Corretude (esboço): - Caso base: listas de tamanho 0 ou 1 são estritamente crescentes por definição, então função retorna verdadeiro. - Passo indutivo: suponha que crescente(L[1:]) verifica corretamente a propriedade para listas menores. Se L[0] < L[1] e a sublista L[1:] é estritamente crescente, então toda L é estritamente crescente. Se L[0] >= L[1] função detecta e retorna falso imediatamente. - Assim, por indução, a função é correta. Complexidade temporal: - Cada chamada recursiva faz uma comparação e reduz o tamanho da lista em 1, resultando em O(n) comparações para lista de tamanho n. O custo espacial depende da profundidade de recursão O(n) na chamada de pilha (ou O(1) se transformada em iteração).

Explicação

A função verifica a propriedade de estrita crescente ao comparar elementos adjacentes e, se necessário, chama a si mesma com a sublista restante. O caso base garante que listas pequenas são tratadas corretamente, enquanto o passo indutivo assegura que a propriedade se mantém ao longo da lista. A análise da complexidade temporal demonstra que a função é linear em relação ao tamanho da lista, o que é eficiente para essa tarefa.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
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

avaliacao

🧱 Pré-requisitos

funções recursivas · listas e arrays

📚 Reveja

Revisar conceitos de recursão e análise de complexidade.

⚠️ Erro mais comum

O aluno pode confundir a lógica de recursão, não verificando corretamente a relação entre os elementos da lista.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 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.