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

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

Войти
Регистрация
Восстановить пароль
 
mistake512
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 3
#1

Выводит крокозяблы при подсчёте ряда Тейлора - C++

14.11.2012, 01:52. Просмотров 320. Ответов 6
Метки нет (Все метки)

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
#include<iostream.h>
#include<math.h>
#include<windows.h>
 
long double fact(int N)
{
    if(N < 0) 
        return 0; 
    if (N == 0) 
        return 1;
    else 
        return N * fact(N - 1); 
}
int main() {
 
    int N=0;
    float E;
    float ch, xb, xe, dx, an=0;
    SetConsoleOutputCP(1251); 
    cout << "tochnost: ";
    cin >> E;
    cout << "xb";
    cin >> xb;
    cout << "xe";
    cin >> xe;
    cout << "dx";
    cin >> dx;
   
    
    for (float i=xb;i<=xe;i+=dx)
    {   
        
            while (an>=E)
                {
                an=pow(i,2*N)/fact(2*N);
                ch+=an;
                N++;                
                }
            an=0;
            N=0;
            cout <<ch<<'\n';
    }
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2012, 01:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выводит крокозяблы при подсчёте ряда Тейлора (C++):

Выводит #infoo при подсчёте суммы ряда - C++
Если я ввожу &quot;x&quot; очень большой(100 например), то программа не работает выводя кучу строк подряд что-то типа #infoo. При этом &quot;e&quot; может быть...

Почему при подсчёте min -выдаёт 0 из списка? - C++
Не пойму Почему при подсчёте min -выдаёт 0 из списка? При max всё нормально ... :( #include &lt;stdio.h&gt; #include &lt;iostream&gt; ...

При подсчёте косинуса компилятор выдаёт неверное значение - C++
И снова здравствуйте,возникла очередная проблема в моей программе,при элементарном подсчёте косинуса компилятор выдаёт неверное...

Задачка с рядами Тейлора выводит -1.#IND - C++
Вчера писали программу для рекуррентных рядов. Функция выдает решение, а вот с суммой ряда выходит незадача. При этом проверял везде,...

Табуляция ряда Тейлора - C++
Есть такой вот простенький ряд. Но все же я не могу с ним справиться. Нужно реализовать табуляцию этой функции на отрезке от А до В, как я...

Сумма ряда тейлора C++ - C++
e^(^-^x)^^^2 =\sum{} ((-1)^n*x^2^n)/n! (Е в степени X в степени 2) Пытался найти сумму ряда с заданной точностью eps. Новичок,...

6
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
14.11.2012, 02:14 #2
используй это
C++
1
  setlocale(LC_ALL,"Russian_Russia.1251");
вместо SetConsoleOutputCP(1251);
если я тебя правильно понял.
0
margarin
36 / 36 / 0
Регистрация: 02.06.2012
Сообщений: 332
14.11.2012, 02:47 #3
Цитата Сообщение от stawerfar Посмотреть сообщение
если я тебя правильно понял.
судя по его примеру нет... У него же в коде нету кириллицы или я не прав?
0
mistake512
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 3
14.11.2012, 04:16  [ТС] #4
не, тут не в этом дело было, я уже нашла причину ошибки, просто для переменной an нужно было задать значение и обнулять ch вот рабочий вариант:
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
#include<iostream.h>
#include<math.h>
#include<windows.h>
 
long double fact(int N)
{
    if(N < 0) 
        return 0; 
    if (N == 0) 
        return 1;
    else 
        return N * fact(N - 1); 
}
int main() {
 
    int N=0;
    float E;
    float ch, xb, xe, dx, an=0;
    SetConsoleOutputCP(1251); 
    cout << "Введите точность: ";
    cin >> E;
    cout << "Введите х начальное: ";
    cin >> xb;
    cout << "Введите х конечное: ";
    cin >> xe;
    cout << "Введите шаг dx: ";
    cin >> dx;
   cout <<"Значение функции"<<'\t'<<"Количество рядов"<<'\t'<<"Значение аргумента"<<endl;
    cout.precision(9);
    for (float i=xb;i<=xe;i+=dx)
    {   
        
            ch=0; 
            an=1;
            while (an>=E)
                {
                an=pow(i,2*N)/fact(2*N);
                ch+=an;
                N++;                
                }
            cout <<ch<<"\t\t\t\t"<<N<<"\t\t\t\t"<<i<<endl;
            an=0;
            N=0;
            
    }
return 0;
}
Добавлено через 16 минут
(под "крокозяблами подразумевались выводимые значения аргументов)))")
0
stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
14.11.2012, 04:53 #5
Ну тогда я тебе сказал что делать!!
0
margarin
14.11.2012, 17:57
  #6

Не по теме:

Цитата Сообщение от stawerfar Посмотреть сообщение
Ну тогда я тебе сказал что делать!!
неужели я так туплю... она же не добавляла твой кусок, она в цикле добавила обнуление - ну где тут то, что ты сказал то?О_о)

1
mistake512
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 3
15.11.2012, 13:10  [ТС] #7
Ты не тупишь)))))и да я только обнулила))....
0
15.11.2012, 13:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 13:10
Привет! Вот еще темы с ответами:

Разложения ряда Тейлора - C++
Программа не выводит ответ, подправьте пожалуйста код :cry: Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с...

Нахождение суммы ряда Тейлора - C++
Доброго времени суток.У меня проблема в программе.Она вроде бы работает но последнее значение х=0,8 выводить не хочет. код: #include...

синус и косинус Ряда Тейлора - C++
нужно задать диапазон до pi/4 что бы в ряде тейлора было меньше сумм помогите оптимизировать #include &lt;iostream&gt; #define...

уравнение с использование ряда тейлора - C++
Помогите решить уравнение с использованием рядов Тейлора для вычисления значения функции через цикл while


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

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

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