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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 10
#1

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

06.12.2013, 21:33. Просмотров 439. Ответов 11
Метки нет (Все метки)

Определить минимальное значение 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++
Составить программу для вычисления значений функции F(x) на отрезке с шагом h. Результат представить в виде таблицы, первый столбец...

Наведите на мысль - C++
Добрый день) Изучаю Borland C++ по А. Крейгу, надо ввести данную программу(приведена ниже), после компиляции выводит ошибки: ...

Пришла в голову мысль - C++
Сделать кнопку.....поместить её на рабочий стол, при нажатии на которую воспроизводился рингтон...для личных целей)) Как её можно...

Помогите натолкнуть на мысль - C++
В трехмерном пространстве задано множество материальных точек. Найти разбиение этого множества на два таких непустых и непересекающихся...

нужно реализовать вычисления в восмеричной системе, направьте мысль пожалуйста - C++
по заданию нужно написать транслятор, реализующий ограниченный набор функций паскаля и работающий только с восмеричной системой счисления....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
15636 / 9978 / 1499
Регистрация: 24.12.2010
Сообщений: 18,742
06.12.2013, 21:43     Не работает. Натолкните на мысль, что исправить ? #2
Картинки смотрим только за деньги. Деньги - вперед.
Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 10
06.12.2013, 21:45  [ТС]     Не работает. Натолкните на мысль, что исправить ? #3
Цитата Сообщение от Байт Посмотреть сообщение
Картинки смотрим только за деньги. Деньги - вперед.
Сколько ? Давай кошелек.
Байт
Эксперт C
15636 / 9978 / 1499
Регистрация: 24.12.2010
Сообщений: 18,742
06.12.2013, 21:51     Не работает. Натолкните на мысль, что исправить ? #4
Цитата Сообщение от Suomalainen Посмотреть сообщение
Сколько ? Давай кошелек.
Шутка. Я такой мелочевкой не промышляю. Просто хотел навести тебя на мысль, что выкладывание картинок без чрезвычайной необходимости есть неуважение к тому, кто твой пост будет читать.
kazak
3033 / 2354 / 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
Сообщений: 10
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
3033 / 2354 / 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
57 / 57 / 6
Регистрация: 11.07.2013
Сообщений: 303
08.12.2013, 01:09     Не работает. Натолкните на мысль, что исправить ? #8
Suomalainen, конечно извиняюсь за оффтоп... но в 6 посте, на картинке, папка с проектами имеет странное название....
kazak
08.12.2013, 01:39
  #9

Не по теме:

uhx, это эмоции

Suomalainen
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 10
08.12.2013, 15:49  [ТС]     Не работает. Натолкните на мысль, что исправить ? #10
Ребят, еще проблемка. Ничего не записывается в файл, он создается, но он пустой. В чем ошибка ?
kazak
3033 / 2354 / 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++
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt;...

Не работает операция сложения в классе. Исправить код - C++
Сделал класс типа список &quot;Unit2.h&quot; //--------------------------------------------------------------------------- #ifndef Unit2H ...

Некорректно работает fgets(): найти и исправить ошибки - C++
здравствуйте, пишу код для удаления строки из файла(файл c именем fname с данными), проблема с fgets(), она читает какой-то неизвестный...

Что тут исправить в цикле? - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;cmath&gt; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR*...

Не работает функция по причине temp'a. Не знаю как исправить - C++
void Mass_Function_Replace(double massive, int n) { double temp; for(int i =0; i &lt; n-1; i++) { if(abs(massive)&gt;1) double temp;...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru