Đề bài
Viết chương trình giải phương trình bậc 2 trong java. Phương trình bậc 2 có dạng:
Lời giải
Kiến thức sử dụng trong bài này, java.util.Scanner được sử dụng để đọc dữ liệu nhập vào từ bàn phím và từ khóa static trong java. Bạn cũng nên tìm hiểu về package trong java.
Bài này được viết trên eclipse, bạn có thể tham khảo bài tạo chương trình java đầu tiên trên eclipse.
File: BaiTap1.java
package vn.viettuts.baitap; import java.util.Scanner; /** * Giải phương trình bậc 2 * * @author viettuts.vn */ public class BaiTap1 { private static Scanner scanner = new Scanner(System.in); /** * main * * @param args */ public static void main(String[] args) { System.out.print("Nhập hệ số bậc 2, a = "); float a = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hệ số bậc 1, b = "); float b = BaiTap1.scanner.nextFloat(); System.out.print("Nhập hằng số tự do, c = "); float c = scanner.nextFloat(); BaiTap1.giaiPTBac2(a, b, c); } /** * Giải phương trình bậc 2: ax2 + bx + c = 0 * * @param a: hệ số bậc 2 * @param b: hệ số bậc 1 * @param c: số hạng tự do */ public static void giaiPTBac2(float a, float b, float c) { // kiểm tra các hệ số if (a == 0) { if (b == 0) { System.out.println("Phương trình vô nghiệm!"); } else { System.out.println("Phương trình có một nghiệm: " + "x = " + (-c / b)); } return; } // tính delta float delta = b*b - 4*a*c; float x1; float x2; // tính nghiệm if (delta > 0) { x1 = (float) ((-b + Math.sqrt(delta)) / (2*a)); x2 = (float) ((-b - Math.sqrt(delta)) / (2*a)); System.out.println("Phương trình có 2 nghiệm là: " + "x1 = " + x1 + " và x2 = " + x2); } else if (delta == 0) { x1 = (-b / (2 * a)); System.out.println("Phương trình có nghiệm kép: " + "x1 = x2 = " + x1); } else { System.out.println("Phương trình vô nghiệm!"); } } }
Kết quả:
Nhập hệ số bậc 2, a = 2 Nhập hệ số bậc 1, b = 1 Nhập hằng số tự do, c = -1 Phương trình có 2 nghiệm là: x1 = 0.5 và x2 = -1.0
Trong ví dụ trên, phương thức Math.sqrt(double a) được sử dụng để tính căn bậc 2 của a.