nvnnaidenov

Zad32

Sep 23rd, 2021
458
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Нека a е неотрицателно реално число. Да се напише
  2. програма, която приближено пресмята квадратен корен от a по метода на
  3. Нютон. */
  4. #include <iostream>
  5. #include <iomanip>
  6. #include <math.h>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.     double a;
  13.     double x;
  14.     double x1;
  15.     double eps;
  16.  
  17.     cout << "a = ";
  18.     cin >> a;
  19.     if(!cin)
  20.     {
  21.         cout << "Error, bad input!";
  22.         return 1;
  23.     }
  24.     if(a <= 0)
  25.     {
  26.         cout << "Incorrect input!";
  27.         return 1;
  28.     }
  29.     cout << "eps = ";
  30.     cin >> eps;
  31.     if(!cin)
  32.     {
  33.         cout << "Error, bad input!";
  34.         return 1;
  35.     }
  36.     if(eps <= 0 || eps > 0.5)
  37.     {
  38.         cout << "Incorrect input!";
  39.         return 1;
  40.     }
  41.  
  42.     x1 = 1;
  43.  
  44.     do
  45.     {
  46.         x = x1;
  47.         x1 = 0.5 * (x + a / x);
  48.     }
  49.     while(fabs(x1 - x) >= eps);
  50.  
  51.     cout << setprecision(6) << setiosflags(ios::fixed);
  52.     cout << "sqrt(" << a << ") = " << setw(10) << x1 << endl;
  53.  
  54.     return 0;
  55. }
RAW Paste Data