728x90 AdSpace

Latest News
Saturday, February 10, 2018

Giải phương trình bậc 2 ax2 + bx + c = 0

Đề 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.
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.
  • Blogger Comments
  • Facebook Comments

0 comments:

Post a Comment

Item Reviewed: Giải phương trình bậc 2 ax2 + bx + c = 0 Rating: 5 Reviewed By: Genm