Bài 18. Giải Phương Trình Bậc Hai Với Chương Trình Java | Tự Học Java Căn Bản
- Published on

Phương Trình Bậc Hai Là Gì?
Phương trình bậc hai là một trong những dạng phương trình toán học cơ bản mà bạn thường gặp. Với phương trình có dạng:
ax^2 + bx + c = 0
Trong đó, a
, b
, và c
là các hằng số, và x
là ẩn số. Mục tiêu là tìm giá trị của x
thỏa mãn phương trình này.
Khi giải phương trình bậc hai, ta sử dụng công thức nghiệm của phương trình bậc hai:
x = (-b ± √(b^2 - 4ac)) / 2a
Trong đó:
b^2 - 4ac
gọi làdelta
, hay còn gọi là biệt thức của phương trình bậc hai.- Dựa vào giá trị của
delta
, ta sẽ xác định số nghiệm của phương trình.
Các Trường Hợp Của Phương Trình Bậc Hai
- Nếu
delta
> 0: Phương trình có hai nghiệm phân biệt. - Nếu
delta
= 0: Phương trình có một nghiệm kép. - Nếu
delta
< 0: Phương trình vô nghiệm trong tập hợp số thực.
Viết Chương Trình Giải Phương Trình Bậc Hai Với Java
Trong bài học này, chúng ta sẽ viết một chương trình Java để giải phương trình bậc hai. Chương trình này sẽ yêu cầu người dùng nhập vào các giá trị của a
, b
, và c
, sau đó tính toán và hiển thị nghiệm (nếu có). Cụ thể các bước là:
- Bước 1: Khai Báo Biến và Nhập Dữ Liệu: Chúng ta sẽ cần ba biến
a
,b
, vàc
để lưu trữ các hệ số của phương trình. Đồng thời, cần một biến để lưu trữ giá trịdelta
(biệt thức). - Bước 2: Tính Toán
delta
và Nghiệm: Sử dụng công thức trên để tính toán giá trịdelta
. Sau đó, dựa vào giá trị củadelta
, ta xác định số nghiệm và tính toán nghiệm của phương trình. - Bước 3: Hiển Thị Kết Quả: Sau khi tính toán, chúng ta sẽ in kết quả ra màn hình, hiển thị nghiệm của phương trình.
Từ các bước trên, ta tiến hành viết code cho chương trình như sau:
import java.util.Scanner;
public class GiaiPhuongTrinhBacHai {
public static void main(String[] args) {
// Khởi tạo đối tượng Scanner để nhận đầu vào từ người dùng
Scanner scanner = new Scanner(System.in);
// Nhập các hệ số của phương trình bậc hai
System.out.print("Nhập hệ số a: ");
double a = scanner.nextDouble();
System.out.print("Nhập hệ số b: ");
double b = scanner.nextDouble();
System.out.print("Nhập hệ số c: ");
double c = scanner.nextDouble();
// Tính toán delta
double delta = b * b - 4 * a * c;
// Xử lý các trường hợp dựa trên giá trị của delta
if (a == 0) {
System.out.println("Đây không phải là phương trình bậc hai.");
} else if (delta > 0) {
// Nếu delta > 0, phương trình có hai nghiệm phân biệt
double x1 = (-b + Math.sqrt(delta)) / (2 * a);
double x2 = (-b - Math.sqrt(delta)) / (2 * a);
System.out.println("Phương trình có hai nghiệm phân biệt:");
System.out.println("Nghiệm x1 = " + x1);
System.out.println("Nghiệm x2 = " + x2);
} else if (delta == 0) {
// Nếu delta = 0, phương trình có một nghiệm kép
double x = -b / (2 * a);
System.out.println("Phương trình có một nghiệm kép: x = " + x);
} else {
// Nếu delta < 0, phương trình vô nghiệm trong tập hợp số thực
System.out.println("Phương trình vô nghiệm trong tập hợp số thực.");
}
// Đóng đối tượng scanner
scanner.close();
}
}
Giải Thích Code
- Nhập dữ liệu: Chúng ta sử dụng
Scanner
để nhận đầu vào từ người dùng cho các hệ sốa
,b
, vàc
. - Tính toán delta: Biến
delta
được tính bằng công thứcb^2 - 4ac
. - Xử lý các trường hợp:
- Nếu
a
= 0, phương trình không phải là phương trình bậc hai. - Nếu
delta
> 0, chương trình tính hai nghiệm phân biệt. - Nếu
delta
= 0, chương trình tính nghiệm kép. - Nếu
delta
< 0, chương trình thông báo phương trình vô nghiệm.
- Nếu
Chạy Chương Trình Và Kiểm Tra Kết Quả
Ví dụ 1: Phương Trình Có Hai Nghiệm Phân Biệt
Nhập vào:
a
= 1b
= -5c
= 6
Chương trình sẽ tính được delta
= 1 và in ra:
Phương trình có hai nghiệm phân biệt:
Nghiệm x1 = 3.0
Nghiệm x2 = 2.0
Ví dụ 2: Phương Trình Có Nghiệm Kép
Nhập vào:
a
= 1b
= -4c
= 4
Chương trình sẽ tính được delta = 0 và in ra:
Phương trình có một nghiệm kép: x = 2.0
Ví dụ 3: Phương Trình Vô Nghiệm
Nhập vào:
a
= 1b
= 2c
= 5
Chương trình sẽ tính được delta = -16 và in ra:
Phương trình vô nghiệm trong tập hợp số thực.
Kết Luận
Giải phương trình bậc hai trong Java là một bài tập cơ bản nhưng quan trọng, giúp bạn hiểu rõ hơn về cách sử dụng cấu trúc điều kiện (if-else
) và công thức toán học trong lập trình. Chương trình trên không chỉ giải quyết bài toán toán học mà còn rèn luyện kỹ năng lập trình Java căn bản.
Nếu bạn muốn thử nghiệm thêm, có thể mở rộng chương trình này để hỗ trợ giải phương trình bậc hai với các hệ số nhập từ file, hoặc thêm giao diện đồ họa người dùng (GUI) để làm cho chương trình thân thiện hơn với người dùng.
Bài tiếp theo: Bài 19. Câu lệnh switch ... case trong Java
Bài viết mới nhất
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
Bài viết liên quan
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
