Escreva um algoritmo em pseudocódigo que receba uma sequência de comandos de movimento para um robô (por…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Escreva um algoritmo em pseudocódigo que receba uma sequência de comandos de movimento para um robô (por exemplo: "esquerda", "direita", "avançar", "voltar") e simplifique a sequência removendo pares de comandos redundantes ou que se anulam (por exemplo, "direita" seguido de "esquerda"). Use explicitamente uma variável ou estrutura de dados para armazenar o estado intermediário e explique a complexidade do algoritmo.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Entrada: lista comandos Inicializar pilha := lista vazia Para cada cmd em comandos: se pilha está vazia: empilhar(cmd) senão: topo := elemento no topo da pilha se (topo == "direita" e cmd == "esquerda") ou (topo == "esquerda" e cmd == "direita") ou (topo == "avançar" e cmd == "voltar") ou (topo == "voltar" e cmd == "avançar") então desempilhar() // comandos se anulam senão empilhar(cmd) FimPara Resultado := conteúdo da pilha (do fundo ao topo) Explicação: a pilha armazena o histórico útil de comandos; ao encontrar um comando que se anula com o topo, ambos são removidos, simplificando localmente a sequência. Cada comando é empilhado ou desempilhado no máximo uma vez, portanto a complexidade é O(n) em tempo e O(n) em espaço no pior caso, onde n é o número de comandos.
Explicação
O algoritmo utiliza uma pilha para gerenciar os comandos, permitindo que comandos que se anulam sejam removidos de forma eficiente. Cada comando é processado uma única vez, garantindo que a complexidade permaneça linear em relação ao número total de comandos. A estrutura de pilha é adequada para esse tipo de problema, pois facilita a verificação e remoção de comandos redundantes.
Raio-X da questão
algoritmo em pseudocódigo
avaliacao
lógica de programação · estrutura de dados
Revisar conceitos de algoritmos e estruturas de dados.
O aluno pode confundir os comandos que se anulam, não removendo corretamente as sequências redundantes, como 'direita' e 'esquerda'.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em uma competição de robótica, o robô precisa seguir um caminho específico. Para isso, é necessário criar um algoritmo…
- Na oficina de tecnologia da escola, um grupo programou um robô para recolher uma garrafa e levá-la até uma caixa de…
- Em uma competição de robôs, cada participante deve programar seu robô para completar um percurso utilizando uma lista de…
- Pesquisadores acompanham o funcionamento de um robô que cuida de seis placas solares em uma estação de pesquisa. O robô…
- Durante uma aula de robótica, os alunos devem usar algoritmos para programar um robô que deve seguir uma lista de…
- Em uma maratona de programação, cada equipe deve criar um robô virtual que siga um caminho em um labirinto. O robô é…
🔎 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
