Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

реализация фильтрации данных на С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> реализация фильтрации данных на С++
Имя
Сообщение << Старые топики   Новые топики >>
реализация фильтрации данных на С++ - 2009-05-31 12:18:03.160000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
здраствуйте! сразу скажу, что в программировании я мало что понимаю, а как реализовать мою задачу, так вообще не особо…=\

задача достаточно интересная на мой взгляд, может кто возьмется помочь)
могу даже как нить потом отблагодорить (например денег на телефон кинуть)


суть задачи:

есть главная программа (мы её не касаемся и рассматриваем в качестве "черного ящика") необходимо создать библиотеку, которую можно подключить к этой программе, не затрагивая её! но для начала можно и не библиотеку, а обычный ЕХЕ…

суть библиотеки:

библиотека ПОСТОЯННО принимает данные из главной программы - координаты двух линий - в формате 11;22;33;44 - 55;66;77;88, где 11;22;33;44 - координаты начала и конца первой линии и 55;66;77;88 - соответственно второй. Получается, что нужно разбить эти значения на структуру. Затем идет фильтрация:

это сложнее всего описать, надо в живую объяснять=)
но попробую….
программа принимает первые 50 значений и рассчитывает их мат ожидание (т.е. среднее отклонение), а затем следующие значения, которые будут приниматься, сравниваются с этим мат ожиданием и если они не отклоняются от него более чем на 15%, то значение встает в этот список и мат ожидание пересчитывается, если же более 15% то число идет в другой список и при поступлении более 10 таких чисел подряд они все таки записываются в список и расчет ведется с ними)если менее 10, то они вообще выкидываются…
ну и эти данные также ПОСТОЯННО передаются обратно в главную программму….но с ЕХЕ разумеется этого не будет)и принимать можно по другому, либо путем ввода либо из файла….
Post #: 1
RE: реализация фильтрации данных на С++ - 2009-05-31 12:30:12.893333   
Korshun

Сообщений: 19
Оценки: 0
Присоединился: 2007-04-27 10:10:19.010000
каким образом программа передает эти значения? через консоль или сообщения или что???
Post #: 2
RE: реализация фильтрации данных на С++ - 2009-05-31 12:33:58.646666   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
ну для начала передачу не затрагиваем…..эти значения например из файла будут браться!или путем ввода, но вводить каждый раз больно долго!
Post #: 3
RE: реализация фильтрации данных на С++ - 2009-05-31 12:36:44.170000   
Korshun

Сообщений: 19
Оценки: 0
Присоединился: 2007-04-27 10:10:19.010000
еще просто объяснишь что такое мат. ожидание и формулу и возьмусь написать
Post #: 4
RE: реализация фильтрации данных на С++ - 2009-05-31 12:44:20.913333   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
Математи́ческое ожида́ние — понятие теории вероятностей. В зарубежной литературе обозначается через , в русской M[X]. В статистике часто используют обозначение μ.

в общем суть мат ожидания - это среднее всех чисел))
и кстати, вероятность появления нового числа равно - 1.
Post #: 5
RE: реализация фильтрации данных на С++ - 2009-05-31 12:45:52.800000   
Korshun

Сообщений: 19
Оценки: 0
Присоединился: 2007-04-27 10:10:19.010000
асю в пм кинь свою
Post #: 6
RE: реализация фильтрации данных на С++ - 2009-06-04 17:23:30.050000   
Славутиччч

Сообщений: 52
Оценки: 0
Присоединился: 2009-02-18 16:14:42.276666
всем здрасти! вот в принципе реализованная функция…но возникла проблема в том, чтобы её сделать со списком…=\
может кто бы смог помочь и реализовать??

заранее благодарю…


#include &lt;math.h&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; struct point_arr{//структура для точек определенной координаты &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long int coord;//мат ожидание &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; long int size;//размер &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; int sravnenie(int a, int b)//нахождение на сколько процентов они различаются { &nbsp;&nbsp;&nbsp; if(a&gt;b){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((a/b)-1)*100; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ((b/a)-1)*100; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; } point_arr plus_number(point_arr arr, int a)//добавление числа в структуру { &nbsp;&nbsp;&nbsp; arr.size++; &nbsp;&nbsp;&nbsp; arr.coord=arr.coord+((a-arr.coord)/arr.size);// / arr.size; &nbsp;&nbsp;&nbsp; return arr; } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- int main(int argc, char *argv[]) { &nbsp;&nbsp;&nbsp; const int firstsz = 50; &nbsp;&nbsp;&nbsp; int a[8], i, k, j; &nbsp;&nbsp;&nbsp; char c[255]; &nbsp;&nbsp;&nbsp; point_arr arr[8], arr_o[8]; &nbsp;&nbsp;&nbsp; bool b, w = false; &nbsp;&nbsp;&nbsp; FILE *stream, *stream1; &nbsp;&nbsp;&nbsp; stream = fopen("in.txt", "r" ); &nbsp;&nbsp;&nbsp; stream1 = fopen("out.txt", "w" ); &nbsp;&nbsp;&nbsp; for(i=0; i&lt;8; i++){//очистка &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[i].coord=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[i].size=firstsz; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[i].coord=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[i].size=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for(i=0; i&lt;firstsz; i++) {//чтение &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fscanf(stream, "%d;%d;%d;%d - %d;%d;%d;%d", &amp;a[0], &amp;a[1], &amp;a[2], &amp;a[3], &amp;a[4], &amp;a[5], &amp;a[6], &amp;a[7]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(k=0; k&lt;8; k++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[k].coord+=a[k]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; for(i=0; i&lt;8; i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[i].coord=arr[i].coord / arr[i].size; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stream1, "%d;%d;%d;%d - %d;%d;%d;%d\n", arr[0].coord, arr[1].coord, arr[2].coord, arr[3].coord, arr[4].coord, arr[5].coord, arr[6].coord,arr[7].coord); &nbsp;&nbsp;&nbsp; while(!(feof(stream))){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fscanf(stream, "%d;%d;%d;%d - %d;%d;%d;%d", &amp;a[0], &amp;a[1], &amp;a[2], &amp;a[3], &amp;a[4], &amp;a[5], &amp;a[6], &amp;a[7]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0; j&lt;8; j++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( sravnenie(arr[j].coord, a[j])&gt;15 ){//узнаем подходит или нет &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w = true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!w){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0; j&lt;8; j++){//добавляем в существующий &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[j]=plus_number(arr[j], a[j]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[j].coord=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[j].size=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stream1, "%d;%d;%d;%d - %d;%d;%d;%d\n", arr[0].coord,&nbsp; arr[1].coord, arr[2].coord, arr[3].coord, arr[4].coord, arr[5].coord, arr[6].coord, arr[7].coord); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b=false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b=true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0; j&lt;8; j++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[j]=plus_number(arr_o[j], a[j]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(arr_o[0].size&gt;=10){//использовать нужно этот массив, эл-ов больше 10 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(j=0; j&lt;8; j++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[j].coord=arr_o[j].coord; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr[j].size=arr_o[j].size; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[j].coord=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arr_o[j].size=0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } fclose(stream); fclose(stream1); &nbsp;&nbsp;&nbsp; system("PAUSE"); &nbsp;&nbsp;&nbsp; return EXIT_SUCCESS; }
Post #: 7
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> реализация фильтрации данных на С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.