Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- /* Объявляем функции факториалов и вычислений сумм, создаем их прототипы */
- int Factorial (int iterator);
- int DoubleFactorial (int iterator);
- double CounterN (int N, int x);
- double CounterE (int N, int x, double E, int &count);
- // Само тело нашей программы
- int main () {
- setlocale(LC_ALL, "Russian");
- int N,count = 0;
- double x,E;
- cout << " Please enter number of elements: ";
- cin >> N;
- cout << endl << "Enter constant E: ";
- cin >> E;
- cout << endl << "Enter argument x: ";
- cin >> x;
- double znachenie1 = CounterN(N,x);
- double znachenie2 = CounterE(N,x,E,count);
- if (N <= 0) {
- cout << "Invalid N!" << endl;
- return 0;
- } else {
- cout << "Сумма всех N элементов равна " << znachenie1 << endl;
- cout << "Сумма элементов, превосходящих по абсолютной величине некое E равна " << znachenie2 << endl;
- if (znachenie1 > znachenie2) {
- cout << "Сумма N слагаемых больше, чем сумма слагаемых с Е" << endl;
- cout << "Сумма с Е содержит в себе " << count << " слагаемых" << endl;
- system ("pause");
- return 0;
- } else if (znachenie1 == znachenie2) {
- cout << "Суммы равны" << endl;
- cout << "Сумма с Е, как и сумма N слагаемых содержит содержит в себе " << count << " слагаемых" << endl;
- system ("pause");
- return 0;
- } else {
- cout << "Сумма с Е больше суммы с N слагаемыми " << endl;
- cout << "Сумма с Е содержит в себе " << count << " слагаемых" << endl;
- system ("pause");
- return 0;
- }
- }
- }
- // Конец тела программы
- // Раздел описания всех функций, кроме функции main
- // Функция вычисления факториала числа
- int Factorial (int iterator) {
- if (iterator == 0) {
- return 1;
- } else {
- return (iterator * Factorial(iterator - 1));
- }
- }
- // Функция вычисления "двойного" факториала числа
- int DoubleFactorial (int iterator) {
- if (iterator < 2) {
- return 1;
- } else {
- return (iterator * DoubleFactorial(iterator - 2));
- }
- }
- // Функция вычисления суммы всех эелементов последовательности
- double CounterN (int N, int x) {
- double SigmaN = 0;
- for (int i = 1; i <= N; i++) {
- SigmaN = SigmaN + ((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1)));
- }
- return SigmaN;
- }
- // Функция вычисления элементов последовательности, превосходящих по абсолютной величине некую константу Е
- double CounterE (int N, int x, double E, int &count) {
- double SigmaE = 0;
- for (int i = 1; i <= N; i++) {
- if (fabs((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1))) > E) {
- SigmaE = SigmaE + ((pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) * DoubleFactorial(i)) / (Factorial(i+1)));
- count++;
- }
- else {
- continue;
- }
- }
- return SigmaE;
- }
Advertisement
Add Comment
Please, Sign In to add comment