С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 13

Найти сумму ряда с заданной точностью

13.01.2015, 20:26. Показов 1311. Ответов 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
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
int factorial(int k)
{
    int j=1;
    for(int i=1; i<=k; i++)
    {
        if ((k==0) || (k==1))
        return 1;
        else
        j*=i;
    }
    return j;
}
 
int main()
{
 
            SetConsoleCP(1251);
            SetConsoleOutputCP(1251);
 
    long double ldX, ldY, ldSummN, ldSummE, ldRn, ldE, ldA, ldB, ldStep, ldK, ldSummNp1;
    int nN, nNE, nNumOfSE;
    ldA=0.1;
    ldB=1;
    ldK=10;
    ldX=0.01;
    ldE=0.0001;
    ldStep=(ldB-ldA)/ldK;
    nN=0;
    ldSummN=0;
    ldSummE=0;
    ldRn=0;
    ldSummNp1=0;
    for (int ii; ii<=10; ii++)
        {
            ldX+=ldStep;
            ldY=pow(3,ldX);
            for (;nN<=10; nN++)
                {
                    ldSummN+=pow((log(3)*ldX),nN)/factorial(nN);
                    nNE=nN+1;
                    ldSummNp1+=pow((log(3)*ldX),nNE)/factorial(nNE);
                    if (fabs(ldSummNp1-ldSummN)<ldE) nNumOfSE=nNE;
                    for (int i; i<=nNumOfSE; i++) ldSummE+=pow((log(3)*ldX),i)/factorial(i);
                }
            cout << "X=" << ldX << "     " << "SN=" << ldSummN << "     " << "SE=" << ldSummE << "     \n";
            cout << "                    " << "Y= " << ldY;
        }
    system("PAUSE");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2015, 20:26
Ответы с готовыми решениями:

Найти сумму ряда с заданной точностью, если дан общий член ряда
Найти сумму ряда с точностью Е=-4 (0.0001) общий член которого n=n*-n2 (n kvadrat)... Надо написать программу, т.е текст..на языке Си...

Найти сумму ряда с заданной точностью
При некоторых заданных x,N и E, определяемых вводом, вычислите сумму N слагаемых заданного вида, а также сумму тех слагаемых, которые по...

Найти сумму ряда с заданной точностью
Здравствуйте! Объясните пожалуйста, кто знает в чем проблема? Вопрос такой: почему при вводе точности eps=0,00000000001 и х=1 не выводится...

6
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
13.01.2015, 20:35
Лучший ответ Сообщение было отмечено Alexander273 как решение

Решение

1.
C++
1
for (int ii; ii<=10; ii++)
Не уверен, что других ошибок нет, но здесь явный перл. ii создается и Ничем не инициализируется.
2. Наверно оно случайно заполняется числом большим 10 и цикл ни разу не выполняется!
3. Банально поставь там инициализацию, скажем
C++
1
for (int ii=0; ii<=10; ii++)
И гм. Вы До двойного цикла инициальзируете nN=0; потом внутри первого цикла
C++
1
for (;nN<=10; nN++)
Так если исправите первое что написал - то вложенный цикл будет выполняться только раз.
Надо
C++
1
for (int nN=0;nN<=10; nN++)
1
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 13
13.01.2015, 21:13  [ТС]
Спасибо, помогло. буду искать еще ошибки.
0
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
13.01.2015, 22:07
Так. С тем, что не выводится ничего - вроде разобрались.
Чтобы дальше было легче помочь - объясните, что должна делать эта программа.
0
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 13
14.01.2015, 07:16  [ТС]
Программа должна вычислять функцию y=3^x, с разложением ее в степенной ряд...
Е=0.0001; s=1+ln3*x/1! + .. + (ln3*x)^n/n!; n= 10; 0.1<=x<=1; вот так... в итоге она должна выводить точное значение функции при заданном Х, сумму без погрешности и сумму с погрешностью. общий член функции x^n/n!

Добавлено через 11 минут
Вот что имею на данный момент, выводит, видимо я ошибся в выводе количества слагаемых для вычисления суммы с погрешностью, там оно вычисляется если |S(n+1) - SN|<E то берется n+1 и уже считается SE, SE+= x^n/n! вот так...

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
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
int factorial(int k)
{
    int j=1;
    for(int i=1; i<=k; i++)
    {
        if ((k==0) || (k==1))
        return 1;
        else
        j*=i;
    }
    return j;
}
 
int main()
{
 
            SetConsoleCP(1251);
            SetConsoleOutputCP(1251);
 
    long double ldX, ldY, ldSummN, ldSummE, ldRn, ldE, ldA, ldB, ldStep, ldK, ldSummNp1;
    int nN, nNE, nNumOfSE;
    ldA=0.1;
    ldB=1;
    ldK=10;
    ldX=0.01;
    ldE=0.0001;
    ldStep=(ldB-ldA)/ldK;
 
    ldSummN=0;
    ldSummE=0;
    ldRn=0;
    ldSummNp1=0;
    for (int ii=0; ii<=10; ii++)
        {
            ldX+=ldStep;
            ldY=pow(3,ldX);
            for (int nN=0;nN<=10; nN++)
                {
                    ldSummN+=pow((log(3)*ldX),nN)/factorial(nN);
                    nNE=nN+1;
                    ldSummNp1+=pow((log(3)*ldX),nNE)/factorial(nNE);
                    if (fabs(ldSummNp1-ldSummN)<ldE) nNumOfSE=nNE;
 
                }
            for (int i=0; i<=nNE; i++) ldSummE+=(pow(log(3),i)*pow(ldX,i)/factorial(i));
            cout << "X=" << ldX << "     " << "SN=" << ldSummN << "     " << "SE=" << ldSummE << "     \n";
            cout << "           Y= " << ldY << "\n";
        }
    system("PAUSE");
    return 0;
}
0
 Аватар для SuurKissat
34 / 34 / 16
Регистрация: 11.01.2015
Сообщений: 130
15.01.2015, 00:59
Кажется разобрался. Вот вроде как надо работающий экземпляр.
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
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <math.h>
 
using namespace std;
 
int factorial(int k)
{
    int j=1;
    for(int i=1; i<=k; i++)
    {
        if ((k==0) || (k==1))
        return 1;
        else
        j*=i;
    }
    return j;
}
 
int main()
{
 
            SetConsoleCP(1251);
            SetConsoleOutputCP(1251);
 
    double ldX, ldY, ldSummN, ldSummE, ldRn, ldE, ldA, ldB, ldStep, ldK, ldSummNp1;
    int nN, nNE, nNumOfSE;
    ldA=0.1;
    ldB=1;
    ldK=10;
    ldX=0.01;
    ldE=0.0001;
    ldStep=(ldB-ldA)/ldK;
 
    ldSummN=0;
    ldSummE=0;
    ldRn=0;
    ldSummNp1=0;
    for (int ii=0; ii<=10; ii++)
        {
            ldX+=ldStep;
            ldY=pow(3,ldX);
            
            //Ключевая добавка!!! обнуляем
             ldSummN=0;
             ldSummE=0;
             ldSummNp1=0;
 
            for (int nN=0;nN<=10; nN++)
                {
                    ldSummN+=pow((log(3)*ldX),nN)/factorial(nN);
                    nNE=nN+1;
                    ldSummNp1+=pow((log(3)*ldX),nNE)/factorial(nNE);
                    if (fabs(ldSummNp1-ldSummN)<ldE) nNumOfSE=nNE;
 
                }
            for (int i=0; i<=nNE; i++) ldSummE+=(pow(log(3),i)*pow(ldX,i)/factorial(i));
            cout << "X=" << ldX << "     " << "SN=" << ldSummN << "     " << "SE=" << ldSummE << "     \n";
            cout << "           Y= " << ldY << "\n";
        }
    system("PAUSE");
    return 0;
}
Что исправил в твоем коде
1. Мелочь - у меня в моем MinGW почему-то cout выводил long double некорректно, заменил вынужденно на double
2. Главное и важное! Ты переменные - суммы задавал нулем один раз до циклов! Первый цикл считал как надо, а второй - начинал суммировать "с учетом" уже имеющегося там числа. Я добавил обнуления.
0
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 13
15.01.2015, 08:05  [ТС]
Спасибо, вроде все получилось, ну может я что-то не так объясняю или понял) просто сравнивать не с чем)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2015, 08:05
Помогаю со студенческими работами здесь

Найти сумму ряда с заданной точностью
Напишите пожалуйста код.

Найти сумму ряда с заданной точностью = 10
Народ, что-то не пойму, что имеется в виду: Как определяется и проверяется точность в коде? Добавлено через 56 минут Народ,...

Найти сумму ряда с заданной точностью
Нужно написать программу по вычислению суммы ряда y=1/x+1/x^2+...+1/x^n c точностью eps=0.001 Нужно сделать обязательно через функции. ...

Найти сумму ряда с заданной точностью
Найти сумму ряда с точностью Е=10-4, общий член которого An= (n!)/(n^n) правильно ли я написал программу ? #include...

Найти сумму ряда с заданной точностью
Доброго времени суток! Уважаемые, программисты))) Пожалуйста, подскажите, как решить данный пример??? ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru