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

расчитать значение выражения по формуле - C++

Восстановить пароль Регистрация
 
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
06.11.2011, 19:42     расчитать значение выражения по формуле #1
Делаю лабораторную работу. Необходимо написать программу, чтобы высчитывать по формуле, которая есть на рисунке во вложениях.
По этой теме я как-то вообще не разобрался. Поэтому приветствую любые ссылки на эту тему, примеры программ. если есть желание, можете и мою решить.
Конкретно могу сказать, что я не понимаю как связаны
i, n и eps, к примеру
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Krasti
27 / 27 / 3
Регистрация: 07.11.2010
Сообщений: 140
06.11.2011, 19:49     расчитать значение выражения по формуле #2
C++
1
2
3
4
5
6
7
8
9
10
11
int main ()
{
double summ = 0;
for ( int i = 1; i < n; i++ )
{
summ *=  ( 3 * i - 2 ) / ( 2 * i + 5 );
}
std::cout << summ;
getchar ();
return 0;
}
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
06.11.2011, 21:17  [ТС]     расчитать значение выражения по формуле #3
Krasti, почему-то у меня не получается ее запустить. microsoft visual studio 2008
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
08.11.2011, 17:48  [ТС]     расчитать значение выражения по формуле #4
ни у кого нету больше идей?

Добавлено через 2 часа 44 минуты
вот что у меня получилось, но не знаю в чем ошибка
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
# include "iostream"
# include <math.h>
# include "iomanip"
# include "strstream"
# include "fstream"
using namespace std;
 
int main()
{
    double a,s,eps;
    int i,tmp;
    fstream file;
    cout<<"Hi guys! This program is designed Losev Kirill to calculate the value using the formula!"<<endl;
    
    do 
    {
        cout<<endl<<"Please, enter eps=";
        cin>>eps;
            if ((eps<=0)||(eps<=0.01)) break;
            else cout<<"Slazhal! Please, enter anothr eps"<<endl;
    }
    while (1);
    cout<<"Your eps="<<eps<<endl;
    file.open("D:\\laboratory number 4 txt.txt",ios::out);
        if (file.bad()!=0) 
            cout<<"\nError in open";
        else
        {
            i=1;
            a=1;
            s=a;
            cout<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s";
            cout<<"\n |"<<setw(5)<<"0"<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<a<<"|"<<endl;
            file<<"\n |"<<setw(5)<<"0"<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<a<<"|"<<endl;
            
            i=1;
            s=a;
            a=((3*i-2)/(2*i+5));
            do
            {
                if (i%23==22) cin>>tmp;
                a*=((3*i-2)/(2*i+5));
                s+=a;i++;
                    file<<"|"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                    cout<<" |"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                    i++;
            }
            while (!(fabs(a)<eps));
            file<<"\ni="<<i;
        }
    file.close();
    cout<<endl<<"i="<<i<<endl;
return 0;
}
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
11.11.2011, 04:20  [ТС]     расчитать значение выражения по формуле #5
задача решена! вроде как. буду рад, если проверите
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
# include "iostream"
# include <math.h>
# include "iomanip"
# include "strstream"
# include "fstream"
using namespace std;
 
int main()
{
    double a,s,eps;
    int i,tmp;
    fstream file;
    cout<<"Hi guys! This program is designed Losev Kirill to calculate the value using the formula!"<<endl;
    
    do 
    {
        cout<<endl<<"Please, enter eps=";
        cin>>eps;
            if ((eps<=0)||(eps<=0.01)) break;
            else cout<<"Slazhal! Please, enter anothr eps"<<endl;
    }
    while (1);
    cout<<"Your eps="<<eps<<endl;
    file.open("D:\\laboratory number 4 txt.txt",ios::out);
        if (file.bad()!=0) 
            cout<<"\nError in open";
        else
        {
            a=1.0/7.0;
            s=a;
            i=0;
                file<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
                cout<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
            
    while((fabs(a)*(1-(3.0*i - 2.0)/(2.0*i + 5.0))>=eps)&&(i<100))
                {
                    if(i%23==22) cin>>tmp;
                        a *= (3.0*i - 2.0)/(2.0*i + 5.0);
                        s += a;i++;
                    if(i%23==0)
                        file<<"|"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                        cout<<" |"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                }
        }
    file.close();
    cout<<endl<<"i="<<i<<endl;
return 0;
}
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
24.11.2011, 22:39  [ТС]     расчитать значение выражения по формуле #6
нет, не решена.
помогите пожалуйста. где-то в формуле ошибка.
должно быть так:
слагаемое при i(1)=1/7=0.1428571428571
при i(2)=4/63=0.0634920634921
при i(3)=28/693=0.040404040404
а сумма при i(1)=1/7=0.1428571428571
i(2)=4/63+1/7=0.0634920634921+0.1428571428571=0.2063492063492
i(3)=4/63+1/7+28/693=0.2063492063492+0.040404040404=0.2467532467532

помогите, пожалуйста. уже долго мучаюсь с этой проблемойю сам не додумаюсь. предел

вот код окончательный
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
# include "iostream"
# include <math.h>
# include "iomanip"
# include "strstream"
# include "fstream"
using namespace std;
 
int main()
{
    double a,s,eps;
    int i,tmp;
    fstream file;
    cout<<"Hi guys! This program is designed Losev Kirill to calculate the value using the formula!"<<endl;
    
    do 
    {
        cout<<endl<<"Please, enter eps=";
        cin>>eps;
            if ((eps<=0)||(eps<=0.01)) break;
            else cout<<"Slazhal! Please, enter anothr eps"<<endl;
    }
    while (1);
    cout<<"Your eps="<<eps<<endl;
    file.open("D://forlabs/l4.txt",ios::out);
        if (file.bad()!=0) 
            cout<<"\nError in open";
        else
        {
            a=1.0/7.0;
            s=0;
            i=2;
                file<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
                cout<<"\n"<<setw(5)<<"i"<<setw(15)<<"a"<<setw(15)<<"s"<<endl;
            
    while(fabs(a)*(3.0*i - 2.0)/(2.0*i + 5.0)>=eps&&(i<100))
                {
                    if(i%23==22) cin>>tmp;
                        a*=(3.0*i - 2.0)/(2.0*i + 5.0);
                        s+=a;
                        file<<"|"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                        cout<<" |"<<setw(5)<<i<<"|"<<setw(15)<<setprecision(7)<<a<<"| "<<setw(15)<<setprecision(7)<<s<<"|"<<endl;
                        i++;
                        
                }
        }
    file.close();
    cout<<endl<<"i="<<i<<endl;
return 0;
}
Yandex
Объявления
24.11.2011, 22:39     расчитать значение выражения по формуле
Ответ Создать тему
Опции темы

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