Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
1

С++ Вычислить сумму из N слагаемых

04.01.2011, 18:54. Просмотров 1064. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Решаю вот задачу,что то не выходит
Подскажите,что не так(ошибка в строках 44 ,46 ,переменная i -не обьявлена)

Задача:
Вычислить сумму указанного вида при условии, что в нее входят N слагаемых. Параметр N ввести из текстового файла. Обеспечить проверку корректности ввода данных из файла.
Полученный результат вывести в окно консоли.
С++ Вычислить сумму из N слагаемых

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
#include <windows.h>
#include <fstream>
#include <cstdlib>
#include <iostream>
using namespace std;
 
/* Автор программы: Иванов Иван Иванович.
        Долгосрочное задание, задача #3 */
 
int main()
{
    SetConsoleOutputCP(1251);
 
    char filename[260] = "C:\\Summa.txt"; //путь к входному файлу
    char nStr[100] = ""; //временный буфер для записи данных из файла
 
    ifstream InFile(filename); //Входной файл
 
    if (!InFile.is_open())
 
    {
            system("color cf");
            cout << "Файл с данными не найден или недоступен.\n";
            system("pause");
            return 0;
     }
 
        InFile>>nStr;
        InFile.close();
 
        long N = atoi(nStr); //преобразовать строку в целое число
 
        if (N<=0) //проверить, хранится ли в N допустимое значение
     {
            system("color cf");
            cout << "Из файла получены неверные данные (N<1 или не является числом).\n";
            system("pause");
            return 0;
      }
 
        //N получено, приступаем к вычислению суммы
           double S = 0;
 
           for (i>2; i<4; i=i+4) S1 += i*i*i; //цикл по всем значениям i от 1 до N с шагом 1
 
           for (i<2; i<4; i=i+4) S2 -= i*i*i;
 
           cout << "При N равном " << N << " сумма S равна " << S << endl;  //вывод ответа
 
           system("pause");
 
           return 0;
      }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2011, 18:54
Ответы с готовыми решениями:

Вычислить сумму N слагаемых
Вычислить сумму 1 - \frac{1}{2} + \frac{1}{3} - \frac{1}{4} + ... n слагаемых ...

Вычислить сумму N слагаемых
Не могу решить задачку : Вычислить сумму N слагаемых (N задается оператором...

Вычислить сумму n слагаемых ряда
Помогите пожалуйста! Вычислить сумму n слагаемых : sinx+sin sin x+...sin...

Вычислить сумму первых n слагаемых
Помогите с задачами, кто что сможет! Нужно до завтра сделать! 1) Решить...

Вычислить сумму первых N слагаемых
Здравствуйте, помогите пожалуйста. Нужна программа для вычисления сумму первых...

7
legend
28 / 27 / 7
Регистрация: 17.11.2010
Сообщений: 152
04.01.2011, 18:59 2
Цитата Сообщение от aniva_romich Посмотреть сообщение
Подскажите,что не так(ошибка в строках 44 ,46 ,переменная i -не обьявлена)

так обьявите эту переменную

C++
1
int i;
0
Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
04.01.2011, 19:02 3
В 44 и 46 строках S1 и S2 не объявлено, i - тоже. ( в 43 строке -
C++
1
int S1=0, S2=0, i;
)
И
у вас ответ будет всегда один и тот же... Ведь вы выводете S, а с ним никаких операций не выполняете.
0
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
04.01.2011, 19:33  [ТС] 4
Как надо сделать,подскажите пжлта
0
Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
04.01.2011, 20:08 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
49
50
51
52
53
54
55
#include <windows.h>
#include <fstream>
#include <cstdlib>
#include <iostream>
using namespace std;
 
/* Автор программы: Иванов Иван Иванович.
        Долгосрочное задание, задача #3 */
 
int main()
{
    SetConsoleOutputCP(1251);
 
    char filename[260] = "C:\\Summa.txt"; //путь к входному файлу
    char nStr[100] = ""; //временный буфер для записи данных из файла
 
    ifstream InFile(filename); //Входной файл
 
    if (!InFile.is_open())
 
    {
            system("color cf");
            cout << "File isn't founded.\n";
            system("pause");
            return 0;
     }
 
        InFile>>nStr;
        InFile.close();
 
        int N = atoi(nStr); //преобразовать строку в целое число
 
        if (N<=0) //проверить, хранится ли в N допустимое значение
     {
            system("color cf");
            cout << "N isn't correct.\n";
            system("pause");
            return 0;
      }
 
        //N получено, приступаем к вычислению суммы
          if (N>0)
          { 
           double S = 0;
           int i;
           for (i=2; i<=N*2; i=i+2) S+=i*i*i; //цикл по всем значениям i от 1 до N с шагом 1
           for (i<2; i<=N*2; i=i+2) S-=i*i*i;
 
           cout << "If N = " << N << " , S = " << S << endl;  //вывод ответа
 
           system("pause");
           }
 
           return 0;
      }
Стоп, неправильно...

Добавлено через 7 минут
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
#include <windows.h>
#include <fstream>
#include <cstdlib>
#include <iostream>
using namespace std;
 
/* Автор программы: Иванов Иван Иванович.
        Долгосрочное задание, задача #3 */
 
int main()
{
    SetConsoleOutputCP(1251);
 
    char filename[260] = "C:\\Summa.txt"; //путь к входному файлу
    char nStr[100] = ""; //временный буфер для записи данных из файла
 
    ifstream InFile(filename); //Входной файл
 
    if (!InFile.is_open())
 
    {
            system("color cf");
            cout << "File isn't founded.\n";
            system("pause");
            return 0;
     }
 
        InFile>>nStr;
        InFile.close();
 
        int N = atoi(nStr); //преобразовать строку в целое число
 
        if (N<=0) //проверить, хранится ли в N допустимое значение
     {
            system("color cf");
            cout << "N isn't correct.\n";
            system("pause");
            return 0;
      }
 
        //N получено, приступаем к вычислению суммы
          if (N>0)
          { 
           double S = 0;
           int i, r=1;
           for (i=2; i<=N*2; i=i+2, r++)//цикл по всем значениям i от 1 до N с шагом 1 
           {
                if (r%2==0) S+=i*i*i; 
                if (r%2==1) S-=i*i*i;
           }
           if (S<0) S=-S;
           cout << "If N = " << N << " , S = " << S << endl;  //вывод ответа
           system("pause");
           }
 
           return 0;
      }
Вот...
1
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
05.01.2011, 03:50  [ТС] 6
Проверил,всё работает!
только вот,как сделать чтобы в ответе выводились и минусовые значения суммы(чередование + и -)
0
Алексaндр
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
05.01.2011, 12:13 7
Тогда уберите 51 строку (if (S<0) S=-S .

Теперь должно всё заработать корректно ).
1
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
06.01.2011, 02:31  [ТС] 8
Цитата Сообщение от Алексaндр Посмотреть сообщение
Тогда уберите 51 строку (if (S<0) S=-S .

Теперь должно всё заработать корректно ).
убрал 51 строку ,стали и минусовые значения отображаться но только + и - наоборот получились
сделал вот так и всё пошло :

48 if (r%2==0) S-=i*i*i
49 if (r%2==1) S+=i*i*i

Спасибо за помощь,я пока только начинаю вникать))
0
06.01.2011, 02:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2011, 02:31

Вычислить сумму n слагаемых вида x/x+1
Вычислить сумму n слагаемых вида x/x+1, где x принимает значения натуральных...

Вычислить сумму первых N слагаемых: 2/1+2/3+4/3+4/5+6/5+6/7
Вычислить сумму первых N слагаемых: 2/1+2/3+4/3+4/5+6/5+6/7... ребят подскажите...

Вычислить сумму ряда, состоящего из N слагаемых
Вычислить сумму ряда, состоящего из N слагаемых, и вывести результат с M...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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