Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************************************************************************
- * Project name: LR1 *
- * Project type : Win32 Console Application *
- * File name : LR1.cpp *
- * Language : CPP, MS VS 2019 *
- * Programmers : Корольков Максим Дмитриевич, Ляпин Георгий Алексеевич, М3О-110Б-19 *
- * Modified by : Малин Александр Андреевич *
- * Created : 20.09.2019 *
- * Last revision : 22.09.2019 *
- * Comments : Вычисление суммы бесконечного числового ряда *
- ********************************************************************************************/
- #include <iostream>
- #include <math.h>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "RUSSIAN"); //Подключение русского языка
- system("color F0"); //Изменение цвета консоли на белый
- //ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
- double Eps; //Погрешность
- double X; //Аргумент
- double TSum; //Точное значение суммы ряда
- double Sum; //Вычисленное значение суммы ряда
- int N; //Число просуммированных элементов
- double Diff; //Вычисленная погрешность
- int Znak; //Знак элемента ряда
- double Chisl; //Числитель элемента ряда
- double Slag; //Элемент ряда
- //ВВЕДЕНИЕ ПОЛЬЗОВАТЕЛЕМ ЗНАЧЕНИЙ EPS И X
- cout << "Введите значение Eps - погрешности вычисления суммы ряда: " << endl;
- cin >> Eps;
- cout << "Введите значение X - аргумента: " << endl;
- cin >> X;
- //ПРОВЕРКА КОРРЕКТНОСТИ ВВЕДЕННЫХ ЗНАЧЕНИЙ
- if (Eps > 0 && (X > -1 && X <= 1))
- //ЕСЛИ ВВЕДЕННЫЕ ДАННЫЕ КОРРЕКТНЫЕ
- {
- //ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
- TSum = log(1 + X);
- N = 1;
- Sum = X;
- Diff = abs(TSum - Sum);
- Znak = 1;
- Chisl = X;
- Slag = 0;
- //ВЫЧИСЛЕНИЕ СУММЫ РЯДА С ПОМОЩЬЮ ЦИКЛА С ПОСТУСЛОВИЕМ (В СООТВЕТСТВИИ С УКАЗАННОЙ ПОГРЕШНОСТЬЮ EPS)
- while (Diff > Eps)
- {
- N++;
- Znak = -Znak;
- Chisl = Chisl * X;
- Slag = (Znak * Chisl) / N;
- Sum = Sum + Slag;
- Diff = abs(TSum - Sum);
- }
- //ВЫВОД ЗНАЧЕНИЙ, ПОЛУЧЕННЫХ В РЕЗУЛЬТАТЕ РАБОТЫ ПРОГРАММЫ
- cout << "Число просуммированных элементов: " << N << endl;
- cout << "Вычисленная сумма ряда: " << Sum << endl;
- cout << "Точная сумма ряда: " << TSum << endl;
- cout << "Разность между точной и вычисленной суммами ряда: " << Diff << endl;
- }
- else
- //ЕСЛИ ВВЕДЕННЫЕ ДАННЫЕ НЕКОРРЕКТНЫ
- {
- //ВЫВОД СООБЩЕНИЯ ОБ ОШИБКЕ
- cout << "Введенные Eps и X некорректны. Введите значения, удовлетворяющие условиям: \n\t Eps > 0 \n\t -1 < X <= 1" << endl;
- }
- system("pause"); //Задержка экрана
- return 0;
- } //main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement