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
- Os aplicativos de mapa, como o GPS, ajudam o carro de entregas a chegar à casa do cliente. O aplicativo compara dois…
- Lia organiza carrinhos, bonecas e blocos separando cada tipo, colocando-os em caixas e guardando as caixas na…
- Em um jogo, uma personagem controlada por IA precisa chegar a um tesouro sem bater nas paredes. Qual instrução ajuda a…
- Desenhe um algoritmo em pseudocódigo que, dada uma matriz M[N][M] com 0 (livre) e 1 (bloqueado), identifique todas as…
- Em um programa, Substring(codigo, início, quantidade) pega letras do texto a partir da posição indicada, e…
- Projete um algoritmo em pseudocódigo que, dadas as variáveis temperatura (inteiro ºC), ocupacao (inteiro, número de…
🔎 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
