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

Вычисление последовательностей в C++ - C++

Восстановить пароль Регистрация
 
Sentteriys
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 13
28.02.2011, 19:11     Вычисление последовательностей в C++ #1
Не могу разобраться, как решить данную задачку в С++? Недавно начал изучать C++,знаю что нужно сделать цикл, но как, да и факториал смущает. http://content.foto.mail.ru/mail/sen...nswers/i-9.jpg
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2798 / 1574 / 246
Регистрация: 03.05.2010
Сообщений: 3,653
28.02.2011, 21:05     Вычисление последовательностей в C++ #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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/////////////////////////////////////////////////////////////////////////////////////////
//Даны действительное число x и натуральное число N. Вычислить:
//S = x - x^3 / 3! + x^5 / 5! +...+ (-1)^(3N + 1) * x^(2N + 1) / (2N + 1)!
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
 
    struct  T_summand
    {
        double  x_;
        int     n_;        
        double  numerator_;
        double  denominator_;
        //-------------------------------------------------------------------------------
        T_summand(double  x) 
            : x_            (x), 
              n_            (1),
              numerator_    (x),
              denominator_  (1)
 
        {}
        //-------------------------------------------------------------------------------
        double  operator++(int)
        {
            double  old_val = numerator_ / denominator_;;
            n_ += 2;
            numerator_    *=  -x_  *  x_;
            denominator_  *=   n_  *  (n_ - 1);
            return  old_val;
        }
    };
 
    std::cout <<     "Введите действительное число x = ";
    double  x = 0;
    std::cin >> x;
 
    int  N = 0;
    do
    {
        std::cout << "Введите натуральное число    N = ";
        std::cin >> N;
    }while(N < 0);
 
    T_summand  summand(x);
    double  sum = 0;
    for(int  i = 0; i <= N; ++i)
    {
        sum += summand++;
    }
 
    std::cout << std::endl
              << "Сумма  ряда "
              << std::endl
              << "x - x^3 / 3! + x^5 / 5! +...+ (-1)^(3N + 1) * x^(2N + 1) / (2N + 1)!"
              << std::endl
              << "равна "
              << sum
              << std::endl;   
}
Sentteriys
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 13
28.02.2011, 21:28  [ТС]     Вычисление последовательностей в C++ #3
Спасибо за помощь, но такого, что вы написали, мы ещё не проходили) Должно получиться что-то типа вот такого примера, я бы сделал сам сделал, но не знаю как в С++ считать факториал.
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
#include "stdio.h"
#include "math.h"
int main ( )
{
    int  i, n;
    float x, s, a;
    printf("n=");
    scanf("%i",&n);
    printf("x=");
    scanf("%f",&x);
// инициализация переменных
    i=0;
    a=sin(x)/x;
    s=0;
//цикл для вычисления элементов и //суммы последовательности
    for (i=1;i<=n;i++)
    {
         a=pow(-1,i)*pow(sin(x),i)/pow(x,i);
         s=s+a;
    }
//вывод полученной суммы на экран
printf("s=%f \n", s);
    return 1;
}
p.s. это пример из лекции, но лично у меня он не работает. Функция в примере: S=(sin(x)/x)-(sin^2(x)/x^2)+...((-1)^n)*(sin^n(x)/x^n))
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
28.02.2011, 21:32     Вычисление последовательностей в C++ #4
Цитата Сообщение от Sentteriys Посмотреть сообщение
но не знаю как в С++ считать факториал.
Теперь знаете
C++
1
int f(int n){ return ( n < 2 ) ? 1 : n * f(n-1); }
Yandex
Объявления
28.02.2011, 21:32     Вычисление последовательностей в C++
Ответ Создать тему
Опции темы

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