GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF09CO01Média⏱ medio

Você precisa agendar tarefas com dependências direcionais e detectar se há ciclo antes de executar. Que…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF09CO01

Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Você precisa agendar tarefas com dependências direcionais e detectar se há ciclo antes de executar. Que estrutura de dados técnica e que algoritmo devem ser usados para representar e verificar a ordem executável?

  1. A) Detectar ciclos usando busca em largura (BFS) em vez de DFS.
  2. B) Representar tarefas como um grafo direcionado e usar ordenação topológica; detectar ciclos via DFS.
  3. C) Usar um array para armazenar tarefas em vez de grafo direcionado.
  4. D) Representar tarefas como uma lista ligada para simplicidade.
  5. E) Utilizar uma fila para agendar tarefas sem considerar dependências.

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. O problema pede uma estrutura para representar tarefas com dependências direcionais (tarefa X deve ocorrer antes de tarefa Y) e um algoritmo para verificar se a ordem é executável.
  2. Dependências direcionais são naturalmente modeladas por um grafo direcionado, em que vértices são tarefas e arestas indicam a precedência entre elas.
  3. Para obter uma ordem válida de execução, usa-se a ordenação topológica, que só existe se o grafo for acíclico (DAG).
  4. Um ciclo significa dependência circular (A depende de B, que depende de A), o que torna impossível executar tudo. Esse ciclo pode ser detectado com DFS (busca em profundidade) usando marcações de visitado e de 'em processamento': se a busca encontra um vértice já em processamento, há ciclo. O algoritmo de Kahn (grau de entrada) também serve, mas a alternativa correta menciona DFS, que é a abordagem clássica.
  5. Por que as outras estão erradas: A) BFS pode sim ser usado para detectar ciclos (via Kahn), mas a alternativa limita-se a trocar DFS por BFS e não responde à representação nem à ordenação topológica; B) é a resposta completa e correta. C) Um array de tarefas não representa dependências entre elas, que exigem relações entre pares. D) Uma lista ligada simples de tarefas não captura as múltiplas dependências direcionais de cada tarefa. E) Uma fila sem considerar dependências pode executar uma tarefa antes da que ela precisa, violando o enunciado.
  6. Conclusão: a estrutura é o grafo direcionado e o algoritmo é a ordenação topológica com detecção de ciclos por DFS, alternativa B.

💡 Dica: Considere as estruturas de dados e algoritmos adequados para grafos.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno acredita que a escolha da busca (BFS em vez de DFS) é o ponto central da questão e ignora que a representação e a ordenação topológica são indispensáveis para obter a ordem executável.

Por que engana: Confundir a utilização de busca em largura (BFS) com busca em profundidade (DFS) para detectar ciclos em grafos direcionados.

B Correta

Ordenação topológica fornece uma sequência apenas se o grafo for acíclico; DFS identifica arestas de retorno que indicam ciclos.

C Erradaerro: Conceitual

O aluno imagina que um array simples de tarefas basta, sem perceber que dependências são relações entre pares de tarefas e precisam de uma estrutura que as represente explicitamente.

D Erradaerro: Conceitual

O aluno pensa que a simplicidade de uma lista ligada resolve o problema, mas uma lista linear não representa múltiplas dependências direcionais entre tarefas.

E Erradaerro: Interpretação

O aluno entende que agendar por fila (ordem de chegada) é suficiente, desconsiderando que a enunciado exige respeitar dependências antes da execução.

Raio-X da questão

Dificuldade Média
Bloom Analisar
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✍️ situacional🧩 desafio
🎯 Conceito central

agendamento de tarefas

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados · algoritmos de busca

📚 Reveja

Revisar algoritmos de ordenação topológica e estruturas de dados de grafos.

⚠️ Erro mais comum

Confundir a utilização de busca em largura (BFS) com busca em profundidade (DFS) para detectar ciclos em grafos direcionados.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Programação usando grafos e árvores

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