Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45

Сумма первых N членов прогрессии

01.10.2022, 21:14. Показов 484. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Имею код, где вы надо выбрать задание (пока что только одно), далее вы вводите X и 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
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cmath>
using namespace std;
 
int main() {
    bool While = true;
    int task;
    double j;
    while (While) {
        cout << "Enter task number (1, 2, 3 or 0 for exit): ";
        cin >> task;
        switch (task) {
        case 1: { 
            double x, y;
            int n;
            cout << "\nTask 1\n";
            cout << "Enter N: ";
            cin >> n;
            cout << "Enter x: ";
            cin >> x;
             if ((n!=0) && (x!=0)) { 
                 for (int i=1; i<=n; i++); { 
                     j=j+2;
                     if (x + j == 0) {
                         cout << "ERROR! Try another value" << endl; 
                         break; }
                    else {
                    y = y + (x-j) / (x+j-2); }
                    cout << fixed;
                    cout.precision(3);
                    cout << "Sum: " << y;
                    break; }
    }
    else {
        cout << "ERROR! Try another value!!!" << endl; }
}
}
break;
}
}
Изображения
 
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2022, 21:14
Ответы с готовыми решениями:

Сумма первых N членов прогрессии
Найти сумму первых N членов арифметической (геометрической) прогрессии

Найти двадцать первых членов геометрической прогрессии с известным первым членом прогрессии и ее знаменателем
помогите пожалуйста двадцатью первыми членами геометрической прогрессии с известным первым членом прогрессии а и ее знаменателем z; на...

Написать рекурсивную функцию для нахождения заданного члена прогрессии и суммы n первых членов прогрессии
Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию для нахождения: а) n-го члена прогрессии; б) суммы n...

4
 Аватар для Аноним92
75 / 49 / 30
Регистрация: 14.10.2019
Сообщений: 147
01.10.2022, 21:41
Лучший ответ Сообщение было отмечено Sex_Boi как решение

Решение

У вас после заголовка цикла for стоит точка с запятой. Нужно убрать её.

А ещё у вас переменная j неинициализированная используется.
1
place status here
 Аватар для gunslinger
3182 / 2215 / 640
Регистрация: 20.07.2013
Сообщений: 5,947
01.10.2022, 21:55
Через функцию (без проверки деления на ноль в предположении, что при вводе x не будет равен 0 или принимать любое из отрицательных четных значений):
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
double func(double x, unsigned n)
{
  double sum = 0, memb1 = x, memb2 = x - 2;
  for (unsigned i = 1; i <= n; i++)
  {
    memb1 -= 2;
    memb2 += 2;
    sum += memb1 / memb2;
  }
  return sum;
}
1
0 / 0 / 0
Регистрация: 12.02.2021
Сообщений: 45
03.10.2022, 20:38  [ТС]
Спасибо, помогло. По такой же схеме написал вторую задачку (картинку прикреплю), НО. Обнаружилась ошибка, а именно если в первой задаче ввести X=-2 должна вылазить ошибка и цикл прерываться, но оно почему то считает сумму и выводит ее, а так быть не должно. Похожая ошибка и во второй части задачи. Получившийся код прикрепляю. Помогите еще раз найти ошибку (=

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
58
59
60
61
62
63
64
65
#include <iostream>
#include <iomanip>
#include <conio.h>
#include <cmath>
using namespace std;
int main() {
    bool While = true;
    int task;
    while (While) {
        cout << "Enter task number (1, 2, 3 or 0 for exit): ";
        cin >> task;
        switch (task) {
        case 1: { 
            double x, y;
            double j=0;
            int n;
            cout << "\nTask 1\n";
            cout << "Enter N: ";
            cin >> n;
            cout << "Enter x: ";
            cin >> x;
             if ((n!=0) && (x!=0)) { 
                 for (int i=1; i<=n; i++) { 
                     j=j+2;
                     if (x + j == 0) {
                         cout << "ERROR! Try another value" << endl; 
                         break; }
                    else {
                    y = y + (x-j) / (x+j-2); }
                    cout << fixed;
                    cout.precision(3); }
                cout << "Sum: " << y; }
            else {
                cout << "ERROR! Try another value!!!" << endl; }
            While = false;
            break; }
            
        case 2: {
            double x, y;
            double j=0;
            int n;
            cout << "\nTask 2\n";
            cout << "Enter N: ";
            cin >> n;
            cout << "Enter x: ";
            cin >> x;
            if ((n!=0) && (x!=0)) { 
                 for (int i=1; i<=n; i++) {
                     j=j+1;
                     if (x + pow(3,j) == 0) {
                         cout << "ERROR! Try another value" << endl; 
                         break; }
                     else {
                         y = y + (x+j) / (x+pow(3,j)); }
                         cout << fixed;
                    cout.precision(3); }
                cout << "Sum: " << y; }
            else {
                cout << "ERROR! Try another value!!!" << endl; }
                While = false; 
                break; }
}
break;
}
}
Изображения
 
0
place status here
 Аватар для gunslinger
3182 / 2215 / 640
Регистрация: 20.07.2013
Сообщений: 5,947
03.10.2022, 21:55
Предположу, что проблема в сравнении числа типа double с 0, но в таком представлении число (физически) может "немного" отличаться от заданного.
Как вариант, замени
C++ Скопировано
25
                     if (x + j == 0) {
на
C++ Скопировано
25
                     if (fabs(x + j) <= 1e-6) {
( либо другое малое число справа от <= )
где 1е-6 то же самое, что и 0.000001 или 10-6

Со вторым примером аналогично.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.10.2022, 21:55
Помогаю со студенческими работами здесь

Рекурсия: нахождения суммы n первых членов геометрической прогрессии
Даны первый член и знаменатель геометрической прогрессии. Написать рекурсивную функцию: нахождения суммы n первых членов прогрессии

Найти n-ый член и сумму первых n членов арифметической прогрессии
Найти n-ый член и сумму первых n членов арифметической прогрессии, если задан первый член и разность.

Программа вычисляющая сумму первых n членов арифметической прогрессии
Помогите пожалуйста написать программу на С++, вычисляющую сумму первых n членов арифметической прогрессии со следующими параметрами: a1 =...

Вычислить произведение первых N членов произвольной геометрической прогрессии
Вычислить произведение первых N членов произвольной геометрической прогрессии

Сумма членов прогрессии
Всем доброго времени суток! Нужно найти члены прогрессии по формуле.Помогите, пожалуйста, с решением.


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Управление Arduino из Windows Forms приложения C#. Примеры применения
Wired 30.07.2025
Самое интересное начинается, когда мы применяем полученные знания для решения конкретных задач. За время работы с Arduino я реализовал десятки проектов, где управление осуществлялось через C#. . .
Управление Arduino из Windows Forms приложения C#. Программирование Arduino и отправка команд, датчики
Wired 30.07.2025
Теперь, когда мы разобрались с интерфейсом и коммуникацией на стороне C#, пора уделить внимание программированию самой платы Arduino. Тут важно понимать, что код для микроконтроллера отличается от. . .
Управление Arduino из Windows Forms приложения C#. Подключение Arduino и создание приложения
Wired 30.07.2025
Когда я впервые взял в руки Arduino, то сразу понял - это отличный инструмент для быстрого прототипирования и экспериментов с электроникой. Но со временем возникла потребность создать для своих. . .
Форма логина на AngularJS с ASP.NET, часть 4
UnmanagedCoder 29.07.2025
Форма логина на AngularJS с ASP. NET, часть 1 Форма логина на AngularJS с ASP. NET, часть 2 Форма логина на AngularJS с ASP. NET, часть 3 Форма логина на AngularJS с ASP. NET, часть 4 Интеграция с. . .
Форма логина на AngularJS с ASP.NET, часть 3
UnmanagedCoder 29.07.2025
Форма логина на AngularJS с ASP. NET, часть 1 Форма логина на AngularJS с ASP. NET, часть 2 Форма логина на AngularJS с ASP. NET, часть 3 Форма логина на AngularJS с ASP. NET, часть 4 Асинхронные. . .
Форма логина на AngularJS с ASP.NET, часть 2
UnmanagedCoder 29.07.2025
Форма логина на AngularJS с ASP. NET, часть 1 Форма логина на AngularJS с ASP. NET, часть 2 Форма логина на AngularJS с ASP. NET, часть 3 Форма логина на AngularJS с ASP. NET, часть 4 Кэширование. . .
Форма логина на AngularJS с ASP.NET, часть 1
UnmanagedCoder 29.07.2025
Форма логина на AngularJS с ASP. NET, часть 1 Форма логина на AngularJS с ASP. NET, часть 2 Форма логина на AngularJS с ASP. NET, часть 3 Форма логина на AngularJS с ASP. NET, часть 4 Авторизация —. . .
Оптимизация Docker Image: скорость, размер, безопасность
Mr. Docker 28.07.2025
За последние пять лет Docker превратился из крутой новой технологии в стандарт де-факто для упаковки и деплоя приложений. Практически каждый инженер, с которым я работал за эти годы, использует. . .
Паттерн Saga в C#: управление распределенными транзакциями в микросервисной архитектуре
ArchitectMsa 28.07.2025
Как только вы начинаете работать с микросервисами, сразу сталкиваетесь с одной из самых коварных проблем – управлением транзакциями. Как-то на одном из проектов мы с командой чуть не сломали головы,. . .
Qiskit: Упрощая разработку квантового ПО
EggHead 27.07.2025
Квантовые вычисления долгое время казались чем-то абсолютно недоступным. Еще бы - кванты, суперпозиции, запутанность и прочая физика высоких энергий. Не каждый готов погрузиться в изучение квантовой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер