Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. #include <windows.h>
  6. #include <iomanip>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.     SetConsoleOutputCP(1251);
  13.     double sum, e, *x;
  14.     cout << "Введите точность от 0<e<0.1 ";
  15.     cin >> e;
  16.     if (e<1e-13 || e>0.11)
  17.     {
  18.         cout << "Некорректная точность e (0..0.1] \nPress any key";
  19.         getch(); // ожидание нажатия клавиши
  20.         return 1;  // выход из функции main
  21.     }
  22.     fflush(stdin); //очищаем буфер (лишние символы после ввода)
  23.    
  24.     int n;
  25.     cout << "Введите n=? "; // приглашение
  26.     cin >> n;  // ввод десятичного(%d) n
  27.     if (n<1 || n>20)
  28.     {
  29.         cout << "Invalid n [1..20]! \nPress any key";
  30.         getch(); // ожидание нажатия клавиши
  31.         return 2;  // выход из функции main
  32.     }
  33.     fflush(stdin);
  34.    
  35.     x = new double [n];  // выделяем память для n элементов массива
  36.    
  37.     int i;
  38.     cout << "Введите" << n << "значений X из интервала (-1,+1):\n"; // приглашение
  39.     const double xx[7]={0.99, 0.7, 0.5, 0.1, -0.5, -0.7, -0.99}; //массив запасных значений
  40.     for (i = 0; i < n; i++)  // ввод x[0]...x[n-1]
  41.     {    
  42.         cin >> x[i];       //считывание x
  43.         if (fabs(x[i])>=1)
  44.         {
  45.             x[i]=xx[rand() % 7]; // одно из семи значений массива xx
  46.             cout << "Некорректное значение заменено на" << x[i];
  47.         }
  48.     }
  49.    
  50.     cout << "N|        X        |      Sum(X)     |K|       F(X)      |  |Sum(X)-F(X)|\n";
  51.    
  52.     double f;
  53.     int k = 1;
  54.     for (i = 0; i < n; i++)
  55.     {
  56.         double sum=pow(x[i],2.0);
  57.         double sl=sum;
  58.         while ((fabs(sl)>=e) && (k<=500))
  59.         {
  60.             sl = sl*-(2*i-3)*x[i]/(2*i+2);
  61.             sum+=sl;
  62.             k++;
  63.         }
  64.        
  65.         f = (8.0/3.0)*((sqrt(pow(1.0+x[i],3.0))-1)-4.0*x[i]);
  66.         cout<<i<<setprecision(5)<<"|      "<<x[i]<<"      |      "<<sum<<"      |"<<k<<"|      "<<f<<"      |     "<<fabs(sum-f)<<"    |\n";
  67.         k=0;
  68.     }
  69.     delete [] x; //  освобождение памяти для одномерного дин.массива
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement