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

Projete em pseudocódigo uma função recursiva maximo(L) que recebe uma lista não vazia de inteiros e retorna o…

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 maximo(L) que recebe uma lista não vazia de inteiros e retorna o maior valor. Descreva como a recursão divide o problema e analise a complexidade temporal e a profundidade da pilha de chamadas.

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

Resposta esperada

Exemplo de solução: fun maximo(L): se comprimento(L) == 1 então retorne primeiro(L) senão: m = maximo(resto(L)) se primeiro(L) > m então retorne primeiro(L) senão retorne m Divisão: cada chamada reduz a lista removendo a cabeça, o subproblema tem tamanho n-1. Complexidade temporal: O(n) porque cada elemento é comparado uma vez. Profundidade da pilha: O(n) em implementação recursiva simples (uma chamada por elemento). Alternativa: versão com acumulador (tail recursion) ou iteração reduz a profundidade da pilha para O(1).

Explicação

A solução apresentada utiliza recursão para comparar elementos da lista, reduzindo o problema a cada chamada até chegar ao caso base, que é uma lista com um único elemento. A complexidade temporal é linear, pois cada elemento é acessado uma vez, enquanto a profundidade da pilha de chamadas reflete o número de elementos, resultando em uma profundidade máxima igual ao tamanho da lista. Alternativas como a recursão de cauda ou iteração podem otimizar o uso da pilha, evitando o crescimento excessivo em casos de listas muito longas.

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, tentando resolver o problema de forma iterativa em vez de recursiva.

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