aLT22

4semlab1(C++)_MAIN_VERSION

Feb 24th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. /* Объявляем функции факториалов и вычислений сумм, создаем их прототипы */
  7.  
  8. int Factorial (int iterator);
  9. int DoubleFactorial (int iterator);
  10. double CounterN (int N, int x);
  11. double CounterE (int N, int x, double E, int &count);
  12.  
  13. // Само тело нашей программы
  14. int main () {
  15.     setlocale(LC_ALL, "Russian");
  16.     int N,count = 0;
  17.     double x,E;
  18.     cout << " Please enter number of elements: ";
  19.     cin >> N;
  20.     cout << endl << "Enter constant E: ";
  21.     cin >> E;
  22.     cout << endl << "Enter argument x: ";
  23.     cin >> x;
  24.     double znachenie1 = CounterN(N,x);
  25.     double znachenie2 = CounterE(N,x,E,count);
  26.     if (N <= 0) {
  27.         cout << "Invalid N!" << endl;
  28.         return 0;
  29.     } else {
  30.         cout << "Сумма всех N элементов равна " << znachenie1 << endl;
  31.         cout << "Сумма элементов, превосходящих по абсолютной величине некое E равна " << znachenie2 << endl;
  32.         if (znachenie1 > znachenie2) {
  33.             cout << "Сумма N слагаемых больше, чем сумма слагаемых с Е" << endl;
  34.             cout << "Сумма с Е содержит в себе " << count << " слагаемых" << endl;
  35.             system ("pause");
  36.             return 0;
  37.         } else if (znachenie1 == znachenie2) {
  38.             cout << "Суммы равны" << endl;
  39.             cout << "Сумма с Е, как и сумма N слагаемых содержит содержит в себе " << count << " слагаемых" << endl;
  40.             system ("pause");
  41.             return 0;
  42.         } else {
  43.             cout << "Сумма с Е больше суммы с N слагаемыми " << endl;
  44.             cout << "Сумма с Е содержит в себе " << count << " слагаемых" << endl;
  45.             system ("pause");
  46.             return 0;
  47.         }
  48.     }
  49. }
  50. // Конец тела программы
  51.  
  52. // Раздел описания всех функций, кроме функции main
  53. // Функция вычисления факториала числа
  54. int Factorial (int iterator) {
  55.     if (iterator == 0) {
  56.         return 1;
  57.     } else {
  58.         return (iterator * Factorial(iterator - 1));
  59.     }
  60. }
  61.  
  62. // Функция вычисления "двойного" факториала числа
  63. int DoubleFactorial (int iterator) {
  64.     if (iterator < 2) {
  65.         return 1;
  66.     } else {
  67.         return (iterator * DoubleFactorial(iterator - 2));
  68.     }
  69. }
  70.  
  71. // Функция вычисления суммы всех эелементов последовательности
  72. double CounterN (int N, int x) {
  73.     double SigmaN = 0;
  74.     for (int i = 1; i <= N; i++) {
  75.         SigmaN = SigmaN + ((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1)));
  76.     }
  77.     return SigmaN;
  78. }
  79.  
  80. // Функция вычисления элементов последовательности, превосходящих по абсолютной величине некую константу Е
  81. double CounterE (int N, int x, double E, int &count) {
  82.     double SigmaE = 0;
  83.     for (int i = 1; i <= N; i++) {
  84.         if (fabs((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1))) > E) {
  85.             SigmaE = SigmaE + ((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1)));
  86.             count++;
  87.         }
  88.         else {
  89.             continue;
  90.         }
  91.     }
  92.     return SigmaE;
  93. }
Advertisement
Add Comment
Please, Sign In to add comment