Giải phương trình bậc 2 ax² + bx + c = 0
Giải phương trình bậc 2 ax² + bx + c = 0 Tháng Năm 11, 2017 nguyenvanquan7826 TUT Bài tập tư duy lập trình 4 responses Chào các bạn, ở bài trước chúng ta đã giải phương trình bậc nhất rồi, bài này chúng ta sẽ giải phương ...
Giải phương trình bậc 2 ax² + bx + c = 0
Chào các bạn, ở bài trước chúng ta đã giải phương trình bậc nhất rồi, bài này chúng ta sẽ giải phương trình bậc 2 nhé.
Chúng ta nhớ lại kiến thức về giải phương trình bậc 2 với a ≠ 0 như sau:
B1: Tính delta: Δ = b^2 – 4ac
B2: Kiểm tra delta cho từng trường hợp từ dễ đến khó
TH1: Δ < 0 => Phương trình vô nghiệm.
TH2: Δ = 0 => Phương trình có nghiệm kép
TH3: Δ > 0 => Phương trình có 2 nghiệm
Từ đây chúng ta sẽ dần biết phải làm như thế nào, nó dúng như các bước chúng ta làm. Trong này có 1 vấn đề là làm sao tính được căn bậc 2?. Các bạn có thể xem bài viết trong link của mình, nhưng đó là thuật toán đơn thuần, trong C cung cấp cho chúng ta thư viện math.h để tính căn bậc 2 bằng lệnh sqrt(x) – tính căn bậc 2 của số x rồi. Giờ chỉ việc code thôi.
/* * Giai phuong trinh bac 2: ax² + bx + c = 0 */ #include <stdio.h> #include <math.h> int main() { float a, b, c; float delta; printf("Enter a, b and c: "); scanf("%f%f%f", &a, &b, &c); delta = b * b - 4 * a * c; if(a == 0) { printf("You must enter a > 0 "); return 0; // finish } if(delta < 0) { printf("Impossible equation (No result for x) "); } if(delta == 0) { float x = -b / (2 * a); printf("x = %.2f ", x); } if(delta > 0) { float x1 = (-b + sqrt(delta) ) / (2 * a); float x2 = (-b - sqrt(delta) ) / (2 * a); printf("x1 = %.2f ", x1); printf("x2 = %.2f ", x2); } return 0; }