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

Не работает. Натолкните на мысль, что исправить ? - C++

Восстановить пароль Регистрация
 
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 9
06.12.2013, 21:33     Не работает. Натолкните на мысль, что исправить ? #1
Определить минимальное значение n > 0, для которого очередное слагаемое по модулю не превышает E > 0 при нахождении результата согласно одной из формул:
Задача - Не работает. Натолкните на мысль, что исправить ?

Есть кое-какая наработка, работает абсолютно не корректно. Помогите исправить.

Исходную формулу нужно преобразовать - я ее преобразовал, вроде правильно, но опять же не уверен.
Не работает. Натолкните на мысль, что исправить ?

Результаты записываются в файл, но он не записывает.
Кодер из меня, видимо, никакой. Надеюсь на вашу помощь, ребята. Код ниже.

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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
 
using namespace std;
void main()
{
    int i;
    float eps,n;
    float a,S;
    fstream f;
 
    setlocale (0, "Rus");
    cout << " Расчет слагаемых и частичных сумм для вычисления." << endl <<endl
        << "   n"<<endl
        << "  ---      " << endl
        << "  \\       i+1" << endl
        << "  /    --------"<< endl
        << "  ---  2^i(n-1)!"<< endl
        << "  i=2" << endl << endl;
 
    f.open("out.txt", ios::out);
    cout << " Введите эписилон:";
    cin>>eps;
    
    a = 1;
    S = a;
    i = 2;
    
    cout<<"|  i  |       a       |            S            |"<<endl;
    
    cout<<"|"<<resetiosflags(ios::showpos)<<resetiosflags(ios::showpoint)<<resetiosflags(ios::scientific)<<setw(5)<<i<<"|"
        <<setw(15)<<setprecision(7)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<a<<"|"
        <<setw(25)<<setprecision(17)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<S<<"|"<<endl;
    
    while(abs(a)>= eps && (i < 100))
    {
        a *= (i+2)/(2*i+2); S+=a; i++;
        
        if((i%23)==22) getch();
        
        cout<<"|"<<resetiosflags(ios::showpos)<<resetiosflags(ios::showpoint)<<resetiosflags(ios::scientific)<<setw(5)<<i<<"|"
            <<setw(15)<<setprecision(7)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<a<<"|"
            <<setw(25)<<setprecision(17)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<S<<"|"<<endl;
        
    }
    cout << " Частичная сумма " << S << " для " << resetiosflags(ios::showpos) << i+1 << " элементтов последовательности" << endl;
    f.close();
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 21:33     Не работает. Натолкните на мысль, что исправить ?
Посмотрите здесь:

Пришла в голову мысль C++
Натолкните на решение. C++
C++ Помогите натолкнуть на мысль
C++ Почему в динамическом массиве не работает то, что работает со статическим?
C++ Натолкните на ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
06.12.2013, 21:43     Не работает. Натолкните на мысль, что исправить ? #2
Картинки смотрим только за деньги. Деньги - вперед.
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 9
06.12.2013, 21:45  [ТС]     Не работает. Натолкните на мысль, что исправить ? #3
Цитата Сообщение от Байт Посмотреть сообщение
Картинки смотрим только за деньги. Деньги - вперед.
Сколько ? Давай кошелек.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
06.12.2013, 21:51     Не работает. Натолкните на мысль, что исправить ? #4
Цитата Сообщение от Suomalainen Посмотреть сообщение
Сколько ? Давай кошелек.
Шутка. Я такой мелочевкой не промышляю. Просто хотел навести тебя на мысль, что выкладывание картинок без чрезвычайной необходимости есть неуважение к тому, кто твой пост будет читать.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
06.12.2013, 22:41     Не работает. Натолкните на мысль, что исправить ? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
float frac, mul, sum, eps;
int n = 2;
frac = 2;
mul = (float)n + 1.0;
sum = mul / frac;
while (sum > eps)
{
   n++;
   mul = (float)n + 1;
   frac /= 2*(n - 1.0);
    sum = mul / frac;
}
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 9
07.12.2013, 00:14  [ТС]     Не работает. Натолкните на мысль, что исправить ? #6
Цитата Сообщение от kazak Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
float frac, mul, sum, eps;
int n = 2;
frac = 2;
mul = (float)n + 1.0;
sum = mul / frac;
while (sum > eps)
{
   n++;
   mul = (float)n + 1;
   frac /= 2*(n - 1.0);
    sum = mul / frac;
}
Заменил.
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
 
using namespace std;
void main()
{
    float frac, mul, sum, eps;
    int n = 2;
    frac = 2;
    mul = (float)n + 1.0;
    sum = mul / frac;
    fstream f;
 
    setlocale (0, "Rus");
    cout << " Расчет слагаемых и частичных сумм для вычисления." << endl <<endl
        << "   n"<<endl
        << "  ---      " << endl
        << "  \\       i+1" << endl
        << "  /    --------"<< endl
        << "  ---  2^i(n-1)!"<< endl
        << "  i=2" << endl << endl;
 
    f.open("out.txt", ios::out);
    cout << " Введите эписилон:";
    cin>>eps;
 
    cout<<"|  i  |       a       |            S            |"<<endl;
    
    cout<<"|"<<resetiosflags(ios::showpos)<<resetiosflags(ios::showpoint)<<resetiosflags(ios::scientific)<<setw(5)<<n<<"|"
        <<setw(15)<<setprecision(7)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<frac<<"|"
        <<setw(25)<<setprecision(17)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<sum<<"|"<<endl;
    
    while(sum > eps)
    {
        n++;
        mul = (float)n + 1;
        frac /= 2*(n - 1.0);
        sum = mul / frac;
        
        if((n%23)==22) getch();
        
        cout<<"|"<<resetiosflags(ios::showpos)<<resetiosflags(ios::showpoint)<<resetiosflags(ios::scientific)<<setw(5)<<n<<"|"
            <<setw(15)<<setprecision(7)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<frac<<"|"
            <<setw(25)<<setprecision(17)<<setiosflags(ios::showpoint)<<setiosflags(ios::showpos)<<setiosflags(ios::scientific)<<sum<<"|"<<endl;
        
    }
    cout << " Частичная сумма " << sum << " для " << resetiosflags(ios::showpos) << n+1 << " элементтов последовательности" << endl;
    f.close();
    system("pause");
}
Результат при любом eps один и тот же. - Не работает. Натолкните на мысль, что исправить ?

Что я не так делаю ?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.12.2013, 00:16     Не работает. Натолкните на мысль, что исправить ? #7
Цитата Сообщение от kazak Посмотреть сообщение
float frac, mul, sum, eps;
int n = 2;
frac = 2;
mul = (float)n + 1.0;
sum = mul / frac;
while (sum > eps)
{
* *n++;
* *mul = (float)n + 1;
* *frac /= 2*(n - 1.0);
* * sum = mul / frac;
}
sum = mul * frac;
uhx
 Аватар для uhx
56 / 56 / 6
Регистрация: 11.07.2013
Сообщений: 300
08.12.2013, 01:09     Не работает. Натолкните на мысль, что исправить ? #8
Suomalainen, конечно извиняюсь за оффтоп... но в 6 посте, на картинке, папка с проектами имеет странное название....
kazak
08.12.2013, 01:39
  #9

Не по теме:

uhx, это эмоции

Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 9
08.12.2013, 15:49  [ТС]     Не работает. Натолкните на мысль, что исправить ? #10
Ребят, еще проблемка. Ничего не записывается в файл, он создается, но он пустой. В чем ошибка ?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.12.2013, 15:50     Не работает. Натолкните на мысль, что исправить ? #11
А Вы ничего туда не записываете
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 15:56     Не работает. Натолкните на мысль, что исправить ?
Еще ссылки по теме:

C++ Наведите на мысль
C++ Написала программу,но работает не так, как нужно. Что исправить?

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

Или воспользуйтесь поиском по форуму:
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 9
08.12.2013, 15:56  [ТС]     Не работает. Натолкните на мысль, что исправить ? #12
Ну я и индеец, бом-бом. Не дописал строчки. Спасибо!
Yandex
Объявления
08.12.2013, 15:56     Не работает. Натолкните на мысль, что исправить ?
Ответ Создать тему
Опции темы

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