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

Ряд сумм и производных - C++

Восстановить пароль Регистрация
 
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
14.10.2012, 00:02     Ряд сумм и производных #1
Дано натуральное число N, вычислить ∏(2+(1/i!)) и Ʃ((1+i)/i!),i=от 1 до n.
Я написал одну прогу на C++, но она неправильно сумму и производное считает.Помогите разобраться плз.По-моему факториал всю картину портит, не знаю как с ним разобраться
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<iostream.h>
 #include<math.h>
 void main ()
 {
 double N,S,P,f=1;
 int i;
 char Y;
 do
 {
 S=0,i=1,P=1;
 cout<<"N=";
 cin>>N;
 for(i=1;i<=N;i++)
 {
 f=f*i;
 S=S+((1+N)/f);
 P=P*(2+(1/f));
 }
 cout<<"S="<<S<<'\n'<<"P="<<P<<'\n';
 cout<<"Continue?Y|N"<<'\n';
 cin>>Y;
 }
 while (Y=='y'||Y=='Y');
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
14.10.2012, 00:38     Ряд сумм и производных #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
#include <iostream>
#include <math.h>
 
 using namespace std;
 
 int  main (){
 double N, S, P;
 int i;
 char Y;
 do
 {
 S = 0, i = 1, P = 1;
 cout << "N = ";
 cin >> N;
 for(i = 1; i <= N; i++)
 {
 double factorial = N;
 for(double l = 1, k = 0; l < N; l++){
 k = (N - l);
 factorial = factorial * k;
 }
 S = S+((1 + N)/ factorial);
 P = P*(2 + (1 / factorial));
 }
 cout << "S = " << S << '\n' << "P = " << P << '\n';
 cout << "Continue? Y|N" << '\n';
 cin >> Y;
 }
 while (Y == 'y' || Y == 'Y');
 }
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
14.10.2012, 00:46  [ТС]     Ряд сумм и производных #3
хммм, считает оно неправильно когда ввожу 2 сумма должна =3,5, а произведение 7,5.А у тя при этом 3 и 6.25.
JlightenDev_C++
 Аватар для JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
14.10.2012, 01:29     Ряд сумм и производных #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
#include <iostream>
#include <math.h>
 
 using namespace std;
 
 int  main (){
 double N, S, P;
 int i;
 char Y;
 do
 {
 S = 0, i = 1, P = 1;
 cout << "N = ";
 cin >> N;
 for(i = 1; i <= N; i++)
 {
 double factorial = i;
 for(double l = 1, k = 0; l < N; l++){
 k = (N - l);
 factorial = factorial * k;
 }
 S = S+((1 + i)/ factorial);
 P = P*(2 + (1 / factorial));
 }
 cout << "S = " << S << '\n' << "P = " << P << '\n';
 cout << "Continue? Y|N" << '\n';
 cin >> Y;
 }
 while (Y == 'y' || Y == 'Y');
 }
Смотри.
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
14.10.2012, 01:59  [ТС]     Ряд сумм и производных #5
хззззззз

Добавлено через 2 минуты
Книга1.xls
это я посмтрел как в екселе будет,а на с++ не все то же самое.
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
14.10.2012, 02:35  [ТС]     Ряд сумм и производных #6
это паезда,какая-то глюконутая задачка

Добавлено через 42 секунды
Добавлено через 40 секунд
Добавлено через 28 минут
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<iostream.h>
#include<math.h>
int main ()
{
    double N,S,P,f=1;
    int i;
    char Y;
    do
    {
        S=0,i=1,P=1;
        cout<<"N=";
        cin>>N;
        for(i=1;i<=N;i++)
        {
            f=f*i;
            S=S+((1+i)/f);
            P=P*(2+(1/f));
        }
        cout<<"S="<<S<<'\n'<<"P="<<P<<'\n';
        cout<<"Continue?Y|N"<<'\n';
        cin>>Y;
    }
        while (Y=='y'||Y=='Y');
}
Вот пашет,но правильно считает другие значения,только при перезапуске программы, а при продолжении не хочет правильно высчитывать.
snw
10 / 10 / 0
Регистрация: 11.10.2012
Сообщений: 93
14.10.2012, 14:19     Ряд сумм и производных #7
Конечно не будет правильно считать при продолжении, и сумма, и факториал, и тем более произведение, уже не нулевые.
Grind
1 / 1 / 0
Регистрация: 13.09.2012
Сообщений: 19
26.10.2012, 13:15  [ТС]     Ряд сумм и производных #8
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<iostream.h>
#include<math.h>
int main ()
{
    double N,S=0,P=1,f=1;
    int i=1;
    char Y;
    do
    {
        S=0,i=1,f=1,P=1;
        cout<<"N=";
        cin>>N;
        for(i=1;i<=N;i++)
        {
            f=f*i;
            S=S+((1+i)/f);
            P=P*(2+(1/f));
        }
        cout<<"S="<<S<<'\n'<<"P="<<P<<'\n'; 
        cout<<"Continue?Y|N";
        cin>>Y;
    }
    while (Y=='y'||Y=='y');
}
вроде пашет правильно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2012, 13:21     Ряд сумм и производных
Еще ссылки по теме:

C++ Сравнение производных классов
C++ Множественное наследование. Построение производных классов

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

Или воспользуйтесь поиском по форуму:
snw
10 / 10 / 0
Регистрация: 11.10.2012
Сообщений: 93
26.10.2012, 13:21     Ряд сумм и производных #9
помните всегда, даже возьмите за правило, что переменные надо инициализировать правильными начальными значениями.
Yandex
Объявления
26.10.2012, 13:21     Ряд сумм и производных
Ответ Создать тему
Опции темы

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