1. Biện luận phương trình bậc hai ax2 + bx + c = 0
Phương trình bậc hai là phương trình có dạng ax2 + bx + c = 0. Trong đó a, b, và c là các hằng số và x là biến số. Các bước giải và biện luận phương trình bậc hai như sau:
– Nếu a = 0 thì phương trình trở thành phương trình bậc nhất bx + c = 0.
– Nếu a ≠ 0 thì xét Delta = b2 – 4ac:
+Trường hợp 1: Nếu Delta > 0 thì phương trình có 2 nghiệm phân biệt x1 = (-b + sqrt(Delta))/2a và x2 = (-b – sqrt(Delta))/2a.
+Trường hợp 2: Nếu Delta = 0 thì phương trình có nghiệm kép x = -b/2a.
+Trường hợp 3: Nếu Delta < 0 thì phương trình có vô nghiệm.
Ví dụ:
+Trường hợp 1: Cho phương trình 4x2 – 2x – 6 = 0. Delta =(-2)2 – 4.4.(-6) = 4 + 96 = 100, Delta > 0
Phương trình đã cho có 2 nghiệm phân biệt: x1 = (-(-2) + sqrt(100))/(2.4) = 3/2 và x2 = (-(-2) – sqrt(100))/(2.4) = -1
+Trường hợp 2: Cho phương trình x2 – 4x + 4 = 0.
Delta = (-4)2 – 4.4.1 = 0, phương trình đã cho có nghiệm kép: x1 = x2 = -(-4)/(2.1) = 2
+Trường hợp 3: Cho phương trình 3x2 + 2x + 5 = 0. Delta = 22 – 4.3.5 = -56, Delta < 0, phương trình đã cho vô nghiệm.
2. Chương trình C++ biện luận và giải phương trình bậc hai
Sử dụng câu lệnh if…else để biện luận và giải phương trình bậc hai. Lưu ý: Trong bài này, chúng ta chi xét trường hợp a ≠ 0, còn a = 0 thì các bạn có thể xem bài phương trình bậc nhất bx + c = 0.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
float a, b, c;
cout << "Nhap he so a: ";
cin >> a;
cout << "Nhap he so b: ";
cin >> b;
cout << "Nhap he so c: ";
cin >> c;
if (a == 0) {
cout << "Day khong phai la phuong trinh bac hai." << endl;
} else {
float delta = b * b - 4 * a * c;
if (delta < 0) {
cout << "Phuong trinh vo nghiem." << endl;
} else if (delta == 0) {
float x = -b / (2 * a);
cout << "Phuong trinh co nghiem kep x = " << x << endl;
} else {
float x1 = (-b + sqrt(delta)) / (2 * a);
float x2 = (-b - sqrt(delta)) / (2 * a);
cout << "Phuong trinh co hai nghiem phan biet:" << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
}
}
return 0;
}
Ta có thể sử dụng hàm để tái sử dụng và tách biệt quá trình tính toán:
#include <iostream>
#include <cmath>
using namespace std;
// Ham giai phuong trinh bac hai
void giaiPhuongTrinhBacHai(float a, float b, float c) {
float delta = b * b - 4 * a * c;
if (delta < 0) {
cout << "Phuong trinh vo nghiem." << endl;
} else if (delta == 0) {
float x = -b / (2 * a);
cout << "Phuong trinh co nghiem kep x = " << x << endl;
} else {
float x1 = (-b + sqrt(delta)) / (2 * a);
float x2 = (-b - sqrt(delta)) / (2 * a);
cout << "Phuong trinh co hai nghiem phan biet:" << endl;
cout << "x1 = " << x1 << endl;
cout << "x2 = " << x2 << endl;
}
}
int main() {
float a, b, c;
cout << "Nhap he so a: ";
cin >> a;
cout << "Nhap he so b: ";
cin >> b;
cout << "Nhap he so c: ";
cin >> c;
if (a == 0) {
cout << "Day khong phai la phuong trinh bac hai." << endl;
} else {
giaiPhuongTrinhBacHai(a, b, c);
}
return 0;
}
Trong cách này, chúng ta tạo một hàm riêng có tên giaiPhuongTrinhBacHai
để giải phương trình bậc hai. Hàm này nhận ba tham số là các hệ số a, b và c và thực hiện các bước tính toán tương tự như cách trước. Sau đó, trong hàm main
, chúng ta kiểm tra hệ số a và gọi hàm giaiPhuongTrinhBacHai
nếu a khác 0.