Advertisement
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 Factorials (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;
- float 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);
- /*float znachenie3 = Factorials(N);
- cout << "Znachenie 1 " << znachenie1 << endl;
- cout << "Znachenie 2 " << znachenie2 << endl;
- cout << "Factorial " << znachenie3 << endl;
- system ("pause");
- return 0;*/
- if (N <= 0) {
- cout << endl << "Invalid N!" << endl;
- system ("pause");
- 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 Factorials (int iterator) {
- int C_Fact = 1, N_Fact = 1;
- if (iterator % 2) {
- for (int k = 2; k <= iterator; k+=2) {
- C_Fact = C_Fact * k;
- }
- return C_Fact;
- } else {
- for (int k = 1; k <= iterator; k+=2) {
- N_Fact = N_Fact * k;
- }
- return N_Fact;
- }
- }
- // Функция вычисления суммы всех элементов последовательности
- 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))) / (Factorials(i+1));
- }
- return SigmaN;
- }
- // Функция вычисления элементов последовательности, превосходящих по абсолютной величине некую константу Е
- double CounterE (int N, int x, double E, int &count) {
- double SigmaE = 0;
- int i = 1;
- while (fabs(pow(-1.0,(double)i) * pow(cos(x),(double)(i/2)) / (Factorials(i+1))) > E && i <= N) {
- SigmaE = SigmaE + (pow(-1.0,(double)i) * pow(cos(x),(double)(i/2))) / (Factorials(i+1));
- count++;
- i++;
- }
- return SigmaE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement