Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Найти сумму бесконечного ряда и сравнить с контрольным значением
- #include "stdafx.h"
- #include <iostream>
- #include <cstdlib>
- #include <iomanip>
- #include <Windows.h>
- using namespace std;
- #define E 2.71
- int main()
- {
- setlocale(LC_CTYPE, "");
- int i=5;
- double x, slag, sum=0, eps, control, fact1, fact2; //fact1 и fact2 используются для вычисления факториалов,
- //домножающихся/делящихся в формуле слагаемого
- do {
- cout << "Введите Х: "; cin >> x;
- } while (fabs(x)>1);
- cout << "Введите точность: "; cin >> eps;
- slag=pow(x,3)/6; //второе слагаемое
- sum=sum+x+slag; //сумма первых двух слагаемых
- while(fabs(slag)>eps) {
- fact1 = 1;
- for ( int j = 2; j <= (i-2); j++ ) fact1 *= j;
- cout << fact1 << endl;
- fact2 = 1;
- for ( int j = 2; j <= i; j++ ) fact2 *= j;
- cout << fact2 << endl;
- slag= slag*pow(x,2)*fact1/fact2;
- //Вычисление следующего слагаемого, используя предыдущее
- cout << slag << endl << "----\n"; Sleep(300);
- sum+=slag;
- i+=2;
- }
- control=(pow(E,x)*pow(E,x))/2; //контрольная формула
- cout << "Сумма ряда: " << sum << endl;
- cout << "Контрольное значение: " << control << endl;
- cout << "Абсолютная погрешность " << fabs(control-sum) << endl;
- cout << "Относительная погрешность " << setprecision(2) << fabs(control-sum)/control*100 << "%"<< endl;
- cout << endl; system("pause"); return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement