Форум программистов, компьютерный форум CyberForum.ru

Не могу понять, почему так заполняется вектор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано целое число N. Определите, есть ли в числе 2N цифра, равная введѐнной цифре К. http://www.cyberforum.ru/cpp-beginners/thread869246.html
Дано целое число N. Определите, есть ли в числе 2N цифра, равная введѐнной цифре К.
C++ Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. http://www.cyberforum.ru/cpp-beginners/thread869243.html
Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным. C++
решите пожалуйста вот эту задачу, вроде бы простая.. и если можно объясните, что где что значит. (С++) Разработать класс Airplane (самолет). Определить конструктор и деструктор. Реализовать объявленные методы доступа к данным.
C++ Ввести с клавиатуры число N и записать в новый файл, те слова, в которых содержится ровно N-одинаковых букв
Имеется тестовый файл, с текстом на английском языке. Ввести с клавиатуры число N и записать в новый файл, те слова, в которых содержится ровно N-одинаковых букв.
C++ Не отправляются заголовки из-за переноса \r\n http://www.cyberforum.ru/cpp-beginners/thread869230.html
Из за переноса строки \r\n заголовки не отправляются cout<<GetLastError(); дает 12150.. Если убрать переносы, то заголовок отправиться, но сервер примет все в кучу и не разберет.... мне тут POST отправить нужно.. в чем беда ? заголовок в таком стиле нужно отправить: POST http://www.site.ru/file.php HTTP/1.0\r\n Host: www.site.ru\r\n Content-Type: application/x-www-form-urlencoded\r\n...
C++ Ввести с клавиатуры целое число n и записать в новый файл те слова, которые содержат n или больше согласных Дана задача: Задан файл формата .txt с текстом на английском языке, ввести с клавиатуры целое число n и записать в новый файл те слова, которые содержат n или больше согласных. Заранее спасибо! подробнее

Показать сообщение отдельно
ritmix10
2 / 2 / 0
Регистрация: 04.02.2013
Сообщений: 92

Не могу понять, почему так заполняется вектор - C++

18.05.2013, 15:32. Просмотров 200. Ответов 0
Метки (Все метки)

Всем привет, возникла вот такая вот проблема с циклом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//функция который ищет мин и 2 макс элемента в спектре
double CspectralevaluationDlg::search_interf_max_and_min(vector<double>A)
{
    double temp=A[0];
    double max_1=0, max_2=0;
    int calc_max_1=0,calc_max_2=0,calc_min=0;
    double min_interf=0;
    CString quest;
    for(int i=0;i<A.size()/2;i++)
    {
        if(max_1<A[i])
        {
            max_1=A[i];
            calc_max_1=i;
        }
        else if(max_1!=A[i])
        {
            if(max_2<A[i])
            {
                max_2=A[i];
                calc_max_2=i;
            }
        }
    }
    y_max_spectr1=max_1;
    y_max_spectr2=max_2;
 
 
    temp=y_max_spectr1;
    if(calc_max_1>calc_max_2)
    {
        for(int i=calc_max_2;i<calc_max_1;i++)
        {
            if(temp>A[i])
            {
                temp=A[i];
            }
        }
    }
    else
        for(int i=calc_max_1;i<calc_max_2;i++)
        {
            if(temp>A[i])
            {
                temp=A[i];
                calc_min=i;
            }
        }
        y_min_spectr=temp;
 
        if( (calc_min>calc_max_1 && y_min_spectr<0.8*y_max_spectr1)|| (calc_min<calc_max_2&& y_min_spectr<0.8*y_max_spectr2))
        {
 
            
            quest.Format(L"Разрешимость Cпектра: %s",L"Да");
            spectr=true;//переведем значение, для того чтобы запомнить минимальную для для конкретного koef_noise
        }
        else
        {
            quest.Format(L"Разрешимость Cпектра: %s",L"Нет");
        }
        SetDlgItemTextW(IDC_difr,quest);
 
 
        return y_max_spectr1,y_max_spectr2,y_min_spectr;
        
}
 
DWORD WINAPI RUN(LPVOID pParam)
{
 
    CspectralevaluationDlg *ob=(CspectralevaluationDlg*)pParam;
    vector<double>L(ob->nn);
    double k_1=0;
    bool min_dw=false;
    double w=0;
    if(WaitForSingleObject(ob->h_data,20)==WAIT_OBJECT_0)
    {
        for(double k_noise=ob->koef_noise;k_noise<10;k_noise+=2)
        {
            for(int a=0; a<ob->dw;a++)
            {
 
                ob->Y=func(ob->A1,ob->A2,ob->w1,a,ob->nn,ob->Fd);
                ob->noise=Noise(ob->Y,ob->nn,k_noise);
                ob->zoom(ob->noise);
 
                ob->picture(&ob->pMemDc,ob->rect,ob->y_max,ob->y_min,1);
                ob->Draw(&ob->pMemDc,ob->rect,ob->noise,0,0,255,ob->y_max,ob->y_min,1);
                ob->y_max=0;
                ob->y_min=0;
 
                ob->akp.resize(ob->m);
                ob->akp=correlation(ob->noise,ob->m,ob->nn);
 
 
                ob->zoom(ob->akp);
                ob->picture(&ob->pMemDc1,ob->srect,ob->y_max,ob->y_min,1);
                ob->Draw(&ob->pMemDc1,ob->srect,ob->akp,0,0,255,ob->y_max,ob->y_min,1);
 
                
                k_1=ob->MHJ(L);
                SetEvent(ob->h_data);
 
                //каждый раз будем помещать этот коэф в вектор
                ob->temp_k_dw.push_back(k_1);
                double sum=0;
                for(int i=0;i<ob->temp_k_dw.size();i++)
                {
                    sum+=ob->temp_k_dw[i];
                }
                sum/=ob->temp_k_dw.size();
                //и усредним нащу зависимость, должно быть все норм
                ob->k_dw.push_back(sum);
                sum=0;
                ob->y_max=0;
                ob->y_min=0;
                ob->zoom(ob->k_dw);
                ob->picture(&ob->pMemDc2,ob->rect_k_dw,ob->y_max,ob->y_min,3);
                ob->Draw(&ob->pMemDc2,ob->rect_k_dw,ob->k_dw,0,0,255,ob->y_max,ob->y_min,3);
                ob->frame_k_dw_DC->BitBlt(0,0,ob->rect_k_dw.Width(),ob->rect_k_dw.Height(),&ob->pMemDc2,0,0,SRCCOPY);
 
 
                if(min_dw!=true)
                {
                    if(ob->spectr==true)
                    {
                        //w=a;
                        ob->dw_n.push_back(a);//кинем сюда dw, при котором разрешиться спектр при конкретном шуме
                        min_dw=true;
                        ob->spectr=false;
                    }
                }
            }
            min_dw=false;
            ob->k_dw.clear();
        }
    }
    return 0;
}
Вообщем проблема в следующем: в потоке у меня есть цикл в цикле:
первый цикл у меня меняет уровень шума в синусе, второй перебирает разностные частоты
Я хочу запомнить минимальную разностную частоту, при котором критерий Релея выполняется(функция search_interf_max_and_min)
Вообщем при первом проходе внутреннего цикла я нахожу мин частоту = 4, кидаю ее в вектор. Дадьше у меня цикл заканчивается, меняется уровень шума, опять все пошло, на какой-то определенной частоте Критерий Релея выполняется, но в вектор у меня записывается 0
Помогите пожалуйста в чем у меня проблема?
Очень нужно

Добавлено через 23 минуты
ну так может кто сказать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru