GeraProva GeraProva Provas com IA para professores do Brasil
BNCC

Atividades sobre Programação usando registros e matrizes com gabarito — 7º ano (EF07CO01)

Atividades sobre Programação usando registros e matrizes com gabarito — 7º ano (EF07CO01)

Quando recebo EF07CO01 no planejamento do 7º ano, sei que não adianta apresentar definição de vetor, registro ou matriz e esperar que a turma faça a ponte sozinha. O desafio é transformar essas palavras em problemas que eles reconheçam: a lista de temperaturas, os livros da biblioteca, as cadeiras da sala, os pontos de um jogo.

Na prática, eu procuro fazer a turma perceber que programar também é decidir como organizar uma informação para usá-la depois. É aí que uma atividade bem contextualizada e uma avaliação com situações reais ajudam muito mais do que pedir apenas uma definição decorada.

O que a habilidade EF07CO01 pede, de verdade?

A habilidade EF07CO01 pede que o estudante crie soluções para problemas em que organizar dados faça diferença, escolhendo registros e matrizes unidimensionais — também chamadas de listas, vetores ou arrays — quando essas estruturas forem adequadas. Em linguagem de sala de aula, não basta saber que uma lista tem posições ou que um registro reúne campos: o aluno precisa olhar para uma situação, como anotar leituras de temperatura ou cadastrar livros, e justificar qual organização permite guardar, consultar, comparar e atualizar os dados com menos confusão. Também precisa começar a automatizar essa solução em uma linguagem de programação, ainda que com algoritmos simples, blocos ou código inicial. Eu trabalho a ideia de que cada posição de uma lista tem um significado combinado e que cada campo de um registro descreve uma característica do mesmo item. Assim, a programação deixa de parecer um monte de comandos e passa a responder a uma necessidade concreta de organização.

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

A habilidade pertence à unidade temática Pensamento Computacional, no objeto de conhecimento Programação usando registros e matrizes, para Computação no 7º ano. Vale consultar a consulta completa do código EF07CO01 antes de montar a sequência, especialmente para selecionar questões coerentes com o que foi trabalhado.

Como trabalhar EF07CO01 em sala?

  1. Começo com listas do cotidiano. Peço que a turma registre, em ordem, a quantidade de alunos presentes em cinco dias. Depois pergunto: por que não usar cinco variáveis soltas? A lista mostra que podemos percorrer, somar e encontrar o maior valor sem repetir o mesmo comando.
  2. Faço um cadastro de biblioteca no papel. Em duplas, os estudantes definem quais informações um livro precisa ter: título, autor, ISBN e situação do empréstimo. Em seguida, nomeiam os campos de um registro. É uma ponte simples entre ficha de biblioteca e estrutura de dados.
  3. Uso Scratch, Portugol ou pseudocódigo. Não preciso de laboratório sofisticado: posso projetar um algoritmo e discutir coletivamente. Uma lista com 24 temperaturas, por exemplo, permite localizar uma leitura por hora e calcular uma média.
  4. Proponho o “erro de organização”. Entrego dados mal estruturados, como uma frase longa com informações de livros, e peço que a turma explique por que é difícil atualizar ou localizar um dado. Depois, eles reorganizam tudo em campos ou posições.
  5. Amplio com mapa de assentos. Embora o foco formal mencione matrizes unidimensionais, comparar uma lista com a organização de linhas e colunas ajuda a turma a perceber quando um problema passa a exigir duas dimensões.

Como avaliar essa habilidade?

Uma boa questão de EF07CO01 apresenta um problema e pede uma decisão: qual estrutura representa melhor os dados, o que cada posição significa ou quais campos devem compor um item. Eu observo se o estudante preserva a ordem quando ela importa, se identifica informações de tipos diferentes em um mesmo registro e se entende o que se perde ao guardar somente um total ou uma informação isolada.

Um erro comum é avaliar só vocabulário, perguntando “o que é array?” sem contexto. Outro é aceitar qualquer lista como resposta, mesmo quando ela não mantém os dados necessários. Também evito cobrar sintaxe específica antes de verificar o raciocínio: trocar um colchete pode ser um deslize de escrita; escolher uma variável única para representar uma biblioteca inteira revela uma dificuldade conceitual. No acervo do GeraProva, há 50 questões alinhadas a esse código, úteis para variar níveis e contextos.

Questões prontas de EF07CO01 (com gabarito comentado)

1. Pilhas usadas na feira de ciências

Na feira de ciências do bairro, um grupo de estudantes montou um ponto de coleta de pilhas usadas. Ao final de cada dia, eles anotavam quantas pilhas chegavam de cada caixa de coleta: portaria, biblioteca, laboratório, secretaria e cantina. Para não perder os dados, a equipe queria usar um programa simples que guardasse os valores em uma ordem fixa, em que cada posição representasse um desses locais. Assim, seria possível somar o total da semana e descobrir, com facilidade, em qual caixa houve mais descarte.

Analise a situação apresentada e identifique a solução computacional mais adequada para automatizar esse registro de dados.

  • ❌ A) Usar uma tabela em que linhas e colunas guardem ao mesmo tempo os locais e os dias da coleta. Isso acrescenta duas dimensões sem necessidade para o registro pedido.
  • ❌ B) Usar um texto corrido para registrar os nomes dos locais e as quantidades em uma mensagem. O texto dificulta somas e comparações automáticas.
  • ❌ C) Usar um conjunto de itens sem ordem fixa, já que a posição de cada local não faz diferença. Aqui a posição importa, pois cada uma representa sempre o mesmo local.
  • ✅ D) Usar uma lista em que cada posição guarde a quantidade de pilhas de um local de coleta. A lista ordenada permite somar e comparar os valores.
  • ❌ E) Usar uma única variável para guardar apenas o total de pilhas recebidas em toda a semana. Isso elimina a informação necessária para descobrir o local com maior descarte.

2. Estado de um jogador

Em um jogo de tabuleiro, a ficha de cada jogador é representada por um array. Para evitar confusão, o jogo usa sempre esta ordem: primeiro, o número de vidas; depois, o número de pontos.

Um jogador tem 3 vidas e ganhou 2 pontos. Qual array representa corretamente o estado desse jogador, seguindo a ordem definida pelo jogo?

  • ❌ A) [0, 2]. Os pontos estão corretos, mas as 3 vidas foram ignoradas.
  • ❌ B) [3, 0]. As vidas estão corretas, mas os 2 pontos foram ignorados.
  • ❌ C) [5, 2]. O primeiro valor soma vidas e pontos, quando deveria registrar apenas vidas.
  • ✅ D) [3, 2]. A primeira posição representa 3 vidas e a segunda, 2 pontos.
  • ❌ E) [2, 3]. Os valores foram invertidos: pontos aparecem antes das vidas.

3. Ocupação de assentos

Um sistema de venda de ingressos precisa modelar a ocupação dos assentos numa sala, organizada em linhas e colunas. Que estrutura de dados e tipo de variável o algoritmo deve usar para permitir verificar disponibilidade e marcar assentos rapidamente?

  • ✅ A) Usar uma matriz (array bidimensional) representando linhas e colunas com valores livre/ocupado. Ela acompanha a disposição física e permite consultar a posição desejada.
  • ❌ B) Armazenar cada assento em uma variável distinta (A1, A2, ...). Muitas variáveis não escalam e impedem percorrer posições de modo programável.
  • ❌ C) Armazenar apenas o número total de assentos livres. O total não informa se um assento específico está disponível.
  • ❌ D) Usar uma pilha para marcar assentos conforme vendidos. A lógica de pilha não representa linhas e colunas nem permite consulta direta da posição.
  • ❌ E) Usar um conjunto com assentos disponíveis sem coordenadas. Sem coordenadas, não há como localizar diretamente linha e coluna.

4. Registro de dados de alunos

No contexto de construção de algoritmos, o que é um registro como estrutura de dados e para que serve ao organizar dados de alunos?

  • ✅ A) Uma estrutura que agrupa campos nomeados relacionados; serve para armazenar nome, idade e matrícula. Ela reúne atributos diferentes sob um mesmo identificador.
  • ❌ B) É um array que só admite elementos do mesmo tipo. Essa é a característica de arrays; registros podem ter campos de tipos diferentes.
  • ❌ C) É uma função que transforma dados dos alunos em texto. Registro armazena e organiza dados; não é função de processamento.
  • ❌ D) É uma única variável que armazena apenas um valor simples. Um registro reúne vários campos.
  • ❌ E) É um arquivo físico no disco usado para salvar os alunos. Aqui, registro é uma estrutura de dados em memória, não um arquivo.

5. Leituras de temperatura

Um sensor de temperatura registra uma leitura por hora durante 24 horas. No algoritmo que processa essas leituras, qual estrutura de dados é mais adequada para armazenar as 24 leituras e por quê? Cite a variável ou tipo a ser usado.

  • ❌ A) Usar um conjunto de leituras. Conjuntos podem eliminar valores repetidos e não preservam a ordem das horas.
  • ✅ B) Usar uma lista (vetor/array) de 24 elementos. Ela mantém a sequência temporal, permite acesso por índice e iteração.
  • ❌ C) Salvar cada leitura em 24 arquivos separados no disco. Isso é desnecessário e dificulta o processamento.
  • ❌ D) Armazenar cada leitura em 24 variáveis separadas distintas. A solução é repetitiva, pouco escalável e dificulta laços.
  • ❌ E) Usar uma pilha onde se empilha cada leitura. A pilha segue lógica LIFO e não atende bem ao acesso por horário.

6. Acervo da biblioteca escolar

Ao implementar um algoritmo para gerenciar o acervo da biblioteca escolar, cada livro precisa armazenar título, autor, ISBN e status de empréstimo. Qual estrutura de dados é mais apropriada para representar cada livro dentro do algoritmo e por quê?

  • ❌ A) Usar apenas um inteiro (ID) para cada livro, sem armazenar outros campos. O ID sozinho não descreve o livro.
  • ✅ B) Usar um registro (estrutura com campos) para cada livro. Ele agrupa texto, número e status, facilitando leitura e atualização.
  • ❌ C) Representar cada livro como uma única string concatenada “titulo|autor|ISBN|status”. Isso exige separar texto o tempo todo e torna os dados frágeis.
  • ❌ D) Usar um conjunto genérico de livros sem campos estruturados. Um conjunto não organiza diretamente título, ISBN e situação de empréstimo.
  • ❌ E) Armazenar somente um array de títulos, sem autor, ISBN ou status. Faltam informações essenciais para gerir o acervo.

Próximos passos

Eu sugiro começar com uma situação próxima da turma, pedir a justificativa da estrutura escolhida e só depois levar a solução para o código. Para montar listas de exercícios, provas e versões diferentes da mesma avaliação, experimente o gerador de provas do GeraProva. Se ainda não usa a plataforma, faça seu cadastro grátis.

Estas questões são um ponto de partida para o planejamento: adapte a linguagem, os exemplos e o nível de apoio à sua turma. O importante é fazer cada estudante entender por que organizar bem os dados é parte de resolver problemas com programação.

Artigos relacionados

0 comentários

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.