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

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

Восстановить пароль Регистрация
 
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
04.01.2011, 18:54     С++ Вычислить сумму из N слагаемых #1
Здравствуйте!
Решаю вот задачу,что то не выходит
Подскажите,что не так(ошибка в строках 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;
      }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
legend
 Аватар для legend
28 / 27 / 0
Регистрация: 17.11.2010
Сообщений: 152
04.01.2011, 18:59     С++ Вычислить сумму из N слагаемых #2
Цитата Сообщение от aniva_romich Посмотреть сообщение
Подскажите,что не так(ошибка в строках 44 ,46 ,переменная i -не обьявлена)

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

C++
1
int i;
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
04.01.2011, 19:02     С++ Вычислить сумму из N слагаемых #3
В 44 и 46 строках S1 и S2 не объявлено, i - тоже. ( в 43 строке -
C++
1
int S1=0, S2=0, i;
)
И
у вас ответ будет всегда один и тот же... Ведь вы выводете S, а с ним никаких операций не выполняете.
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
04.01.2011, 19:33  [ТС]     С++ Вычислить сумму из N слагаемых #4
Как надо сделать,подскажите пжлта
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
04.01.2011, 20:08     С++ Вычислить сумму из N слагаемых #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;
      }
Вот...
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
05.01.2011, 03:50  [ТС]     С++ Вычислить сумму из N слагаемых #6
Проверил,всё работает!
только вот,как сделать чтобы в ответе выводились и минусовые значения суммы(чередование + и -)
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
05.01.2011, 12:13     С++ Вычислить сумму из N слагаемых #7
Тогда уберите 51 строку (if (S<0) S=-S .

Теперь должно всё заработать корректно ).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2011, 02:31     С++ Вычислить сумму из N слагаемых
Еще ссылки по теме:

C++ Вычислить сумму N слагаемых
Вычислить сумму ряда, состоящего из N слагаемых C++
C++ Вычислить сумму ряда состоящего из N слагаемых и вывести на экран результат

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

Или воспользуйтесь поиском по форуму:
aniva_romich
1 / 1 / 0
Регистрация: 01.01.2011
Сообщений: 46
06.01.2011, 02:31  [ТС]     С++ Вычислить сумму из N слагаемых #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

Спасибо за помощь,я пока только начинаю вникать))
Yandex
Объявления
06.01.2011, 02:31     С++ Вычислить сумму из N слагаемых
Ответ Создать тему
Опции темы

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