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
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
algoritmo em pseudocódigo
avaliacao
estrutura de dados · algoritmos básicos
Revisar conceitos de média, filtragem e ordenação de dados.
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.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Projete um algoritmo em pseudocódigo que, dada uma matriz M[R][C] em que cada célula contém o número de alunos de uma…
- Projete um algoritmo em pseudocódigo que, dada uma matriz 'leituras' (linhas = sensores, colunas = instantes), detecte…
- Escreva um algoritmo em pseudocódigo que leia uma sequência de dados numéricos de sensores, calcule a média e o desvio…
- Projete um algoritmo (pseudocódigo ou fluxograma) que leia as temperaturas de três sensores, calcule a média e ative a…
- Projete um algoritmo que, a partir de uma sequência de leituras de sensores (cada leitura: timestamp, sensorID, valor)…
- Descreva um algoritmo em pseudocódigo que, dado um conjunto de registros de alunos armazenados em uma matriz (cada…
🔎 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
