Escreva em pseudocódigo um algoritmo recursivo count_pares(L) que recebe uma lista L de inteiros e retorna a…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
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
Escreva em pseudocódigo um algoritmo recursivo count_pares(L) que recebe uma lista L de inteiros e retorna a quantidade de elementos pares. No pseudocódigo, identifique claramente a condição de parada (caso base), a chamada recursiva e como o valor de retorno é formado.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Exemplo de resposta-modelo: fun count_pares(L): se L == [] então retorne 0 resto <- L[1:] se L[0] % 2 == 0 então retorne 1 + count_pares(resto) senão retorne count_pares(resto) Comentário: o caso base (L == []) evita recursão infinita e retorna 0. A chamada recursiva processa o restante da lista; a função soma 1 quando o primeiro elemento é par, combinando esse resultado com o retorno da subchamada. Complexidade O(n).
Explicação
O algoritmo define um caso base que interrompe a recursão ao encontrar uma lista vazia, garantindo que a função não entre em um loop infinito. Ele verifica se o primeiro elemento da lista é par e, se for, soma 1 ao resultado da chamada recursiva, que conta os pares nos elementos restantes. Essa abordagem permite contar todos os elementos pares de maneira eficiente, mantendo a lógica clara e concisa.
Raio-X da questão
algoritmo recursivo
avaliacao
algoritmo recursivo · estrutura de listas
Revisar conceitos de recursão e contagem de elementos em listas.
O aluno pode esquecer de definir a condição de parada, resultando em uma recursão infinita.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em pseudocódigo, qual deve ser o caso base de um algoritmo recursivo que conta elementos de uma lista L (variável L)…
- Projete em pseudocódigo uma função recursiva separar_indices(L) que recebe uma lista L e retorna duas listas: elementos…
- Projete um algoritmo em pseudocódigo que receba uma lista L de n inteiros e retorne uma nova lista em que todos os…
- Projete em pseudocódigo uma função recursiva duplicar(L) que recebe uma lista L de inteiros e retorna uma nova lista em…
- Projete em pseudocódigo uma função recursiva subsequencias(L) que recebe uma lista L de inteiros e retorna a lista de…
- Projete em pseudocódigo um algoritmo recursivo max_recursive(L) que recebe uma lista não vazia L de inteiros e retorna 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
