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

Найти сумму ряда с точностью эпсилон (е) - C++

Восстановить пароль Регистрация
 
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
19.01.2014, 14:29     Найти сумму ряда с точностью эпсилон (е) #1
Дано задание.Найти сумму ряда с точностью эпсилон(е),общий член которого равен а(n) = (3*n!)/(2*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
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
 
 
 
int main() {
    setlocale (LC_ALL,"RUS");
    double eps;
    int n=1;
    double Sum=0.0,a=1.0;
    cout<<"Введите вещественное eps>0 "<<endl;
    cin>>eps;
    do { 
        a=(double) (3*n)/((2*n)*(2*n));
        Sum=Sum + a;
        n++;
    }  while (abs(a)>eps);
    cout<<"Сумма ряда,вычисленная с заданной точностью  =  "<<Sum<<endl;
    system("pause");
    return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korep
 Аватар для korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 566
19.01.2014, 14:36     Найти сумму ряда с точностью эпсилон (е) #2
каку ошибку пишет?
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 14:58     Найти сумму ряда с точностью эпсилон (е) #3
uemaka,
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
#include <iostream>
#include <locale>
#include<cmath>
 
int factorial(int n)
{
    return !n ? 1 : n * factorial(n - 1);
}
using namespace std;
int main()
{
    setlocale (LC_ALL,"RUS");
    double eps;
    int n=1;
    double Sum=0.0,a=1.0;
    cout<<"Введите вещественное eps>0 "<<endl;
    cin>>eps;
    do
    {
        a=(double) (3*factorial(n))/factorial((2*n));
        Sum=Sum + a;
        n++;
    }
    while (fabs(a)>eps);
    cout<<"Сумма ряда,вычисленная с заданной точностью  =  "<<Sum<<endl;
    //system("pause");
    return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.01.2014, 18:16     Найти сумму ряда с точностью эпсилон (е) #4
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
#include <iostream>
#include <limits>
#include <iomanip>
#include <cassert>
 
using ull = unsigned long long;
 
ull factorial(size_t n)
{
   assert(n <= 22);
   ull ret_value = 1;
   for (size_t i = 1; i <= n; ++i)
      ret_value *= i;
   return ret_value;
}
 
//(3*n!)/(2*n)!
float calculate(size_t n)
{
   assert(n <= 11);
   ull numerator = 3 * factorial(n);
   ull denominator = factorial(2 * n);
 
   return static_cast<float>(numerator) / denominator;
}
 
int main()
{
   const float epsilon = std::numeric_limits<float>::epsilon();
   std::cout << "epsilon for float = " << std::fixed << std::setprecision(25)
             << epsilon << "\n\n";
 
   float sum = 0.0f;
   float current;
   size_t i = 1;
   do
   {
      current = calculate(i);
      sum += current;
      std::cout << "sum = " << std::fixed << std::setprecision(25) << sum << "\n";
      ++i;
   } while (current >= epsilon);
 
   std::cout << "\nResult: " << sum << std::endl;
   return 0;
}
Yandex
Объявления
19.01.2014, 18:16     Найти сумму ряда с точностью эпсилон (е)
Ответ Создать тему
Опции темы

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