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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
#1

Почему равно нулю? - C++

04.07.2016, 13:56. Просмотров 603. Ответов 29
Метки нет (Все метки)

Здравствуйте!У меня проблемы с кодом!Оно всегда равняется нулю,а должно к числу.Помогите пожалуйста

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
#include <iostream>
#include <vector>
using namespace std;
class SISO
{
  virtual float simulate(float u) = 0;
};
 
class ARX: public SISO
{
private:
    vector<float> B;
    vector<float> A;
    int k;
    int dB, dA;
    vector<float> y_buf;
    vector<float> u_buf;
 
public:
 
    ARX()
    {
        k = 1;              
 
        dB = B.size();     
        dA = A.size();     
        for (int i = 0; i < dA; i++)    
        {
            A.push_back(0.36);
            A.push_back(0.20);
        }
        for (int i = 0; i < dB+k; i++)  
        {
            B.push_back(0.36  );
            B.push_back(0.20);
        }
    }
 
    void printTF()
    {
        cout << "K = z^(-" << k << ")*( ";
        for (int i = 0; i < B.size(); i++)
        {
            printf("%+.2fz^(%d) ", B[i], -i);
        }
        cout << ") / ( ";
        for (int i = 0; i < A.size(); i++)
        {
            printf("%+.2fz^(%d) ", A[i], -i);
        }
        cout << ")" << endl;
    };
 
    float simulate(float u)
    {
        float y = 0;
       
 
        
 
        for (int i = 1; i < dA; i++)   
        {
            y -= A[i] * y_buf.at(y_buf.size()-i);
           
        }
        for (int i = 0; i < dB; i++)    
        {
            y += B[i] * u_buf.at(u_buf.size()-k - i);
           
        }
        cout << "y = " << y << endl;
 
        return y;
    }
   
};
 
 
int main()
{
    
    ARX ols;
    ols.printTF();          
    ols.simulate(0);
    for (int i = 0; i < 40; i++)
        ols.simulate(1);   
 
    system("pause");
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2016, 13:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему равно нулю? (C++):

Почему 100/102 равно нулю? - C++
Когда на С++ считаю 100/102 с использованием флоат и дубль, он мне выдает 0, хотя это делает 0,9803921568627451. Использовал лонг ,но...

Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ - C++
Вот что нужно написать кодом: сравнить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем, например,...

Время выполнения программы равно нулю - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; int main() { clock_t start, end; float i; start =...

Деление двух int равно нулю - C++
делю 206 на 255 результат записываю во float, но переменная всегда имеет значение 0! почему? int Height = 206; int YMax = 255; ...

Остановить цикл ввода последовательности, если введенное значение равно нулю. - C++
В простую переменную последовательно вводятся числа. Окончание ввода 0. Сколько чисел больше своих соседей слева и справа. Вопрос в том как...

Выведите массив на экран и найдите количество элементов, значение которых равно нулю - C++
&quot;Данный двухмерный массив размерностью 5X4. Заполните его случайными числами с интервала -20 .. 20: 1. Выведите массив на экран и...

29
Blitzor DDD
13 / 13 / 1
Регистрация: 17.08.2015
Сообщений: 460
04.07.2016, 15:07 #16
Вот Ваш цикл, где заполняются элементы массивов А и В.
счетчик цикла i, конец, когда i достигнет значения dA и dB. Где у вас инициализация этих переменных?
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ARX()
    {
        k = 1;              
 
        vector<float> B(10);    
        vector<float> A(5);    
        for (int i = 0; i < dA; i++)    
        {
            A.push_back(0.36);
            A.push_back(0.20);
        }
        for (int i = 0; i < dB+k; i++)  
        {
            B.push_back(0.36  );
            B.push_back(0.20);
        }
    }
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 15:07  [ТС] #17
А равно 0,20
В равно 0,36
0
no_attention
27 / 27 / 13
Регистрация: 18.05.2016
Сообщений: 128
04.07.2016, 15:07 #18
помогите плиз, Вы создаёте объект класса ARX, у которого есть вектор B и вектор A. Эти векторы ничем не заполнены. С помощью size() Вы берёте их размер. Поскольку они пока ничем не заполнены, размер у них 0, поэтому циклы и не запускаются.
0
Blitzor DDD
13 / 13 / 1
Регистрация: 17.08.2015
Сообщений: 460
04.07.2016, 15:10 #19
помогите плиз, видите этот цикл?

C++ (Qt)
1
2
3
4
5
 for (int i = 0; i < dA; i++)    
        {
            A.push_back(0.36);
            A.push_back(0.20);
        }
чему равно dA?
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 15:11  [ТС] #20
инициализация переменных???

а надо приравнивать к числу как вы говорили: vector<float> B(0.20); Так?
0
Igor_s
11 / 11 / 4
Регистрация: 16.07.2014
Сообщений: 55
04.07.2016, 15:11 #21
Эти вектора для чего? они не чем не заполнены, а ты к ним обращаешься.
C++
1
2
y_buf
u_buf
Он и ругается, out_of_range.
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 15:14  [ТС] #22
for (int i = 0; i < dA; dA=0.20; i++) так?

Добавлено через 1 минуту
их надо стереть они вообще не нужны?
0
Blitzor DDD
13 / 13 / 1
Регистрация: 17.08.2015
Сообщений: 460
04.07.2016, 15:15 #23
помогите плиз, зачем вы убрали строчку dA=size...?

Вы вообще понимаете, что такое цикл и как он работает? Если dA будет равно 0.20, то у вас вообще цикл никогда не отработает. i увеличивается на единицу и цикл крутится до тех пор, пока i не будет равно dA
0
Igor_s
11 / 11 / 4
Регистрация: 16.07.2014
Сообщений: 55
04.07.2016, 15:16 #24
Напиши задание, что вообще нужно сделать?
0
_Ivana
3178 / 1794 / 153
Регистрация: 01.03.2013
Сообщений: 5,007
Записей в блоге: 2
04.07.2016, 15:30 #25
И на этом философском вопросе был взят таймаут
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 15:33  [ТС] #26
если честно то нет я ничего не понимаю в этом

Добавлено через 40 секунд
создать ARX модель
0
Blitzor DDD
13 / 13 / 1
Регистрация: 17.08.2015
Сообщений: 460
04.07.2016, 15:49 #27
помогите плиз, хорошо, что честно признаетесь))
Тогда Вам уж точно не следует начинать с таких программ. Начните с чего-нибудь попроще: с циклов, с одномерных массивов и т.д.
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 15:52  [ТС] #28
даа конечно но проблема в том что это домашнее задание

Добавлено через 1 минуту
может подскажете примерно неправильные части где нужно исправить
0
Blitzor DDD
13 / 13 / 1
Регистрация: 17.08.2015
Сообщений: 460
04.07.2016, 16:21 #29
помогите плиз, Вам просто не сделать это сейчас. Закажите программу, не мучайтесь, если даже не понимаете, что такое циклы, то начните с азов, не мучайте себя
0
помогите плиз
2 / 2 / 0
Регистрация: 14.05.2015
Сообщений: 41
04.07.2016, 16:23  [ТС] #30
да да но мне все равно нужен рабочий код
0
04.07.2016, 16:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2016, 16:23
Привет! Вот еще темы с ответами:

Как правильно создать массив из номеров элементов, значения которых равно нулю - C++
Добрый день! Передо мной стоит следующая цель: создать новый массив из номеров элементов, значения которых равно нулю. Также интересует...

Из заданой марицы A(N,N)удалить строку и столбец, в которых находяться первый элемент, равно нулю. - C++
Из заданой марицы A(N,N)удалить строку и столбец, в которых находяться первый элемент, равно нулю. Полученою матрицу умножить. Элементы...

Почему произведение всегда равно 0? - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;rus&quot;); srand(time(0)); const int...

Первый элемент массива равен 1 а остальные почему-то нулю - C++
Здраствуйте есть вопрос к задаче: дана программу реализовывающую вычисление последовательности Фиббоначи до определённого номера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru