Advertisement
frustration

биквадратное ур-е

Feb 22nd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. //решение биквадратного уравнения
  2. //a*x^4+b*x^2+c=0
  3. //с заданными коэффициетами
  4. #include<iostream>
  5. #include <cmath>
  6. #include <conio.h>
  7.  
  8. using namespace std;
  9.  
  10.  
  11. int main(){
  12.     setlocale(LC_ALL, "Russian");
  13.     float a, b, c, x1, x2, d;
  14.     bool flag = 1;
  15.     while (flag){
  16.         cout << "Введите коэффиценты биквадратного уравнения, где а != 0: "<<endl;
  17.         cin >> a >> b >> c;
  18.         cout << "Решаем уравнение: " << endl;
  19.         cout << a << "*x^4+" << b << "*x^2+" << c << "=0" << endl;
  20.  
  21.         d = b*b - 4 * a*c;
  22.         if (d < 0)
  23.             cout << "Уравнение не имеет действиельных корней" << endl;
  24.         else if (d == 0){
  25.             x1 = -d / 2.0 / a;
  26.             if (x1 < 0)
  27.                 cout << "Уравнение не имеет действительных корней" << endl;
  28.             else{
  29.                 cout << "Уравнение имеет два действительных корня" << endl;
  30.                 cout << "x1=" << sqrt(x1) << endl;
  31.                 cout << "x2=" << -sqrt(x1) << endl;
  32.             }
  33.         }
  34.         else{
  35.             x1 = (-b + sqrt(d)) / 2.0 / a;
  36.             x2 = (-b - sqrt(d)) / 2.0 / a;
  37.             if (x1 > 0 && x2 > 0){
  38.                 cout << "Уравнение имеет 4 действительных корня"<<endl;
  39.                 cout << "x1=" << sqrt(x1) << endl;
  40.                 cout << "x2=" << -sqrt(x1) << endl;
  41.                 cout << "x3=" << sqrt(x2) << endl;
  42.                 cout << "x4=" << -sqrt(x2) << endl;
  43.             }
  44.             else if (x1>0 && x2 < 0){
  45.                 cout << "Уравнение имеет два действительных корня"  << endl;
  46.                 cout << "x1=" << sqrt(x1) << endl;
  47.                 cout << "x2=" << -sqrt(x1) << endl;
  48.             }
  49.             else if (x1 < 0 && x2>0){
  50.                 cout << "Уравнение имеет два действительных корня" << endl;
  51.                 cout << "x1=" << sqrt(x2) << endl;
  52.                 cout << "x2=" << -sqrt(x2) << endl;
  53.             }
  54.             else{
  55.                 cout << "Уравнение не имеет действительных корней" << endl;
  56.  
  57.             }
  58.         }
  59.         cout << "Введите 1,чтобы продолжить и 0,чтобы завершить:";
  60.         cin >> flag;
  61.  
  62.     }
  63.  
  64.     return 0;
  65.    
  66.  
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement