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

Подсчитать сумму членов ряда с точностью до 0.000001 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Execotryx
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 14
27.02.2010, 23:09     Подсчитать сумму членов ряда с точностью до 0.000001 #1
Проверьте, пожалуйста, два кода для одного задания:

Задание: Для ряда, члены которого вычисляются по формуле, соответствующей Вашему индивидуальному заданию, подсчитать сумму членов ряда с точностью до 0.000001 и сумму первых 10 членов ряда. Если Вы считаете это необходимым, можете упростить или преобразовать выражение.

формула: (-1^n)*( ((n+1)^2)/((n+2)^2))

Код 1
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
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
void main()
 
{
clrscr();
 
const float eps = 1e-6;                      // eps - the number, which determines the limit of precise
float a, b, c, sum, sum10;                   // variables for groupping of equialence and adding
for (int i; fabs(a) <= eps; i++)                 // this cycle will initiate the counting of all numbers,                                       //which are don`t exceed the "eps". 
    {
    c= pow ( (i+1), 2 );                    // division
    b= pow ( (i+2), 2 );                    // divider
    a= pow (-1,i) * ( 1-(c/b) );                            // equialence
    sum += a;                                               // adding to summ
    cout << i <<" iterations" << endl;          // the full amount of iterations
    }
for (int n = 0; n != 10; n++)                   // this cycle will initiate the counting of 10 numbers
    {
        c= pow ( (n+1), 2 );                // almost similiar to one above, but without checking on limit exceeding
        b= pow ( (n+2), 2 );
        a= pow (-1,n)*( 1-(c/b) );
        sum10 += a;
    }
 
cout<<"-------------------------------------------" << endl;
cout<< sum <<" - this is summ of "<<i<<" numbers" << endl;
cout<<"-------------------------------------------" << endl;
cout<< sum10 <<" - this is summ of "<<n<<" numbers" << endl;
getch();
}
Код 2
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
#include <conio.h>
#include <iostream.h>
#include <math.h>
int main(void)
 
{
 clrscr();
 
 long n;                            /* параметр ряда */
 double dbln;                       /* параметр ряда в форме с плавающей точкой */
 double sum=0;                      /* сумма членов ряда */
 double term;                       /* значение текущего члена */
 const double eps=0.000001;             /* предел точности */
 long k2=1;                         /* pow(2,n)*/
 short k1=1;                        /* pow(-1,n)*/
                        /* основной цикл; в модификациях вычисляются
                        следующие значения pow(2,n) и pow(-1,n)*/
   for (n=0; ; n++, k2*=2, k1=-k1)
   {
                        /* преобразование n в форму с плавающей точкой */
    // dbln=n;
                        /* вычисление очередного члена */
     term=pow(k1,n)*(1-(pow ((n+1),2))/(pow((n+2),2)));
                        /* проверка достижения предела точности */
     if (fabs(term)>=eps)
                        /* если не достигнут - накопление суммы */
    sum+=term;
                        /* если достигнут - выход из цикла */
     else break;
                        /* если 10 членов - вывод суммы */
     if (n==9)
    cout<<"‘Сумма 10 чисел* = \n"<<sum;
     }
                        /* конец основного цикла */
                        /* вывод окончательной суммы */
   cout<<"Полная сумма* "<<n<<" чисел"« = \n"<<sum;
  getch();
  return 0;
}
                            /* конец программы */
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2010, 23:09     Подсчитать сумму членов ряда с точностью до 0.000001
Посмотрите здесь:

Нужно подсчитать ряд с точностью до эпселон используя интегральный признак сходимости ряда C++
Найти сумму 15 членов ряда C++
Найти сумму 15 членов ряда C++
Найти сумму 15 членов ряда C++
C++ Найти сумму N членов ряда 1/i
C++ Подсчитать сумму ряда с введенной точностью ε и количество выполненных итераций
C++ Подсчитать сумму членов ряда

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
28.02.2010, 06:04     Подсчитать сумму членов ряда с точностью до 0.000001 #2
Код 1
По поводу результата сказать не могу, т.к. незнаю какой он должен быть, т.к. не шарю эти членоряды всякие. Но по коду следущее
строка 11 переменным не присвоены начальные значения, там хлам всякий хранится.
строка 12 не задано начальное значение i.
строка 16 зачем (с/b) вычитать из единицы? судя по формуле это делать не нужно?
если присвоить i 0 то цикл выполнится 1 раз... мне кажется условие не верное наверное.
cout << i <<" iterations" << endl; как я понимаю должно выводить общее количество итераций, так что идти оно должно после строки 19 вне цикла

код 2
строка 26 (fabs(term)>=eps) это ли не зацикливание, или я ошибаюсь?
Execotryx
1 / 1 / 0
Регистрация: 02.11.2009
Сообщений: 14
28.02.2010, 18:01  [ТС]     Подсчитать сумму членов ряда с точностью до 0.000001 #3
Ой, формулу неправильно написала
(-1^n)*(1- ((n+1)^2)/((n+2)^2))
Yandex
Объявления
28.02.2010, 18:01     Подсчитать сумму членов ряда с точностью до 0.000001
Ответ Создать тему
Опции темы

Текущее время: 11:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru