Crie e simule um algoritmo em pseudocódigo que, dada uma sequência de tarefas onde cada tarefa tem duas…
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
Crie e simule um algoritmo em pseudocódigo que, dada uma sequência de tarefas onde cada tarefa tem duas variáveis (duracao: inteiro em minutos, prioridade: boolean), selecione tarefas para um dia com limite diarioMax (inteiro). O algoritmo deve usar repetição e seleção condicional para: (a) incluir primeiro tarefas com prioridade=true enquanto houver tempo; (b) em seguida incluir tarefas com prioridade=false até atingir diarioMax; (c) retornar a lista de tarefas selecionadas e o tempo total usado. Explique também como o algoritmo evita exceder diarioMax e o que faz se nenhuma tarefa couber.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Modelo de resposta (pseudocódigo): algoritmo SelecionarTarefas(tarefas, diarioMax) selecionadas <- [] tempoUsado <- 0 i <- 1 // primeira passagem: prioritar tarefas com priority = true while i <= length(tarefas) do if tarefas[i].priority = true then if tempoUsado + tarefas[i].duracao <= diarioMax then append(selecionadas, tarefas[i]) tempoUsado <- tempoUsado + tarefas[i].duracao end if end if i <- i + 1 end while // segunda passagem: incluir não-prioritárias se houver espaço i <- 1 while i <= length(tarefas) do if tarefas[i].priority = false then if tempoUsado + tarefas[i].duracao <= diarioMax then append(selecionadas, tarefas[i]) tempoUsado <- tempoUsado + tarefas[i].duracao end if end if i <- i + 1 end while // resultado retornar (selecionadas, tempoUsado) end algoritmo Como evita exceder diarioMax: antes de incluir cada tarefa verifica-se a condição tempoUsado + duracao <= diarioMax; se falsa, a tarefa é ignorada. Se nenhuma tarefa couber (por exemplo, todas têm duracao > diarioMax), a lista selecionadas permanece vazia e tempoUsado = 0; o algoritmo retorna essa informação, permitindo tratamento posterior (mensagem ao usuário ou ajuste do diarioMax).
Explicação
O algoritmo é eficaz porque prioriza tarefas com alta prioridade antes de considerar as de baixa prioridade, garantindo que o tempo disponível seja utilizado da melhor forma possível. A verificação da condição de tempo antes de adicionar uma tarefa evita que o limite diário seja ultrapassado. Além disso, ao retornar uma lista vazia quando nenhuma tarefa cabe, o algoritmo permite que o usuário saiba que ajustes são necessários.
Raio-X da questão
algoritmo em pseudocódigo
avaliacao
estrutura de repetição · estrutura de seleção condicional
Revisar conceitos de algoritmos, estruturas de repetição e seleção condicional.
O aluno pode esquecer de implementar a verificação do limite diarioMax, permitindo que o algoritmo selecione mais tarefas do que o permitido.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete e simule em pseudocódigo um algoritmo que recebe uma lista de tarefas semanais (cada tarefa: nome, duração em…
- Desenvolva um algoritmo em pseudocódigo que, dada uma lista de tarefas diárias (cada tarefa tem nome e duração em…
- Elabore em pseudocódigo um algoritmo que, dado um vetor de registros 'tarefas' (descricao, duracao_horas, prioridade) e…
- Explique como você utilizaria um algoritmo para gerenciar a lista de tarefas diárias, considerando prazos e prioridades.
- Elabore um algoritmo simples que permita organizar uma lista de tarefas diárias, priorizando as mais urgentes. Como isso…
- Projete um algoritmo generalizado que receba várias instâncias de planejamento de tarefas domésticas (cada instância…
🔎 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
