Ir ao conteúdo

Posts recomendados

Postado

Pessoal, é o seguinte: eu tenho uma serie de dados de medições de sensores separados linha a linhas. Nessas linhas eu tenho a data em que as medições foram feitas. O que eu preciso fazer é analisar se as datas de uma linha e outra são iguais, se sim o meu programa deve fazer a média entre os valores dos sensores.

 

exemplo: 

(data;hora;temperatura;umidade;pressão)

 

20190101;1200;33.3;88;1010.5

20190101;1800;27.3;80;1011.8

20190101;0000;18.7;66;1015.6

20190102;1200;30.3;87;1009.3

20190102;1800;28.7;78;1017.5

 

As linhas 1, 2 e 3 tem datas iguais, ou seja, o programa deve fazer uma média entre os dados dos sensores das linhas 1, 2 e 3.

A linha 4 não é igual a linha três, mas é igual a 5, ou seja, o programa deve fazer uma média entre os dados do sensores das linhas 4 e 5.

 

Como posso começar?? Me ajudem!!

 

 

 

 

  • Curtir 1
Postado

A primeira coisa e converter cada linha em um campo separado do tipo necessário. Neste exemplo abaixo, a linha é varrida e cada campo é separado em um campo da estrutura "leitura":

#include <iostream>

using namespace std;

struct leitura
{
    int data, hora;
    float temperatura, umidade, pressao;
    
};

void separa_dados (string str, leitura* dado)
{
    float dados[5];
    
    int pos1;
    int pos2 = -1;
    for (int i=0; i < 5; i++)
    {
     pos1 = pos2+1;    
     pos2 = str.find(";", pos1);
     dados[i] = stof(str.substr(pos1, pos2-pos1));
    }
    
    dado->data = dados[0];
    dado->hora = dados[1];
    dado->temperatura = dados[2];
    dado->umidade = dados[3];
    dado->pressao = dados[4];
};

int main()
{
    leitura dado;
    string str = "20190101;1200;33.3;88;1010.5";
    
    separa_dados(str, &dado);
    
    
    cout << dado.data << " " << dado.hora << " " << dado.temperatura << " " << dado.umidade << " " << dado. pressao;

    return 0;
}

 O próximo passo é você fazer de forma iterativa, para cada linha chamar a rotina separa_dados e fazendo dos cálculos.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!