GeraProva GeraProva Provas com IA para professores do Brasil
Computação3º anoBNCC EF15CO02Difícil⏱ longo

Elabore um algoritmo em pseudocódigo que receba uma matriz 'sensores' (linhas = locais, colunas = dias) em que…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO02

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

Elabore um algoritmo em pseudocódigo que receba uma matriz 'sensores' (linhas = locais, colunas = dias) em que cada célula é um registro com campos: idSensor, leituras[24] (horas). O algoritmo deve calcular a média diária de cada sensor, filtrar sensores cuja média diária excede um limiar fornecido e retornar a lista desses sensores ordenada pela média decrescente. Use variáveis acumuladoras e um método de ordenação simples.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Algoritmo modelo (pseudocódigo): Entrada: sensores[L][D] // L locais, D dias; limiar (float) Lista resultados <- vazio Para i de 1 até L faça Para j de 1 até D faça soma <- 0 Para h de 1 até 24 faça soma <- soma + sensores[i][j].leituras[h] fimPara media <- soma / 24 Se media > limiar então adicionar (id = sensores[i][j].idSensor, media = media) em resultados fimSe fimPara fimPara // Remover duplicatas por id mantendo maior média mapaMedias <- vazio Para cada item em resultados faça se id não em mapaMedias ou item.media > mapaMedias[id] então mapaMedias[id] <- item.media fimSe fimPara // Converter mapa para lista para ordenar listaFinal <- lista de pares (id, media) de mapaMedias // Ordenação por média decrescente (ex.: ordenação por seleção) Para a de 1 até tamanho(listaFinal)-1 faça maxIdx <- a Para b de a+1 até tamanho(listaFinal) faça se listaFinal[b].media > listaFinal[maxIdx].media então maxIdx <- b fimSe fimPara trocar listaFinal[a] com listaFinal[maxIdx] fimPara Retornar listaFinal Observações: o algoritmo usa variável acumuladora 'soma' para calcular médias, um mapa para consolidar médias por sensor e uma ordenação por seleção para ordenar decrescentemente. Complexidade: cálculo das médias é O(L*D*24); ordenação por seleção é O(n^2) sobre número de sensores filtrados.

Explicação

O algoritmo apresentado efetivamente calcula a média diária de leituras de sensores, utilizando uma abordagem sistemática para acumular e filtrar dados com base em um limiar. A utilização de um mapa para consolidar as médias por sensor garante que não haja duplicatas, enquanto a ordenação por seleção organiza os resultados de forma decrescente. Essa estrutura permite que o algoritmo seja claro e eficiente, abordando todos os requisitos da questão.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmo em pseudocódigo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · algoritmos básicos

📚 Reveja

Revisar conceitos de média, filtragem e ordenação de dados.

⚠️ Erro mais comum

O aluno pode confundir a média aritmética com a soma total das leituras, não realizando a divisão correta pelo número de leituras.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 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

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.