Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. /********************************************************************************************
  2. * Project name: LR1 *
  3. * Project type : Win32 Console Application *
  4. * File name : LR1.cpp *
  5. * Language : CPP, MS VS 2019 *
  6. * Programmers : Корольков Максим Дмитриевич, Ляпин Георгий Алексеевич, М3О-110Б-19 *
  7. * Modified by : Малин Александр Андреевич *
  8. * Created : 20.09.2019 *
  9. * Last revision : 22.09.2019 *
  10. * Comments : Вычисление суммы бесконечного числового ряда *
  11. ********************************************************************************************/
  12.  
  13. #include <iostream>
  14. #include <math.h>
  15. using namespace std;
  16.  
  17. int main()
  18. {
  19. setlocale(LC_ALL, "RUSSIAN"); //Подключение русского языка
  20. system("color F0"); //Изменение цвета консоли на белый
  21.  
  22. //ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
  23. double Eps; //Погрешность
  24. double X; //Аргумент
  25. double TSum; //Точное значение суммы ряда
  26. double Sum; //Вычисленное значение суммы ряда
  27. int N; //Число просуммированных элементов
  28. double Diff; //Вычисленная погрешность
  29. int Znak; //Знак элемента ряда
  30. double Chisl; //Числитель элемента ряда
  31. double Slag; //Элемент ряда
  32.  
  33. //ВВЕДЕНИЕ ПОЛЬЗОВАТЕЛЕМ ЗНАЧЕНИЙ EPS И X
  34. cout << "Введите значение Eps - погрешности вычисления суммы ряда: " << endl;
  35. cin >> Eps;
  36. cout << "Введите значение X - аргумента: " << endl;
  37. cin >> X;
  38.  
  39. //ПРОВЕРКА КОРРЕКТНОСТИ ВВЕДЕННЫХ ЗНАЧЕНИЙ
  40. if (Eps > 0 && (X > -1 && X <= 1))
  41. //ЕСЛИ ВВЕДЕННЫЕ ДАННЫЕ КОРРЕКТНЫЕ
  42. {
  43. //ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ
  44. TSum = log(1 + X);
  45. N = 1;
  46. Sum = X;
  47. Diff = abs(TSum - Sum);
  48. Znak = 1;
  49. Chisl = X;
  50. Slag = 0;
  51.  
  52. //ВЫЧИСЛЕНИЕ СУММЫ РЯДА С ПОМОЩЬЮ ЦИКЛА С ПОСТУСЛОВИЕМ (В СООТВЕТСТВИИ С УКАЗАННОЙ ПОГРЕШНОСТЬЮ EPS)
  53. while (Diff > Eps)
  54. {
  55. N++;
  56. Znak = -Znak;
  57. Chisl = Chisl * X;
  58. Slag = (Znak * Chisl) / N;
  59. Sum = Sum + Slag;
  60. Diff = abs(TSum - Sum);
  61. }
  62.  
  63. //ВЫВОД ЗНАЧЕНИЙ, ПОЛУЧЕННЫХ В РЕЗУЛЬТАТЕ РАБОТЫ ПРОГРАММЫ
  64. cout << "Число просуммированных элементов: " << N << endl;
  65. cout << "Вычисленная сумма ряда: " << Sum << endl;
  66. cout << "Точная сумма ряда: " << TSum << endl;
  67. cout << "Разность между точной и вычисленной суммами ряда: " << Diff << endl;
  68. }
  69. else
  70. //ЕСЛИ ВВЕДЕННЫЕ ДАННЫЕ НЕКОРРЕКТНЫ
  71. {
  72. //ВЫВОД СООБЩЕНИЯ ОБ ОШИБКЕ
  73. cout << "Введенные Eps и X некорректны. Введите значения, удовлетворяющие условиям: \n\t Eps > 0 \n\t -1 < X <= 1" << endl;
  74. }
  75.  
  76. system("pause"); //Задержка экрана
  77. return 0;
  78. } //main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement