Atividades de Programação - Linguagem de programação para a 1ª série do Ensino Médio com gabarito
Reuni questões de linguagem de programação para trabalhar lógica, tipos de dados, estruturas, algoritmos de ordenação e proteção de informações na 1ª série. As alternativas vêm acompanhadas de comentários para apoiar a correção e a retomada dos conceitos.
Quando trabalho Programação com a 1ª série do Ensino Médio, procuro aproximar a linguagem dos conceitos que sustentam qualquer programa: dados, condições, estruturas e algoritmos. Nem toda atividade precisa começar com um projeto extenso; interpretar um trecho de código, escolher uma estrutura adequada ou explicar uma troca de elementos também ajuda a tornar o raciocínio visível.
Nas questões desta página, reuni situações variadas de Computação, da execução de um if-else à organização de dados e à segurança de informações. Eu usaria o conjunto como diagnóstico, atividade de revisão ou base para uma prova. O gabarito comentado permite conversar não só sobre a alternativa certa, mas também sobre o motivo de cada distrator não atender ao enunciado.
O que o aluno de 1ª série precisa saber sobre Programação - Linguagem de programação
Para resolver atividades de linguagem de programação, o aluno precisa compreender que um programa representa dados e executa instruções de acordo com regras. Isso inclui reconhecer tipos básicos, como booleano, e acompanhar uma condição: comparar valores, decidir se ela é verdadeira e identificar qual bloco será executado. Também é importante relacionar a estrutura de dados ao problema, distinguindo campos de um registro, coleções em listas e representações de grafos. Ao estudar algoritmos, o aluno deve interpretar os passos descritos, identificar o método de ordenação e comparar propriedades como estabilidade, uso de memória e complexidade. A programação ainda envolve pensar nas consequências da forma como os dados são transmitidos e armazenados: informações sem proteção podem ser expostas, e senhas exigem práticas apropriadas de armazenamento. Não se trata de decorar nomes isolados, mas de justificar escolhas a partir das condições do problema, seguindo a execução com atenção e verificando se a solução atende às restrições apresentadas.
O que ele precisa saber antes
As questões partem de conhecimentos que podem ser retomados brevemente antes da aplicação. Para acompanhar o trecho condicional, é preciso compreender operadores básicos de comparação, como >, e a execução sequencial de comandos. Para escolher uma variável booleana, ajudam os tipos básicos de dados e os valores verdadeiro e falso.
Nas questões sobre ordenação, os pré-requisitos incluem comparação e troca de elementos, características dos algoritmos e noções de complexidade assintótica. Para estruturas de dados, vale revisar grafos, arestas ponderadas, grafos esparsos e a diferença entre matrizes e listas de adjacência. A questão sobre registro também pressupõe que o estudante conheça estruturas básicas e formas de organizar dados.
Por fim, as questões de segurança pedem noções de transmissão de dados pela internet, segurança da informação e proteção de dados pessoais. Se hash e salt ainda não foram discutidos, posso tratar a questão como uma oportunidade de introdução e explicar os termos antes de cobrar uma justificativa aprofundada.
Onde os alunos mais erram
Um ponto de atenção é interpretar corretamente as condições. Diante de x > 5, com x = 6, o distrator mais provável é escolher “Menor”, como se a comparação fosse falsa, ou supor que os dois blocos executam. Substituir o valor e acompanhar o fluxo evita esse salto.
Em algoritmos, há dois enganos recorrentes nas questões: atribuir à ordenação por bolha uma média de O(n log n) e ignorar que trocas adjacentes preservam a ordem relativa de elementos iguais. Também pode parecer que uma matriz de adjacência é sempre mais direta para um grafo; o cuidado é considerar que, em uma rede esparsa, ela reserva espaço até para pares sem ligação.
Nas estruturas de dados, o distrator da lista pode atrair quando o estudante percebe que há informação para armazenar, mas não considera que nome e preço são campos relacionados a um único produto. Já em segurança, confundir a falta de proteção com uma falha física do aparelho ou com mudança na velocidade não responde à causa descrita. Na questão de senhas, criptografia genérica pode parecer suficiente; é preciso observar que o foco está no armazenamento seguro das senhas.
Como trabalhar em sala
- Faça uma leitura guiada de condições: peça que a turma substitua os valores na comparação, marque verdadeiro ou falso e só então indique o bloco executado. Isso pode ser feito no quadro, sem computador.
- Simule a ordenação: escreva alguns números em cartões ou no quadro e acompanhe comparações entre vizinhos. Em outra rodada, compare a lista quase ordenada com as restrições de estabilidade e memória.
- Desenhe estruturas: represente um produto como um registro com campos nome e preço. Em seguida, desenhe vértices e ligações de uma rede esparsa para discutir o que uma lista de adjacência armazena.
- Converse sobre dados com exemplos: diferencie enviar informação sem proteção de um problema de funcionamento do aparelho. Para senhas, discuta por que armazená-las em texto simples aumenta o risco, sem pedir que estudantes compartilhem dados reais.
- Peça justificativas curtas: além de marcar a opção, cada estudante pode explicar por que um distrator não serve. Essa resposta ajuda a localizar se a dúvida está no conceito, na leitura ou na aplicação.
Questões prontas de Programação - Linguagem de programação para a 1ª série do Ensino Médio (com gabarito comentado)
As oito questões a seguir podem ser aplicadas em sequência ou selecionadas conforme o objetivo da aula. Mantive os enunciados e as alternativas, acrescentando comentários para facilitar a correção e a retomada.
1. Ordenação por bolha
Em uma indústria de logística, um software recebe uma lista de códigos de itens e precisa ordená-los. Observando o passo a passo curto a seguir: 1) comparar itens adjacentes; 2) trocar se necessário; 3) repetir até não haver trocas. Qual afirmação descreve corretamente esse algoritmo?
- ❌ A) É ordenação por bolha, estável e in-place; pior/médio O(n²); melhor caso O(n) com otimização de parada. Essa afirmação descreve corretamente as propriedades, mas é a alternativa correta? Atenção: na questão original, esta é a resposta correta; confira que a opção assinalada deve ser marcada como correta. ✅
- ❌ B) É ordenação por bolha, in-place, mas não é estável; pior/médio O(n²). Está errada porque trocas adjacentes preservam a ordem relativa de itens iguais.
- ❌ C) É divisão e conquista; separa a lista em partes e depois junta os itens. Está errada porque o procedimento descrito compara vizinhos e não divide a lista para depois reuni-la.
- ❌ D) É ordenação por bolha; pior caso O(n²); tempo médio O(n log n). Está errada porque o tempo médio da ordenação por bolha é O(n²), não O(n log n).
- ❌ E) É uma ordenação que não troca itens adjacentes durante o processo. Está errada porque o enunciado indica justamente que elementos adjacentes são trocados quando necessário.
Gabarito comentado: A. As comparações entre vizinhos identificam a ordenação por bolha. Com uma verificação que encerra o algoritmo quando não houve trocas, o melhor caso pode ser linear. No pior e no caso médio, o custo é quadrático.
2. Execução de uma condição if-else
Considere x = 6 e que o trecho usa uma linguagem em que print exibe o texto entre aspas. Qual o resultado da seguinte condição: if (x > 5) { print('Maior') } else { print('Menor') }?
- ❌ A) Nenhum resultado. Está errada porque, com x igual a 6, a condição é avaliada e um dos blocos executa.
- ✅ B) Maior se x for 6. Correta: 6 é maior que 5, então a condição é verdadeira e o programa exibe “Maior”.
- ❌ C) Não se aplica. Está errada porque o valor de x foi informado e pode ser comparado com 5.
- ❌ D) Erro de sintaxe. Está errada porque o enunciado define a convenção de exibição e pede a interpretação do trecho.
- ❌ E) Menor se x for 6. Está errada porque considera falsa uma comparação que, substituindo x por 6, é verdadeira.
Gabarito comentado: B. Primeiro substituímos x pelo valor dado: 6 > 5. Como a condição é verdadeira, executa-se o bloco do if, e não o else.
3. Estrutura para representar uma rede esparsa
Para representar uma rede de sensores esparsa com arestas ponderadas (por distância ou latência), qual estrutura de dados é mais eficiente para armazenar a rede e consultar as ligações de cada sensor, e por quê?
- ❌ A) Pilha, empilhando as arestas na ordem em que foram lidas. Está errada porque uma pilha dá acesso direto ao último elemento; localizar as ligações de um vértice exigiria percorrer ou desempilhar dados.
- ❌ B) Matriz de adjacência, representando todos os pares possíveis. Está errada para este caso porque reserva posições também para pares de sensores sem ligação, desperdiçando espaço em uma rede esparsa.
- ❌ C) Array simples, armazenando todas as informações sem estrutura. Está errada porque não organiza as arestas por vértice, dificultando encontrar as ligações e seus pesos.
- ✅ D) Lista de adjacência com registros de aresta (vértice destino, peso). Correta: guarda apenas as ligações existentes, seus destinos e pesos, e permite consultar as conexões de cada sensor.
- ❌ E) Matriz de incidência, com uma linha por vértice e uma coluna por aresta. Está errada porque pode ocupar muitas posições sem ligação; para uma rede esparsa, a lista de adjacência é mais econômica.
Gabarito comentado: D. A escolha leva em conta tanto a esparsidade quanto a consulta das ligações de cada vértice. Os registros de aresta podem associar o destino ao peso correspondente.
4. Tipo de variável para representar paridade
Em um algoritmo simples, você precisa guardar se um valor inteiro é par ou ímpar para uso posterior. Qual tipo de variável é mais adequada para armazenar essa informação?
- ❌ A) Vetor de inteiros com duas posições (uma para par, outra para ímpar). Está errada porque duplica a representação e permite estados ambíguos, quando basta indicar uma condição.
- ❌ B) Tipo void (sem valor). Está errada porque
voidnão armazena um valor que represente a paridade. - ❌ C) Variável float (número com ponto flutuante). Está errada porque a informação é uma condição verdadeira ou falsa, não um número decimal.
- ❌ D) Estrutura com dois booleanos (um para par e outro para ímpar). Está errada porque mantém estados duplicados que podem se contradizer.
- ✅ E) Variável booleana (true/false). Correta: um booleano representa diretamente se a condição escolhida, por exemplo “é par”, é verdadeira ou falsa.
Gabarito comentado: E. Como a informação é binária, um único booleano é suficiente. A escolha evita armazenar mais campos do que o problema exige.
5. Dados enviados sem proteção
Um aparelho mede o ar e manda os dados pela internet sem proteção. Qual frase mostra a causa e o que acontece?
- ❌ A) Sem proteção: os dados ficam escondidos. Está errada porque a ausência de proteção não torna os dados privados.
- ❌ B) Sem proteção: o aparelho para de medir. Está errada porque o enunciado informa que o aparelho mede o ar; o risco descrito diz respeito ao envio dos dados.
- ❌ C) Sem proteção: os dados ficam maiores. Está errada porque a falta de proteção não altera, por si só, o tamanho dos dados.
- ✅ D) Sem proteção: alguém pode ver os dados. Correta: sem uma proteção adequada, outra pessoa pode ter acesso às informações transmitidas.
- ❌ E) Sem proteção: os dados chegam mais rápido. Está errada porque velocidade de envio não é a consequência apresentada pela falta de proteção.
Gabarito comentado: D. A resposta relaciona a causa — envio sem proteção — ao risco de acesso não autorizado. Ela não confunde segurança com funcionamento ou desempenho do aparelho.
6. Proteção de senhas armazenadas
Em uma indústria de tecnologia, uma aplicação coleta dados de usuários. Qual prática de segurança/privacidade deve ser adotada para reduzir riscos de vazamento de dados e proteger as informações sensíveis, como senhas?
- ❌ A) Armazenar senhas em texto simples. Está errada porque, se o banco for comprometido, as senhas ficam expostas de forma diretamente legível.
- ❌ B) Criptografar dados apenas sem considerar senhas. Está errada porque não responde especificamente à necessidade de proteger as senhas armazenadas.
- ❌ C) Coletar menos dados sem consentimento. Está errada porque a redução da coleta pode ser uma boa prática, mas a alternativa não protege as senhas já coletadas.
- ✅ D) Criptografar senhas com hash e salt. Correta: o uso de hash com salt dificulta o aproveitamento de senhas caso os dados armazenados sejam expostos.
- ❌ E) Compartilhar dados com terceiros sem consentimento. Está errada porque compromete a privacidade e aumenta os riscos de uso indevido das informações.
Gabarito comentado: D. A questão pede uma prática voltada às senhas, não apenas uma medida genérica para outros dados. O hash com salt é a opção indicada entre as alternativas para reduzir o risco em caso de exposição do banco.
7. Estrutura para reunir campos de um produto
Em uma atividade de Computação, uma escola precisa representar, na memória do computador, os dados de um único produto escolhido para uma demonstração. Esse produto terá exatamente dois campos: nome e preço. O programa deverá apenas consultar e atualizar esses dois campos, mantendo-os associados ao mesmo produto; não será necessário armazenar outros produtos nem organizar os dados em linhas e colunas. Com base nessa situação, qual estrutura de dados é mais adequada para representar o produto e manter associados seu nome e seu preço?
- ❌ A) Matriz. Está errada porque organiza dados em linhas e colunas, necessidade que não aparece no enunciado.
- ❌ B) Lista. Está errada porque costuma representar uma sequência ou coleção; aqui, os campos diferentes pertencem a um único produto.
- ❌ C) Grafo. Está errada porque a situação não envolve vértices e conexões entre entidades.
- ✅ D) Registro. Correta: um registro reúne campos diferentes associados à mesma entidade, neste caso, nome e preço do produto.
- ❌ E) Fila. Está errada porque a fila organiza elementos segundo uma ordem de entrada e saída, o que não é necessário para consultar os campos.
Gabarito comentado: D. A pista central é manter dois campos de naturezas diferentes associados ao mesmo produto. Um registro atende a essa organização sem criar uma coleção ou uma estrutura de relações.
8. Algoritmo para uma lista quase ordenada
Uma equipe de uma biblioteca digital precisa ordenar 50 mil registros pelo título das obras. A lista já está quase ordenada: em geral, cada registro está a poucas posições de sua posição final. Além disso, os registros que possuem títulos iguais devem manter a ordem original de cadastro, e o programa dispõe de pouca memória adicional. A equipe deseja escolher, inicialmente, um algoritmo adequado a essas condições. Com base nas características da lista e nas restrições de memória e estabilidade apresentadas, qual algoritmo de ordenação deve ser escolhido inicialmente?
- ❌ A) Seleção. Está errada porque, apesar de usar pouca memória adicional, normalmente realiza muitas comparações mesmo quando os dados já estão quase ordenados e não é necessariamente estável.
- ❌ B) Bolha. Está errada porque pode ser estável e usar pouca memória, mas tende a fazer muitas comparações para uma lista grande.
- ❌ C) Rápida. Está errada porque a implementação usual não é estável e pode exigir cuidados adicionais com o desempenho em certas distribuições.
- ❌ D) Combinação. Está errada porque, embora possa ser estável e tenha bom desempenho assintótico, costuma precisar de memória auxiliar proporcional ao tamanho da lista.
- ✅ E) Inserção. Correta: aproveita a ordem existente em uma lista quase ordenada, pode ser estável e usa memória adicional constante.
Gabarito comentado: E. A decisão considera o conjunto de restrições, não apenas qual algoritmo é conhecido por ser rápido em geral. A proximidade dos registros de suas posições finais favorece a inserção; estabilidade e memória também combinam com o cenário.
Fechamento: transforme as respostas em próximos passos
Depois da correção, vale separar as dúvidas por conceito: condições, tipos de dados, estruturas, ordenação ou segurança. Retomar o raciocínio por trás de cada alternativa ajuda a planejar uma explicação curta ou uma nova atividade. Você também pode explorar questões da habilidade EM13CO03, questões da habilidade EM13CO02, questões da habilidade EM13CO08 e questões da habilidade EM13CO13.
Para montar uma avaliação com itens alinhados ao seu planejamento, acesse o gerador de provas do GeraProva ou faça seu cadastro grátis.
Use estas questões como ponto de partida e ajuste a aplicação ao que sua turma já estudou. No GeraProva, você pode organizar atividades e provas com mais praticidade para seguir com o trabalho em sala.
O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.
Criar minha prova