Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2023, 09:26   #1
Anhain
 
Регистрация: 23.01.2023
Сообщений: 5
Восклицание Составить программу для вычисления суммы ряда

Требования:
- с использованием экспоненты Exp(X·Ln(Y)), где Х- степень, Y – основание.
- с использованием вложенных циклов for

Написал вот такой код, но он работает некорректно (выдаёт не правильные ответы, да и в целом работает странно). Подскажите, в чём моя ошибка и как её исправить?

Код:
#include <iostream>
#include <cmath>
using namespace std;

int main() {
	setlocale(LC_ALL, "Rus");
	double sum_1 = 0, sum_2 = 0;

	for (int k = 1; k <= 20; sum_1 += exp(3 * log(k)), k++) {
		for (int n = 1; n <= 15; sum_2 += exp(2 * log(fabs(k - n))), n++) {
			cout << k << " | " << n << " | " << sum_1 * sum_2 << endl;
		}
	}
	return 0;
}

Последний раз редактировалось Anhain; 23.01.2023 в 09:35.
Anhain вне форума Ответить с цитированием
Старый 23.01.2023, 09:35   #2
Anhain
 
Регистрация: 23.01.2023
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Anhain Посмотреть сообщение
]http://https://sun3.userapi.com/sun3-11/s/v1/ig2/1vS2ZJ7s-08sWPYeoDMWCF9pM1w6IjooO9rZtCaOkhgs A_Zwz2jHxFc_Gpg9gdCMBnP8urRRWJV4Osv DNmzNpHUc.jpg?size=485x175&quality= 95&type=album
Вот формула, забыл добавить
Изображения
Тип файла: jpg E7LqtFQW6AS5U2DmkXL-3f0KOgjatMYV3hYbkcxcx8Daudsb-hxC-NZQT7gZF9E147BHu_w9eKuBBBqKgR51CbAy.jpg (16.1 Кб, 18 просмотров)
Anhain вне форума Ответить с цитированием
Старый 23.01.2023, 09:54   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если правильно понял формулу, то так:
Код:
double y = 0, sum;
for (int k = 1; k <= 20; k++) {
    sum = 0;
    for (int n = 1; n <= 15; n++) {
        sum += exp(2 * log(fabs(k - n)));
    }
    y += exp(3 * log(k)) * sum;
}
cout << y << endl;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.01.2023, 10:08   #4
Anhain
 
Регистрация: 23.01.2023
Сообщений: 5
По умолчанию

BDA, спасибо, всё работает)
Anhain вне форума Ответить с цитированием
Старый 23.01.2023, 11:24   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

В старину написали бы так:
Код:
    y +=  sum *x *x *x;
сэкономив на 2 вызовах подпрограмм
digitalis на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить блок-схему и программу по нему для вычисления суммы членов ряда: lullfer Паскаль, Turbo Pascal, PascalABC.NET 15 05.11.2020 22:50
Составить текст программы для вычисления значения суммы ряда, с комментариями Fredom Паскаль, Turbo Pascal, PascalABC.NET 4 01.11.2016 16:50
Составить алгоритм вычисления суммы и произведения ряда FOrus101 Помощь студентам 1 19.02.2012 19:33
Написать программу вычисления суммы ряда(С++) asp1k Помощь студентам 10 01.09.2010 17:43