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

Projete um algoritmo em pseudocódigo que, dado um vetor V de n inteiros e um inteiro k, determine se existem…

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 um algoritmo em pseudocódigo que, dado um vetor V de n inteiros e um inteiro k, determine se existem índices i < j tais que V[i] + V[j] = k. Explique a ideia principal, as variáveis usadas e a complexidade temporal e espacial do procedimento.

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

Resposta esperada

Ideia principal: usar um conjunto (hash set) para registrar valores já vistos e verificar, para cada elemento x, se o complementar (k - x) já apareceu. Pseudocódigo (exemplo): fun existeParSoma(V, k): seen <- conjunto vazio para i de 0 até n-1: complemento <- k - V[i] se complemento está em seen: retornar verdadeiro inserir V[i] em seen retornar falso Variáveis: V (vetor de entrada), k (inteiro alvo), i (índice), complemento (inteiro), seen (conjunto/hash set). Complexidade: tempo médio O(n) porque cada verificação e inserção no hash set é O(1) amortizado; espaço O(n) no pior caso para armazenar seen. Alternativa: ordenar e aplicar dois ponteiros (tempo O(n log n), espaço O(1) adicional).

Explicação

A abordagem utiliza um conjunto para armazenar os elementos já vistos, permitindo verificar rapidamente se o complemento necessário para atingir a soma k já foi encontrado. Isso garante uma busca eficiente, com complexidade de tempo linear em média, já que cada operação de inserção e verificação no conjunto é rápida. A alternativa de usar dois ponteiros, embora válida, resulta em maior complexidade temporal devido à necessidade de ordenação prévia.

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

algoritmo e complexidade

📌 Objetivo

avaliacao

🧱 Pré-requisitos

vetores e arrays · pseudocódigo e algoritmos

📚 Reveja

Revisar conceitos de algoritmos e análise de complexidade.

⚠️ Erro mais comum

O aluno pode confundir a lógica de comparação, tentando somar elementos em posições iguais ou não considerando todos os pares possíveis.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

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.