[C++] Giải phương trình bậc 4 Ngôn ngữ lập trình: C++ Phần mềm: Visual Studio CODE: Select All #include <iostream>using namespace std;// Giải phuong trình bậc 4// aX^4 +bX^2 + c = 0void GiaiPhuongTrinhBac_1(float a, float b){ if (a == 0) { if (b == 0) cout << "Phuong Trinh VSN"; else cout << "Phuong Trinh VN"; } else { cout << "Phuong Trinh co nghiem duy nhat x = " << (float)-b / a; }}// TypeResult :// -1 : Không giải phương trình bậc 2// 0 : PT VN// 1 : PT có nghiệm kép x1 = x2 = x// 3 : PT có 2 nghiệm x1, x2void GiaiPhuongTrinhBac_2(float a, float b, float c, int &TypeResult, float &x1, float &x2, float &x){ if (a == 0) { TypeResult = -1; GiaiPhuongTrinhBac_1(b, c); } else { float delta = b * b - 4 * a * c; if (delta < 0) { TypeResult = 0; //cout << "Phuong trinh VN"; } else if (delta == 0) { TypeResult = 1; x = -b / 2 * a; //cout << "Phuong trinh co nghiem kep x1 = x2 = " << -b / 2 * a; } else { TypeResult = 2; x1 = (-b + sqrt(delta)) / (2 * a); x2 = (-b - sqrt(delta)) / (2 * a); /*float x1 = (-b + sqrt(delta)) / (2 * a); float x2 = (-b - sqrt(delta)) / (2 * a); cout << "Phuong trinh co 2 nghiem phan biet :\n"; cout << "x1 = " << x1 << "\n"; cout << "x2 = " << x2 << "\n";*/ } }}void GiaiPhuongTrinhBac_4(float a, float b, float c){ int TypeResult = 0; float x1 = 0, x2 = 0, x = 0, x3 = 0, x4 = 0; // 0 : Giải phương trình bậc 4 với đủ tham số a, b, c // 1 : Giải phương trình bậc 4 không đủ tham số int flag = 0; if (a == 0) // bX^2 + c = 0 { GiaiPhuongTrinhBac_2(b, 0, c, TypeResult, x1, x2, x); flag = 1; } else { GiaiPhuongTrinhBac_2(a, b, c, TypeResult, x1, x2, x); flag = 0; } if (TypeResult == 0) // phương trình VN { cout << "Phuong trinh VN"; } if (TypeResult == 1) // phương trình có nghiệm kép x1 = x2 { if (flag == 0) // flag = 0 : Giải phương trình bậc 4 với đủ tham số a, b, c { if (x > 0) { x1 = sqrt(x); x2 = -sqrt(x); cout << "Phuong trinh Co nghiem \n"; cout << "x1 = " << x1 << "\n"; cout << "x2 = " << x2 << "\n"; } else { cout << "Phuong trinh Co nghiem kep x1 = x2 = " << x; } } else { cout << "Phuong trinh Co nghiem kep x1 = x2 = " << x; } } if (TypeResult == 2) // phương trình có 2 nghiệm phân biết x1 , x2 { // Có 2 nghiệm với PT bậc 2 //==> Có 4 nghiệm với Phương trình bậc 4 if (flag == 0) // flag = 0 : Giải phương trình bậc 4 với đủ tham số a, b, c { if (x1 >= 0) { cout << "x1 = " << sqrt(x1) << "\n"; cout << "x2 = " << -sqrt(x1) << "\n"; } if (x2 >= 0) { cout << "x3 = " << sqrt(x2) << "\n"; cout << "x4 = " << -sqrt(x2) << "\n"; } if (x1 < 0 && x2 < 0) cout << "Phuong Trinh VN"; } else { cout << "Phuong trinh co 2 nghiem phan biet :\n"; cout << "x1 = " << x1 << "\n"; cout << "x2 = " << x2 << "\n"; } }}int main(){ float a, b, c; cout << "a = "; cin >> a; cout << "b = "; cin >> b; cout << "c = "; cin >> c; GiaiPhuongTrinhBac_4(a, b, c); cout << endl; system("pause");}