Atividades de Programação - Algoritmos clássicos para o 8º ano com gabarito
Atividades de Programação sobre algoritmos clássicos para o 8º ano, com questões de listas, matrizes, grafos, filas e gabarito comentado. Material para trabalhar conceitos da Computação e a habilidade EF08CO03.
Algoritmos clássicos no 8º ano envolvem percorrer e organizar listas, acessar elementos em matrizes, acompanhar somas acumuladas, identificar caminhos em grafos e formar filas com base em condições. Para resolver essas situações, o estudante precisa compreender índices, sequência de execução e regras de seleção. As atividades com gabarito ajudam a verificar esses conceitos ligados à habilidade EF08CO03.
Quando trabalho Programação no 8º ano, procuro aproximar os algoritmos de situações que a turma consiga acompanhar passo a passo. Listas de nomes, notas, tarefas e chamados ajudam a discutir o que um procedimento faz com os dados: preservar uma ordem, localizar uma posição, selecionar itens por uma condição ou atualizar uma sequência depois de uma remoção. Não basta reconhecer palavras como lista ou matriz; é importante seguir as instruções e justificar o resultado.
Reuni aqui atividades sobre algoritmos clássicos para apoiar esse trabalho em Computação. As questões permitem observar como os estudantes interpretam índices, percorrem estruturas e acompanham conexões em um grafo. Também deixei comentários para cada alternativa, porque o erro pode mostrar se a dificuldade está na contagem, na leitura da condição ou no acompanhamento da ordem. Uso esse tipo de material como diagnóstico, prática guiada ou fechamento de uma sequência.
O que o aluno de 8º ano precisa saber sobre Programação - Algoritmos clássicos
Ao estudar algoritmos clássicos, o estudante precisa compreender que um algoritmo é uma sequência de instruções aplicada a dados para produzir um resultado. No 8º ano, isso pode ser trabalhado com estruturas familiares da Computação: listas e vetores, matrizes, filas e grafos. É importante saber percorrer uma lista sem perder a ordem, testar uma condição antes de incluir um item, remover elementos e atualizar as posições que vêm depois. Também é necessário entender que, em muitas linguagens, a indexação começa em zero: o terceiro elemento está no índice 2. Em uma matriz bidimensional, o acesso identifica uma linha e uma coluna. Para acompanhar um algoritmo, a turma deve observar como cada passo altera os dados, como acontece em uma soma acumulada. Em grafos direcionados, o caminho depende das conexões existentes e do sentido de cada aresta. Essas ideias permitem explicar não apenas qual alternativa está correta, mas por que os outros procedimentos não atendem ao objetivo.
As atividades desta página mobilizam a habilidade EF08CO03 e percorrem situações diferentes sem exigir que todas sejam resolvidas escrevendo código. O foco é interpretar a lógica: o que entra, o que fica de fora, em que ordem os dados são processados e como o estado da estrutura muda depois de cada instrução. Essa leitura cuidadosa é uma base útil para, em seguida, transformar procedimentos em pseudocódigo ou em programas.
O que ele precisa saber antes
Antes das questões, vale retomar os pré-requisitos que aparecem nelas. A turma precisa reconhecer listas e vetores como sequências de elementos, distinguir posição de valor e compreender que um índice identifica onde um item está. Em programação, a contagem pode começar em zero, por isso é útil representar alguns elementos com seus índices e conferir cada acesso.
Também é importante que os estudantes acompanhem instruções em sequência e compreendam condições simples, como verificar se um nome já foi incluído ou se o estado de um chamado é “aguardando”. Para matrizes bidimensionais, retome a ideia de duas dimensões, com um índice para linha e outro para coluna. Para grafos, apresente nós e conexões, destacando que uma conexão direcionada só pode ser percorrida no sentido indicado. Por fim, ao falar de filas, deixe claro que adicionar um elemento ao fim preserva a ordem de chegada dos itens selecionados.
Onde os alunos mais erram
Um erro recorrente nas questões é aplicar uma operação que parece útil, mas muda uma regra central do enunciado. Na remoção de duplicatas, por exemplo, ordenar os nomes pode eliminar repetições, porém também altera a ordem da primeira aparição. Outro risco é apagar todos os nomes repetidos, inclusive a ocorrência que deveria permanecer. Para evitar isso, eu peço que a turma escreva a lista resultante enquanto percorre a original.
Em índices, a confusão mais provável é contar como no cotidiano, começando pelo primeiro item como posição 1. Isso leva a escolher matriz[3] para o terceiro aluno, embora o índice 3 corresponda ao quarto elemento em uma indexação iniciada em zero. Nas matrizes bidimensionais, alguns estudantes podem ainda tentar acessar um elemento com uma única coordenada, sem considerar linha e coluna.
Outras questões exploram a leitura incompleta do algoritmo. Na soma prefixada, pode-se imaginar que a última posição continua com seu valor inicial, sem acompanhar a atualização feita na última iteração. Em grafos, um distrator plausível conta um caminho por A–C–D, embora não exista conexão de C para D. Na fila de chamados, o erro pode ser incluir registros concluídos ou cancelados, ou inverter a ordem, mesmo que o procedimento selecione apenas os aguardando e os acrescente ao fim.
Também observo que a remoção de um item de uma lista exige fechar o espaço deixado: os itens posteriores avançam, mas os anteriores permanecem. Em todas essas situações, vale solicitar que o estudante indique a regra do enunciado antes de escolher uma alternativa. Isso torna visível o raciocínio e ajuda a diferenciar um deslize de leitura de uma dúvida conceitual.
Como trabalhar em sala
- Faça uma simulação com cartões. Escreva nomes ou valores em papéis e percorra a sequência. Para retirar duplicatas, mantenha ao lado uma lista final e só acrescente um cartão quando aquele valor ainda não apareceu.
- Use uma tabela de rastreamento. Para cada passo, registre índice, valor lido, condição testada e resultado. Essa organização ajuda especialmente a discutir índices começando em zero e o acúmulo da soma prefixada.
- Desenhe grafos simples no quadro. Represente os nós por círculos e as conexões direcionadas por setas. Peça à turma para seguir apenas as setas existentes e anotar os caminhos que chegam ao destino sem repetir nós.
- Simule uma fila com a lista de chamados. Leia os registros na ordem apresentada e acrescente à fila apenas os que atendem à condição. Depois, compare a sequência obtida com respostas que incluem itens indevidos ou mudam a ordem.
- Peça justificativas curtas entre pares. Cada dupla pode explicar por que uma alternativa errada não satisfaz o enunciado. A conversa deve voltar às instruções do algoritmo, não a uma tentativa de adivinhar a resposta.
Essas propostas usam papel, quadro e discussão, e podem ser adaptadas ao tempo disponível. Eu costumo começar pela simulação concreta e depois pedir que a turma descreva o procedimento com palavras. Na etapa seguinte, os alunos resolvem individualmente questões semelhantes, explicitando os passos. Assim, a avaliação também serve como oportunidade de retomar conceitos que ainda precisam de prática.
Questões prontas de Programação - Algoritmos clássicos para o 8º ano (com gabarito comentado)
As questões a seguir cobrem situações de listas, matrizes, soma acumulada, grafos e filas. Em cada item, o comentário explica a resposta correta e o motivo pelo qual cada alternativa incorreta não atende ao problema.
1. Remover repetições sem mudar a ordem
No terminal de uma biblioteca comunitária, o cadastro dos visitantes ficou com repetições porque algumas pessoas confirmaram a mesma reserva mais de uma vez quando a internet caiu. A equipe anotou a lista na ordem em que as mensagens chegaram: Luiza, Bruno, Ana, Luiza, Carla, Bruno, Diego, Ana, Elisa. Para evitar dois chamados para a mesma pessoa, o sistema precisa gerar uma nova lista com cada nome apenas uma vez, mantendo a primeira aparição de cada um. Qual procedimento produz corretamente a lista final?
- ❌ A) Reverter a lista e copiar apenas os nomes que estiverem no final. Inverter a ordem altera a prioridade definida pela chegada das mensagens.
- ❌ B) Ordenar a lista e eliminar os nomes que aparecerem depois da primeira posição. Ordenar muda a sequência de chegada, que deve ser preservada no atendimento.
- ❌ C) Eliminar da lista todos os nomes que apareçam mais de uma vez. Isso apaga nomes válidos, mas é preciso manter a primeira aparição de cada pessoa.
- ❌ D) Separar a lista em dois grupos e juntar depois os nomes repetidos com os novos. Essa estratégia não garante a exclusão das repetições nem preserva a primeira aparição.
- ✅ E) Percorrer a lista e adicionar cada nome somente se ele ainda não tiver sido incluído. Assim, as repetições são removidas sem alterar a ordem da primeira aparição.
Gabarito: E. A regra importante é verificar cada nome ao percorrer a lista e só incluir quem ainda não está na lista final. O resultado é Luiza, Bruno, Ana, Carla, Diego e Elisa, nessa ordem.
2. Acessar o terceiro aluno em uma matriz
Dada uma matriz que armazena notas de alunos, como você acessa a nota do terceiro aluno?
- ✅ A) matriz[2]. Os índices começam em 0, então o índice 2 acessa o terceiro elemento.
- ❌ B) matriz[3]. O índice 3 acessa o quarto elemento; o terceiro é matriz[2].
- ❌ C) matriz[1]. O índice 1 acessa o segundo aluno.
- ❌ D) matriz[0]. O índice 0 acessa o primeiro aluno.
- ❌ E) matriz[4]. O índice 4 acessa o quinto aluno.
Gabarito: A. Para evitar o erro de contar a partir de 1, vale escrever a correspondência: primeiro elemento no índice 0, segundo no 1 e terceiro no 2.
3. Acesso a um elemento de matriz bidimensional
Como você pode acessar um elemento em uma matriz bidimensional em programação?
- ❌ A) Usando uma única coordenada. Matrizes bidimensionais requerem duas coordenadas para acessar um elemento.
- ✅ B) Utilizando um índice para cada dimensão. Para acessar um elemento, usa-se a notação [linha][coluna].
- ❌ C) Convertendo a matriz em uma lista. A conversão não é necessária para acessar elementos em uma matriz.
- ❌ D) Somente utilizando um loop. Loops podem ser usados, mas não são a única forma de acessar um elemento.
- ❌ E) Através de uma função de acesso genérica. Uma função pode ser criada, mas a forma padrão é acessar por índices.
Gabarito: B. Em duas dimensões, o acesso precisa identificar a posição nas duas direções: linha e coluna. Um único índice não especifica as duas coordenadas.
4. O resultado de uma soma prefixada
Considere o algoritmo in-place que calcula somas prefixadas em um vetor A[0..n-1]: para i de 1 até n-1 faça A[i] ← A[i] + A[i-1]. Depois da execução, o que contém A[n-1]?
- ❌ A) Contém a soma apenas dos primeiros n-1 elementos (A[0]..A[n-2]). Essa resposta deixa de incluir o último elemento original, embora o algoritmo também atualize essa posição.
- ✅ B) A soma de todos os elementos originais do vetor A[0..n-1]. A cada passo, A[i] recebe seu valor acumulado com A[i-1]; ao final, A[n-1] reúne todos os valores originais.
- ❌ C) Armazena a média aritmética dos elementos originais. O algoritmo não divide o resultado pela quantidade de elementos.
- ❌ D) Contém o produto de todos os elementos originais. As operações indicadas são somas, não multiplicações.
- ❌ E) Permanece igual ao último elemento original A[n-1]. Na última iteração, esse valor é somado a A[n-2], que já contém o acumulado anterior.
Gabarito: B. Acompanhe a execução: cada posição, a partir da segunda, recebe o valor que já tinha mais o acumulado da posição anterior. Portanto, a última posição termina com a soma de todo o vetor original.
5. Operação para organizar dados em uma lista
Qual das operações abaixo pode ser realizada em uma lista para organizar os dados?
- ❌ A) Somar todos os itens da lista. Somar calcula um valor, mas não muda a organização da lista.
- ❌ B) Apagar um item que não existe na lista. Não é possível remover da lista um item que não está nela.
- ✅ C) Ordenar os itens em ordem crescente. Ordenar coloca os itens em sequência, do menor para o maior, organizando os dados.
- ❌ D) Converter a lista em um gráfico. Um gráfico pode representar os dados, mas isso não organiza os itens da própria lista.
- ❌ E) Transformar a lista em um dicionário. Um dicionário é outro tipo de estrutura; a conversão não ordena os itens da lista.
Gabarito: C. A questão pede uma operação que organize os próprios itens. Ordenar altera a sequência da lista segundo um critério, neste caso, a ordem crescente.
6. Caminhos em um grafo direcionado
Em um software de organização de tarefas, as atividades podem ser representadas como nós em um grafo. Há conexões de mão única de A para B e de A para C, e de B para D. Quantos caminhos sem repetir nós existem para ir de A a D?
- ❌ A) Nenhum caminho. Embora A não se conecte diretamente a D, é possível chegar por A–B–D.
- ❌ B) Dois caminhos. Essa resposta conta A–B–D e A–C–D, mas não há conexão de C para D.
- ✅ C) Um caminho. Para chegar a D, é preciso passar por B; o caminho indicado é A–B–D.
- ❌ D) Três caminhos. Conta A–B–D, A–C–D e A–D, mas as conexões de C para D e de A para D não foram indicadas.
- ❌ E) Quatro caminhos. Inclui caminhos que exigiriam conexões não indicadas, como A–D ou A–C–B–D.
Gabarito: C. Seguindo as setas a partir de A, há uma conexão para B e outra para C. Somente B tem uma conexão indicada para D, então existe um caminho válido: A–B–D.
7. Atualizar as posições após excluir um elemento
Em um aplicativo da escola, a lista de representantes da turma aparece nesta ordem: Ana, Bia, Caio, Davi e Elisa. Caio deixou de ser representante e seu nome será excluído, sem alterar a ordem dos demais. Após excluir Caio, qual atualização das posições mantém a lista correta?
- ✅ A) Mover Davi para a posição 3 e Elisa para a posição 4. Ao excluir o item da posição 3, os elementos que estavam depois dele avançam uma posição.
- ❌ B) Mover Davi para a posição 3 e Elisa para a posição 5. Isso deixa uma posição vazia antes de Elisa, em vez de manter uma lista contínua.
- ❌ C) Mover Davi para a posição 2 e Elisa para a posição 3. Desloca também elementos anteriores, embora só os posteriores devam avançar.
- ❌ D) Mover Davi para a posição 4 e Elisa para a posição 5. Mantém as posições antigas dos elementos posteriores, como se a exclusão não exigisse fechar o espaço.
- ❌ E) Mover Bia para a posição 3 e Davi para a posição 4. Bia deve permanecer na posição 2; a remoção não desloca os elementos anteriores.
Gabarito: A. Depois de retirar Caio, a ordem fica Ana, Bia, Davi e Elisa. Só os itens que vinham depois do elemento removido avançam para preencher a posição disponível.
8. Formar uma fila apenas com chamados aguardando
O painel registra os chamados nesta ordem: A14 (aguardando), B09 (concluído), C30 (aguardando), D11 (cancelado) e E22 (aguardando). O programa percorre a lista e acrescenta ao fim de uma fila vazia apenas os códigos cuja situação é “aguardando”. Qual fila é formada?
- ❌ A) B09 e D11. Essa resposta seleciona justamente os registros que não estão aguardando.
- ❌ B) E22, C30 e A14. Inverte a ordem, embora os códigos sejam acrescentados ao fim da fila durante o percurso original.
- ❌ C) A14, C30, D11 e E22. Inclui D11, que está cancelado e não atende à condição.
- ✅ D) A14, C30 e E22. São os registros aguardando, mantidos na ordem em que aparecem na lista.
- ❌ E) A14, B09, C30 e E22. Inclui B09, que já foi concluído e não deve entrar na fila de atendimento.
Gabarito: D. Percorra os registros um por um, teste a situação e acrescente apenas os que aguardam. Como a inserção é feita no fim da fila, A14, C30 e E22 mantêm a ordem original.
Fechamento: da leitura à prática
Para consolidar esses conceitos, proponha que os estudantes expliquem o procedimento antes de marcar a resposta e, depois, confiram o resultado executando cada passo no papel. Você pode consultar mais questões da habilidade EF08CO03 e montar uma sequência de atividades conforme os objetivos da turma. No gerador de provas do GeraProva, é possível preparar avaliações e adaptar a prática; o cadastro grátis ajuda a começar.
Use estas questões como ponto de partida e ajuste o ritmo às necessidades da sua turma. O gabarito comentado pode apoiar a correção, mas a conversa sobre como cada algoritmo funciona é parte essencial da aprendizagem.
Encontrou um erro neste conteúdo? Veja nossa política editorial e avise a gente.
O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.
Habilidades BNCC deste artigo
Questões deste artigo com resolução completa
- No terminal de uma biblioteca comunitaria, o cadastro dos visitantes ficou com repeticões porque algumas…
- Dada uma matriz que armazena notas de alunos, como você acessa a nota do terceiro aluno?
- Como você pode acessar um elemento em uma matriz bidimensional em programação?
- Considere o algoritmo in-place que calcula somas prefixadas em um vetor A[0..n-1]: para i de 1 até n-1 faça…
- Qual das operações abaixo pode ser realizada em uma lista para organizar os dados?
- Em um software de organização de tarefas, as atividades podem ser representadas como nós em um grafo. Se há…
- Em um aplicativo da escola, a lista de representantes da turma aparece nesta ordem: Ana, Bia, Caio, Davi e…
- Enquanto agentes de manutenção acompanham pedidos de reparo de bicicletas públicas, o painel registra os…
Fontes
- Base Nacional Comum Curricular (BNCC), Ministério da Educação: basenacionalcomum.mec.gov.br
- Questões do acervo GeraProva sobre Programação - Algoritmos clássicos, com resolução comentada e análise de cada alternativa.
