Advertisement
Guest User

Untitled

a guest
Nov 27th, 2012
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. // Найти сумму бесконечного ряда и сравнить с контрольным значением
  2.  
  3. #include "stdafx.h"
  4. #include <iostream>
  5. #include <cstdlib>
  6. #include <iomanip>
  7. #include <Windows.h>
  8. using namespace std;
  9. #define E 2.71
  10.  
  11. int main()
  12. {
  13.     setlocale(LC_CTYPE, "");
  14.     int i=5;
  15.     double x, slag, sum=0, eps, control, fact1, fact2; //fact1 и fact2 используются для вычисления факториалов,
  16.                                                        //домножающихся/делящихся в формуле слагаемого
  17.     do {
  18.         cout << "Введите Х:  "; cin >> x;
  19.     } while (fabs(x)>1);
  20.     cout << "Введите точность: "; cin >> eps;            
  21.     slag=pow(x,3)/6;  //второе слагаемое
  22.     sum=sum+x+slag; //сумма первых двух слагаемых
  23.     while(fabs(slag)>eps) {
  24.        
  25.         fact1 = 1;
  26.         for ( int j = 2; j <= (i-2); j++ ) fact1 *= j;
  27.         cout << fact1 << endl;
  28.        
  29.         fact2 = 1;
  30.         for ( int j = 2; j <= i; j++ ) fact2 *= j;
  31.         cout << fact2 << endl;
  32.        
  33.         slag= slag*pow(x,2)*fact1/fact2;
  34.         //Вычисление следующего слагаемого, используя предыдущее
  35.         cout << slag << endl << "----\n"; Sleep(300);
  36.         sum+=slag;
  37.         i+=2;
  38.     }
  39.     control=(pow(E,x)*pow(E,x))/2; //контрольная формула
  40.     cout << "Сумма ряда: " << sum << endl;
  41.     cout << "Контрольное значение: " << control << endl;
  42.     cout << "Абсолютная погрешность " << fabs(control-sum) << endl;
  43.     cout << "Относительная погрешность " << setprecision(2) << fabs(control-sum)/control*100 << "%"<< endl;
  44.     cout << endl; system("pause"); return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement