Căn Bậc 2 Trong Java

Căn Bậc 2 Trong Java

Trước khi thảo luận về mã căn bậc hai trong java, trước tiên chúng ta nên hiểu thuật ngữ căn bậc hai.

Căn bậc hai của một số n là một số x sao cho x2 = n hoặc, một số x có bình phương là n.

Ngoài ra còn có một phương thức dựng sẵn trong java để tính căn bậc hai trong gói java.math có phương thức sqrt ().

Căn bậc hai của x là hợp lý khi và chỉ khi x là số hữu tỷ có thể được biểu diễn dưới dạng tỷ lệ của hai hình vuông hoàn hảo. (căn bậc hai của 2 là một số vô tỷ và bất phương trình bậc hai cho tất cả các số tự nhiên không vuông.) Hàm căn bậc hai ánh xạ các số hữu tỷ thành các số đại số (một siêu số của các số hữu tỷ).

I. Cú Pháp Hàm Sqrt() Trong Thư Viện Math Java

Trước tiên các bạn sẽ tìm hiểu về cú pháp của nó đã nhé.

double sqrt(double d)

Tham số

Dưới đây là chi tiết về tham số của sqrt() trong Java:

d — Một kiểu dữ liệu gốc

Trả về giá trị

Trả về căn bậc 2 của tham số.

II. Cách Dùng Hàm Sqrt() Trong Thư Viện Math Java

Trong phần này chúng tôi sẽ thực hiện 2 ví dụ sử dụng phương thức sqrt() để minh họa cho cách dùng của nó.

Ví dụ 1: Ở ví dụ dưới đây mình sẽ khai báo và khởi tạo sẵn giá trị cho biến, sau đó tính căn bậc hai của các số đó.

import java.lang.Math;
class Main {
  public static void main(String[] args) {
    //khai báo 4 biến và khởi tạo cho nó
    double value1 = Double.POSITIVE_INFINITY;
    double value2 = 25.0;
    double value3 = -16;
    double value4 = 0.0;
    //sử dụng phương thức sqrt() để tính căn bậc hai của 4 số trên
    System.out.println(Math.sqrt(value1));  
    System.out.println(Math.sqrt(value2));  
    System.out.println(Math.sqrt(value3));  
    System.out.println(Math.sqrt(value4));  
 
    System.out.println("--------------------------------");
    System.out.println("Chương trình này được đăng tại Freetuts.net");
  }
}

Kết quả:

Ví dụ 2: Ở ví dụ dưới đây chúng tôi sẽ yêu cầu người dùng nhập vào một số, sau đó tính căn bậc 2 rồi hiển thị ra màn hình.

import java.lang.Math;
import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    //sử dụng class Scanner để yêu cầu người dùng nhập vào số cần tính căn bậc hai
    Scanner sc = new Scanner(System.in);
    double a, squareRoot;
    System.out.println("Nhập vào số cần tính căn bậc hai: ");
    a = sc.nextDouble();
    //tính căn bậc hai của số nhập vào rồi gán cho biến squareRoot
    squareRoot = Math.sqrt(a);
    System.out.println("Căn bậc hai của "+a+" là: " + squareRoot);
 
    System.out.println("--------------------------------");
    System.out.println("Chương trình này được đăng tại Freetuts.net");
  }
}

Trong ví dụ  dưới đây chúng tôi sẽ sử dụng class Scanner, để nhận dữ liệu từ người dùng rồi mới thực hiện tính căn bậc 2 của giá trị đó.

Kết quả:

 

III. Tính Căn Bậc 2 Từ 1 Đến 100 Trong Java

Đề bài: Viết chương trình dùng ngôn ngữ lập trình Java tính S = √1 + √2 + √3 + … + √100′

Yêu cầu kiến thức:

  • Xác định chính xác kiểu dữ liệu cho các biến
  • Sử dụng hàm căn bậc 2 trong thư viện Math của Java

Code tham khảo dưới đây được viết trên JDK 8.x:

package timoday;

public class Main {

    public static void main(String[] args) {
        double S = 0;
        for (int i = 1; i <= 100; i++) {
            S += Math.sqrt(i);
        }
        System.out.println("Tong can bac 2 tu 1 den 100 la: " + S);
    }
}

IV. Giải Phương Trình Bậc 2 Trong Java

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:

ax2 + bx + c = 0

Kiến thức dùng trong bài này, java.util.Scanner được dùng để đọc dữ liệu nhập vào từ bàn phím và từ khóa static trong java. Các bạn cũng cầ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.

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 dùng để tính căn bậc 2 của a.

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *

Hotline: 0984.876.750
Chat Facebook
Gọi điện ngay